git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@3062 e7ae566f-a301-0410-adde-c780ea21d3b5
| ... | ... |
@@ -292,9 +292,12 @@ static void |
| 292 | 292 |
socket_set_sndbuf (int sd, int size) |
| 293 | 293 |
{
|
| 294 | 294 |
#if defined(HAVE_SETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_SNDBUF) |
| 295 |
- if (setsockopt (sd, SOL_SOCKET, SO_SNDBUF, (void *) &size, sizeof (size)) != 0) |
|
| 295 |
+ if (size > 0 && size < SOCKET_SND_RCV_BUF_MAX) |
|
| 296 | 296 |
{
|
| 297 |
- msg (M_WARN, "NOTE: setsockopt SO_SNDBUF=%d failed", size); |
|
| 297 |
+ if (setsockopt (sd, SOL_SOCKET, SO_SNDBUF, (void *) &size, sizeof (size)) != 0) |
|
| 298 |
+ {
|
|
| 299 |
+ msg (M_WARN, "NOTE: setsockopt SO_SNDBUF=%d failed", size); |
|
| 300 |
+ } |
|
| 298 | 301 |
} |
| 299 | 302 |
#endif |
| 300 | 303 |
} |
| ... | ... |
@@ -318,10 +321,13 @@ static bool |
| 318 | 318 |
socket_set_rcvbuf (int sd, int size) |
| 319 | 319 |
{
|
| 320 | 320 |
#if defined(HAVE_SETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_RCVBUF) |
| 321 |
- if (setsockopt (sd, SOL_SOCKET, SO_RCVBUF, (void *) &size, sizeof (size)) != 0) |
|
| 321 |
+ if (size > 0 && size < SOCKET_SND_RCV_BUF_MAX) |
|
| 322 | 322 |
{
|
| 323 |
- msg (M_WARN, "NOTE: setsockopt SO_RCVBUF=%d failed", size); |
|
| 324 |
- return false; |
|
| 323 |
+ if (setsockopt (sd, SOL_SOCKET, SO_RCVBUF, (void *) &size, sizeof (size)) != 0) |
|
| 324 |
+ {
|
|
| 325 |
+ msg (M_WARN, "NOTE: setsockopt SO_RCVBUF=%d failed", size); |
|
| 326 |
+ return false; |
|
| 327 |
+ } |
|
| 325 | 328 |
} |
| 326 | 329 |
return true; |
| 327 | 330 |
#endif |