From f4c58ba46f7b9b91a4770ae740675434eb950cd4 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Mon, 4 Jun 2012 14:28:22 -0700 Subject: [PATCH] Refresh of rs-maxseg --- src/rsocket.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/rsocket.c b/src/rsocket.c index a1679f16..f5ebae42 100644 --- a/src/rsocket.c +++ b/src/rsocket.c @@ -1717,6 +1717,9 @@ int rsetsockopt(int socket, int level, int optname, opt_on = *(int *) optval; ret = 0; break; + case TCP_MAXSEG: + ret = 0; + break; default: break; } @@ -1814,6 +1817,15 @@ int rgetsockopt(int socket, int level, int optname, *((int *) optval) = !!(rs->tcp_opts & (1 << optname)); *optlen = sizeof(int); break; + case TCP_MAXSEG: + if (rs->cm_id && rs->cm_id->route && + rs->cm_id->route.num_paths) { + *((int *) optval) = 1 << (7 + rs->cm_id->route.path_rec->mtu); + } else { + *((int *) optval) = 2048; + } + *optlen = sizeof(int); + break; default: ret = ENOTSUP; break; -- 2.45.2