winlin

kafka use temp transport to fetch metadata.

@@ -275,8 +275,6 @@ SrsKafkaProducer::SrsKafkaProducer() @@ -275,8 +275,6 @@ SrsKafkaProducer::SrsKafkaProducer()
275 cache = new SrsKafkaCache(); 275 cache = new SrsKafkaCache();
276 276
277 lb = new SrsLbRoundRobin(); 277 lb = new SrsLbRoundRobin();
278 - transport = new SrsTcpClient();  
279 - kafka = new SrsKafkaClient(transport);  
280 } 278 }
281 279
282 SrsKafkaProducer::~SrsKafkaProducer() 280 SrsKafkaProducer::~SrsKafkaProducer()
@@ -284,8 +282,6 @@ SrsKafkaProducer::~SrsKafkaProducer() @@ -284,8 +282,6 @@ SrsKafkaProducer::~SrsKafkaProducer()
284 clear_metadata(); 282 clear_metadata();
285 283
286 srs_freep(lb); 284 srs_freep(lb);
287 - srs_freep(kafka);  
288 - srs_freep(transport);  
289 285
290 srs_freep(worker); 286 srs_freep(worker);
291 srs_freep(pthread); 287 srs_freep(pthread);
@@ -443,6 +439,12 @@ int SrsKafkaProducer::request_metadata() @@ -443,6 +439,12 @@ int SrsKafkaProducer::request_metadata()
443 return ret; 439 return ret;
444 } 440 }
445 441
  442 + SrsTcpClient* transport = new SrsTcpClient();
  443 + SrsAutoFree(SrsTcpClient, transport);
  444 +
  445 + SrsKafkaClient* kafka = new SrsKafkaClient(transport);
  446 + SrsAutoFree(SrsKafkaClient, kafka);
  447 +
446 std::string server; 448 std::string server;
447 int port = SRS_CONSTS_KAFKA_DEFAULT_PORT; 449 int port = SRS_CONSTS_KAFKA_DEFAULT_PORT;
448 if (true) { 450 if (true) {
@@ -460,7 +462,6 @@ int SrsKafkaProducer::request_metadata() @@ -460,7 +462,6 @@ int SrsKafkaProducer::request_metadata()
460 } 462 }
461 463
462 // reconnect to kafka server. 464 // reconnect to kafka server.
463 - transport->close();  
464 if ((ret = transport->connect(server, port, SRS_CONSTS_KAFKA_TIMEOUT_US)) != ERROR_SUCCESS) { 465 if ((ret = transport->connect(server, port, SRS_CONSTS_KAFKA_TIMEOUT_US)) != ERROR_SUCCESS) {
465 srs_error("kafka connect %s:%d failed. ret=%d", server.c_str(), port, ret); 466 srs_error("kafka connect %s:%d failed. ret=%d", server.c_str(), port, ret);
466 return ret; 467 return ret;
@@ -164,8 +164,6 @@ public: @@ -164,8 +164,6 @@ public:
164 private: 164 private:
165 SrsLbRoundRobin* lb; 165 SrsLbRoundRobin* lb;
166 SrsAsyncCallWorker* worker; 166 SrsAsyncCallWorker* worker;
167 - SrsTcpClient* transport;  
168 - SrsKafkaClient* kafka;  
169 public: 167 public:
170 SrsKafkaProducer(); 168 SrsKafkaProducer();
171 virtual ~SrsKafkaProducer(); 169 virtual ~SrsKafkaProducer();