Hello,
I was getting a huge timeout on Connect operation causing application GUI that uses librtmp through GStreamer to block for more than 2 minutes, although timeout parameter was defined.
0:00:00.550468481 55310x41f600 DEBUG rtmp :0:: Parsing...
0:00:00.550560518 55310x41f600 DEBUG rtmp :0:: Parsed protocol: 2
0:00:00.550629629 55310x41f600 DEBUG rtmp :0:: Parsed host : xx.xx.xx.xx
0:00:00.550678073 55310x41f600 DEBUG rtmp :0:: Parsed app: liveedge1
0:00:00.550750740 55310x41f600 INFO rtmpsrc gst-plugins-bad-1.4.3/ext/rtmp/gstrtmpsrc.c:585:gst_rtmp_src_start:<source> seekable 0
0:02:07.820957257 55310x41f600 ERROR rtmp :0:: RTMP_Connect0, failed to connect socket. 145 (Connection timed out)
After setting timeout for sending (SO_SNDTIMEO) operations everything works as it should.
0:00:00.538803815 61500x41f600 DEBUG rtmp :0:: Parsing...
0:00:00.538897370 61500x41f600 DEBUG rtmp :0:: Parsed protocol: 2
0:00:00.538964037 61500x41f600 DEBUG rtmp :0:: Parsed host : xx.xx.xx.xx
0:00:00.539010778 61500x41f600 DEBUG rtmp :0:: Parsed app: liveedge1
0:00:00.539083333 61500x41f600 INFO rtmpsrc gst-plugins-bad-1.4.3/ext/rtmp/gstrtmpsrc.c:585:gst_rtmp_src_start:<source> seekable 0
0:00:10.538779327 61500x41f600 ERROR rtmp :0:: RTMP_Connect0, failed to connect socket. 150 (Operation now in progress)
Patch for setting timeout for send operations is attached.