|
|
|
@ -164,6 +164,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
|
{
|
|
|
|
|
SrsBlockSyncSocket* skt = (SrsBlockSyncSocket*)ctx;
|
|
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
DWORD tv = (DWORD)(timeout_us/1000);
|
|
|
|
|
|
|
|
|
|
// To convert tv to const char* to make VS2015 happy.
|
|
|
|
|
if (setsockopt(skt->fd, SOL_SOCKET, SO_SNDTIMEO, (const char*)&tv, sizeof(tv)) == -1) {
|
|
|
|
|
return SOCKET_ERRNO();
|
|
|
|
|
}
|
|
|
|
|
#else
|
|
|
|
|
int sec = (int)(timeout_us / 1000000LL);
|
|
|
|
|
int microsec = (int)(timeout_us % 1000000LL);
|
|
|
|
|
|
|
|
|
@ -171,9 +179,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
|
microsec = srs_max(0, microsec);
|
|
|
|
|
|
|
|
|
|
struct timeval tv = { sec , microsec };
|
|
|
|
|
if (setsockopt(skt->fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)) == -1) {
|
|
|
|
|
if (setsockopt(skt->fd, SOL_SOCKET, SO_RCVTIMEO, tvv, sizeof(tv)) == -1) {
|
|
|
|
|
return SOCKET_ERRNO();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
skt->recv_timeout = timeout_us;
|
|
|
|
|
|
|
|
|
|
return ERROR_SUCCESS;
|
|
|
|
@ -192,6 +202,14 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
|
{
|
|
|
|
|
SrsBlockSyncSocket* skt = (SrsBlockSyncSocket*)ctx;
|
|
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
DWORD tv = (DWORD)(timeout_us/1000);
|
|
|
|
|
|
|
|
|
|
// To convert tv to const char* to make VS2015 happy.
|
|
|
|
|
if (setsockopt(skt->fd, SOL_SOCKET, SO_SNDTIMEO, (const char*)&tv, sizeof(tv)) == -1) {
|
|
|
|
|
return SOCKET_ERRNO();
|
|
|
|
|
}
|
|
|
|
|
#else
|
|
|
|
|
int sec = (int)(timeout_us / 1000000LL);
|
|
|
|
|
int microsec = (int)(timeout_us % 1000000LL);
|
|
|
|
|
|
|
|
|
@ -199,9 +217,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
|
microsec = srs_max(0, microsec);
|
|
|
|
|
|
|
|
|
|
struct timeval tv = { sec , microsec };
|
|
|
|
|
if (setsockopt(skt->fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv)) == -1) {
|
|
|
|
|
if (setsockopt(skt->fd, SOL_SOCKET, SO_SNDTIMEO, tvv, sizeof(tv)) == -1) {
|
|
|
|
|
return SOCKET_ERRNO();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
skt->send_timeout = timeout_us;
|
|
|
|
|
|
|
|
|
|