diff options
author | pilot <pilot> | 2007-08-21 16:32:56 +0000 |
---|---|---|
committer | pilot <pilot> | 2007-08-21 16:32:56 +0000 |
commit | b9972dc924a4b81489d8cd51c13f7144608a2bc0 (patch) | |
tree | db9722ddf2cd33ad58751a6cd616158c9ae2206d /lib/sockopt.c | |
parent | 2adcf13e1467e27d4ef08046cbca332f30e00b59 (diff) | |
download | quagga-b9972dc924a4b81489d8cd51c13f7144608a2bc0.tar.bz2 quagga-b9972dc924a4b81489d8cd51c13f7144608a2bc0.tar.xz |
Bug #362 is fixed now.
Diffstat (limited to 'lib/sockopt.c')
-rw-r--r-- | lib/sockopt.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/sockopt.c b/lib/sockopt.c index f5f1a7ed..f8fa946e 100644 --- a/lib/sockopt.c +++ b/lib/sockopt.c @@ -36,6 +36,35 @@ setsockopt_so_recvbuf (int sock, int size) return ret; } +int +setsockopt_so_sendbuf (const int sock, int size) +{ + int ret = setsockopt (sock, SOL_SOCKET, SO_SNDBUF, + (char *)&size, sizeof (int)); + + if (ret < 0) + zlog_err ("fd %d: can't setsockopt SO_SNDBUF to %d: %s", + sock, size, safe_strerror (errno)); + + return ret; +} + +int +getsockopt_so_sendbuf (const int sock) +{ + u_int32_t optval; + socklen_t optlen = sizeof (optval); + int ret = getsockopt (sock, SOL_SOCKET, SO_SNDBUF, + (char *)&optval, &optlen); + if (ret < 0) + { + zlog_err ("fd %d: can't getsockopt SO_SNDBUF: %d (%s)", + sock, errno, safe_strerror (errno)); + return ret; + } + return optval; +} + static void * getsockopt_cmsg_data (struct msghdr *msgh, int level, int type) { |