winlin

for bug #88, add timeout for connect.

@@ -38,15 +38,24 @@ int main(int argc, char** argv) @@ -38,15 +38,24 @@ int main(int argc, char** argv)
38 u_int32_t timestamp = 0; 38 u_int32_t timestamp = 0;
39 char* data; 39 char* data;
40 40
  41 + if (argc <= 1) {
  42 + printf("play stream on RTMP server\n"
  43 + "Usage: %s <rtmp_url>\n"
  44 + " rtmp_url RTMP stream url to play\n"
  45 + "For example:\n"
  46 + " %s rtmp://127.0.0.1:1935/live/livestream\n",
  47 + argv[0]);
  48 + int ret = 1;
  49 + exit(ret);
  50 + return ret;
  51 + }
  52 +
  53 + rtmp = srs_rtmp_create(argv[1]);
  54 +
41 printf("suck rtmp stream like rtmpdump\n"); 55 printf("suck rtmp stream like rtmpdump\n");
42 printf("srs(simple-rtmp-server) client librtmp library.\n"); 56 printf("srs(simple-rtmp-server) client librtmp library.\n");
43 printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision()); 57 printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision());
44 -  
45 - if (argc > 1) {  
46 - rtmp = srs_rtmp_create(argv[1]);  
47 - } else {  
48 - rtmp = srs_rtmp_create("rtmp://127.0.0.1:1935/live/livestream");  
49 - } 58 + printf("rtmp url: %s\n", rtmp);
50 59
51 if (srs_simple_handshake(rtmp) != 0) { 60 if (srs_simple_handshake(rtmp) != 0) {
52 printf("simple handshake failed.\n"); 61 printf("simple handshake failed.\n");
@@ -324,7 +324,7 @@ int SrsEdgeIngester::connect_server() @@ -324,7 +324,7 @@ int SrsEdgeIngester::connect_server()
324 addr.sin_port = htons(port); 324 addr.sin_port = htons(port);
325 addr.sin_addr.s_addr = inet_addr(ip.c_str()); 325 addr.sin_addr.s_addr = inet_addr(ip.c_str());
326 326
327 - if (st_connect(stfd, (const struct sockaddr*)&addr, sizeof(sockaddr_in), ST_UTIME_NO_TIMEOUT) == -1){ 327 + if (st_connect(stfd, (const struct sockaddr*)&addr, sizeof(sockaddr_in), SRS_EDGE_INGESTER_TIMEOUT_US) == -1){
328 ret = ERROR_ST_CONNECT; 328 ret = ERROR_ST_CONNECT;
329 srs_error("connect to server error. ip=%s, port=%d, ret=%d", ip.c_str(), port, ret); 329 srs_error("connect to server error. ip=%s, port=%d, ret=%d", ip.c_str(), port, ret);
330 return ret; 330 return ret;
@@ -605,7 +605,7 @@ int SrsEdgeForwarder::connect_server() @@ -605,7 +605,7 @@ int SrsEdgeForwarder::connect_server()
605 addr.sin_port = htons(port); 605 addr.sin_port = htons(port);
606 addr.sin_addr.s_addr = inet_addr(ip.c_str()); 606 addr.sin_addr.s_addr = inet_addr(ip.c_str());
607 607
608 - if (st_connect(stfd, (const struct sockaddr*)&addr, sizeof(sockaddr_in), ST_UTIME_NO_TIMEOUT) == -1){ 608 + if (st_connect(stfd, (const struct sockaddr*)&addr, sizeof(sockaddr_in), SRS_EDGE_FORWARDER_TIMEOUT_US) == -1){
609 ret = ERROR_ST_CONNECT; 609 ret = ERROR_ST_CONNECT;
610 srs_error("connect to server error. ip=%s, port=%d, ret=%d", ip.c_str(), port, ret); 610 srs_error("connect to server error. ip=%s, port=%d, ret=%d", ip.c_str(), port, ret);
611 return ret; 611 return ret;
@@ -298,7 +298,7 @@ int SrsForwarder::connect_server() @@ -298,7 +298,7 @@ int SrsForwarder::connect_server()
298 addr.sin_port = htons(port); 298 addr.sin_port = htons(port);
299 addr.sin_addr.s_addr = inet_addr(ip.c_str()); 299 addr.sin_addr.s_addr = inet_addr(ip.c_str());
300 300
301 - if (st_connect(stfd, (const struct sockaddr*)&addr, sizeof(sockaddr_in), ST_UTIME_NO_TIMEOUT) == -1){ 301 + if (st_connect(stfd, (const struct sockaddr*)&addr, sizeof(sockaddr_in), SRS_FORWARDER_SLEEP_US) == -1){
302 ret = ERROR_ST_CONNECT; 302 ret = ERROR_ST_CONNECT;
303 srs_error("connect to server error. ip=%s, port=%d, ret=%d", ip.c_str(), port, ret); 303 srs_error("connect to server error. ip=%s, port=%d, ret=%d", ip.c_str(), port, ret);
304 return ret; 304 return ret;
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 // current release version 31 // current release version
32 #define VERSION_MAJOR "0" 32 #define VERSION_MAJOR "0"
33 #define VERSION_MINOR "9" 33 #define VERSION_MINOR "9"
34 -#define VERSION_REVISION "115" 34 +#define VERSION_REVISION "116"
35 #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION 35 #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION
36 // server info. 36 // server info.
37 #define RTMP_SIG_SRS_KEY "SRS" 37 #define RTMP_SIG_SRS_KEY "SRS"