diff options
| author | Donatas Abraitis <donatas.abraitis@gmail.com> | 2019-10-20 12:09:42 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-20 12:09:42 +0300 |
| commit | acf061a9ab9284b7ebf6dffbe2cf5ea6ed9052da (patch) | |
| tree | e2321f97af25c15a62ccd76b98123d0c9a00fec2 /lib | |
| parent | 0a764122e10bf5c3067f8f5dcc7d02f339d18580 (diff) | |
| parent | 11a9a23664c776cc4cd3794f25f378dc1489e949 (diff) | |
Merge pull request #5108 from donaldsharp/sendbuffer_size_bgp
Sendbuffer size bgp
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sockopt.c | 15 | ||||
| -rw-r--r-- | lib/sockopt.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/sockopt.c b/lib/sockopt.c index 8e38a29278..7726d74ff7 100644 --- a/lib/sockopt.c +++ b/lib/sockopt.c @@ -72,6 +72,21 @@ int getsockopt_so_sendbuf(const int sock) return optval; } +int getsockopt_so_recvbuf(const int sock) +{ + uint32_t optval; + socklen_t optlen = sizeof(optval); + int ret = getsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *)&optval, + &optlen); + if (ret < 0) { + flog_err_sys(EC_LIB_SYSTEM_CALL, + "fd %d: can't getsockopt SO_RCVBUF: %d (%s)", sock, + errno, safe_strerror(errno)); + return ret; + } + return optval; +} + static void *getsockopt_cmsg_data(struct msghdr *msgh, int level, int type) { struct cmsghdr *cmsg; diff --git a/lib/sockopt.h b/lib/sockopt.h index 732fec92aa..f6b57b8e07 100644 --- a/lib/sockopt.h +++ b/lib/sockopt.h @@ -30,6 +30,7 @@ extern "C" { extern void setsockopt_so_recvbuf(int sock, int size); extern void setsockopt_so_sendbuf(const int sock, int size); extern int getsockopt_so_sendbuf(const int sock); +extern int getsockopt_so_recvbuf(const int sock); extern int setsockopt_ipv6_pktinfo(int, int); extern int setsockopt_ipv6_checksum(int, int); |
