|
@@ -85,7 +85,16 @@ static const char *my_dhm_G = "4";
|
|
#include <openssl/bio.h>
|
|
#include <openssl/bio.h>
|
|
#include <openssl/buffer.h>
|
|
#include <openssl/buffer.h>
|
|
#endif
|
|
#endif
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
+#if defined(TCP_USER_TIMEOUT)
|
|
|
|
+#define SOCKET_LEVEL IPPROTO_TCP
|
|
|
|
+#define SOCKET_TIMEOUT_OPT TCP_USER_TIMEOUT
|
|
|
|
+#define SOCKET_TIMEOUT_VAR(tv, s) int tv = s*1000
|
|
|
|
+#else
|
|
|
|
+#define SOCKET_LEVEL SOL_SOCKET
|
|
|
|
+#define SOCKET_TIMEOUT_OPT SO_SNDTIMEO
|
|
|
|
+#define SOCKET_TIMEOUT_VAR(tv, s) SET_RCVTIMEO(tv, s)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#define RTMP_SIG_SIZE 1536
|
|
#define RTMP_SIG_SIZE 1536
|
|
@@ -931,13 +940,14 @@ RTMP_Connect0(RTMP *r, struct sockaddr * service, socklen_t addrlen)
|
|
__FUNCTION__, r->Link.receiveTimeout);
|
|
__FUNCTION__, r->Link.receiveTimeout);
|
|
}
|
|
}
|
|
|
|
|
|
- SET_RCVTIMEO(tvs, r->Link.sendTimeout);
|
|
|
|
- if (setsockopt
|
|
|
|
- (r->m_sb.sb_socket, SOL_SOCKET, SO_SNDTIMEO, (char *)&tvs, sizeof(tvs)))
|
|
|
|
|
|
+#if defined(SOCKET_TIMEOUT_OPT)
|
|
|
|
+ SOCKET_TIMEOUT_VAR(to, r->Link.sendTimeout);
|
|
|
|
+ if (setsockopt(r->m_sb.sb_socket, SOCKET_LEVEL, SOCKET_TIMEOUT_OPT, &to, sizeof(to)))
|
|
{
|
|
{
|
|
- RTMP_Log(RTMP_LOGERROR, "%s, Setting socket send timeout to %ds failed!",
|
|
|
|
|
|
+ RTMP_Log(RTMP_LOGERROR, "%s, Setting socket SOCKET_TIMEOUT_OPT to %ds failed!",
|
|
__FUNCTION__, r->Link.sendTimeout);
|
|
__FUNCTION__, r->Link.sendTimeout);
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
if(!r->m_bUseNagle)
|
|
if(!r->m_bUseNagle)
|