don't set send buffer size unless its less than 32k
This commit is contained in:
parent
48153b6244
commit
31fca99db7
@ -226,40 +226,72 @@ g_getchar(void)
|
||||
int APP_CC
|
||||
g_tcp_set_no_delay(int sck)
|
||||
{
|
||||
int i;
|
||||
|
||||
i = 1;
|
||||
#if defined(_WIN32)
|
||||
setsockopt(sck, IPPROTO_TCP, TCP_NODELAY, (char*)&i, sizeof(i));
|
||||
int option_value;
|
||||
int option_len;
|
||||
#else
|
||||
setsockopt(sck, IPPROTO_TCP, TCP_NODELAY, (void*)&i, sizeof(i));
|
||||
int option_value;
|
||||
unsigned int option_len;
|
||||
#endif
|
||||
|
||||
option_value = 1;
|
||||
option_len = sizeof(option_value);
|
||||
setsockopt(sck, IPPROTO_TCP, TCP_NODELAY, (char*)&option_value,
|
||||
option_len);
|
||||
if (getsockopt(sck, SOL_SOCKET, SO_SNDBUF, (char*)&option_value,
|
||||
&option_len) == 0)
|
||||
{
|
||||
if (option_value < (1024 * 32))
|
||||
{
|
||||
option_value = 1024 * 32;
|
||||
option_len = sizeof(option_value);
|
||||
setsockopt(sck, SOL_SOCKET, SO_SNDBUF, (char*)&option_value,
|
||||
option_len);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/* returns a newly created socket or -1 on error */
|
||||
int APP_CC
|
||||
g_tcp_socket(void)
|
||||
{
|
||||
int rv;
|
||||
int i;
|
||||
|
||||
rv = socket(PF_INET, SOCK_STREAM, 0);
|
||||
#if defined(_WIN32)
|
||||
i = 1;
|
||||
setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (char*)&i, sizeof(i));
|
||||
i = 1;
|
||||
setsockopt(rv, SOL_SOCKET, SO_REUSEADDR, (char*)&i, sizeof(i));
|
||||
i = 8192 * 2;
|
||||
setsockopt(rv, SOL_SOCKET, SO_SNDBUF, (char*)&i, sizeof(i));
|
||||
int rv;
|
||||
int option_value;
|
||||
int option_len;
|
||||
#else
|
||||
i = 1;
|
||||
setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (void*)&i, sizeof(i));
|
||||
i = 1;
|
||||
setsockopt(rv, SOL_SOCKET, SO_REUSEADDR, (void*)&i, sizeof(i));
|
||||
i = 8192 * 2;
|
||||
setsockopt(rv, SOL_SOCKET, SO_SNDBUF, (void*)&i, sizeof(i));
|
||||
int rv;
|
||||
int option_value;
|
||||
unsigned int option_len;
|
||||
#endif
|
||||
|
||||
/* in win32 a socket is an unsigned int, in linux, its an int */
|
||||
rv = (int)socket(PF_INET, SOCK_STREAM, 0);
|
||||
if (rv < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
option_value = 1;
|
||||
option_len = sizeof(option_value);
|
||||
setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (char*)&option_value,
|
||||
option_len);
|
||||
option_value = 1;
|
||||
setsockopt(rv, SOL_SOCKET, SO_REUSEADDR, (char*)&option_value,
|
||||
option_len);
|
||||
|
||||
if (getsockopt(rv, SOL_SOCKET, SO_SNDBUF, (char*)&option_value,
|
||||
&option_len) == 0)
|
||||
{
|
||||
if (option_value < (1024 * 32))
|
||||
{
|
||||
option_value = 1024 * 32;
|
||||
option_len = sizeof(option_value);
|
||||
setsockopt(rv, SOL_SOCKET, SO_SNDBUF, (char*)&option_value,
|
||||
option_len);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
@ -291,6 +323,7 @@ g_tcp_close(int sck)
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/* returns error, zero is good */
|
||||
int APP_CC
|
||||
g_tcp_connect(int sck, const char* address, const char* port)
|
||||
{
|
||||
@ -339,6 +372,7 @@ g_tcp_set_non_blocking(int sck)
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/* returns error, zero is good */
|
||||
int APP_CC
|
||||
g_tcp_bind(int sck, char* port)
|
||||
{
|
||||
@ -368,6 +402,7 @@ g_tcp_local_bind(int sck, char* port)
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/* returns error, zero is good */
|
||||
int APP_CC
|
||||
g_tcp_listen(int sck)
|
||||
{
|
||||
@ -1166,7 +1201,7 @@ g_initgroups(const char* user, int gid)
|
||||
return initgroups(user ,gid);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
int APP_CC
|
||||
g_setuid(int pid)
|
||||
@ -1361,7 +1396,9 @@ g_check_user_in_group(const char* username, int gid, int* ok)
|
||||
|
||||
/*****************************************************************************/
|
||||
/* returns the time since the Epoch (00:00:00 UTC, January 1, 1970),
|
||||
measured in seconds. */
|
||||
measured in seconds.
|
||||
for windows, returns the number of seconds since the machine was
|
||||
started. */
|
||||
int APP_CC
|
||||
g_time1(void)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user