diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2013-11-08 13:04:14 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2013-11-08 13:04:14 +0000 |
commit | 2f3eb7f4d8b32fb8b6b90b0e260ffb073c68ba70 (patch) | |
tree | 7cbe899b6e5835542d633ef52801fe64bb7a52cc /sys/netinet/tcp_usrreq.c | |
parent | cd28e9c5e0e95d91f0efe451e6ac6ade48155a44 (diff) | |
download | src-2f3eb7f4d8b32fb8b6b90b0e260ffb073c68ba70.tar.gz src-2f3eb7f4d8b32fb8b6b90b0e260ffb073c68ba70.zip |
Make TCP_KEEP* socket options readable. At least PostgreSQL wants
to read the values.
Reported by: sobomax
Notes
Notes:
svn path=/head/; revision=257846
Diffstat (limited to 'sys/netinet/tcp_usrreq.c')
-rw-r--r-- | sys/netinet/tcp_usrreq.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index da592f82e79c..0188beb50f76 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -1585,6 +1585,27 @@ unlock_and_done: INP_WUNLOCK(inp); error = sooptcopyout(sopt, buf, TCP_CA_NAME_MAX); break; + case TCP_KEEPIDLE: + case TCP_KEEPINTVL: + case TCP_KEEPINIT: + case TCP_KEEPCNT: + switch (sopt->sopt_name) { + case TCP_KEEPIDLE: + ui = tp->t_keepidle / hz; + break; + case TCP_KEEPINTVL: + ui = tp->t_keepintvl / hz; + break; + case TCP_KEEPINIT: + ui = tp->t_keepinit / hz; + break; + case TCP_KEEPCNT: + ui = tp->t_keepcnt; + break; + } + INP_WUNLOCK(inp); + error = sooptcopyout(sopt, &ui, sizeof(ui)); + break; default: INP_WUNLOCK(inp); error = ENOPROTOOPT; |