aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_usrreq.c
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2013-11-08 13:04:14 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2013-11-08 13:04:14 +0000
commit2f3eb7f4d8b32fb8b6b90b0e260ffb073c68ba70 (patch)
tree7cbe899b6e5835542d633ef52801fe64bb7a52cc /sys/netinet/tcp_usrreq.c
parentcd28e9c5e0e95d91f0efe451e6ac6ade48155a44 (diff)
downloadsrc-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.c21
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;