From b7fe4141123c6fc26fffec68d0db62ecf474c074 Mon Sep 17 00:00:00 2001 From: Denis Ovsienko Date: Tue, 21 Aug 2007 16:32:56 +0000 Subject: Bug #362 is fixed now. --- lib/sockopt.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lib/sockopt.c') 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) { -- cgit v1.2.1