From: Haomai Wang Date: Wed, 13 Jul 2016 07:58:25 +0000 (+0800) Subject: msg/async/net_handler: let set_socket_options return value X-Git-Tag: ses5-milestone5~107^2~13 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=57629c67007817eff0ee73c1552d55667cb25ca0;p=ceph.git msg/async/net_handler: let set_socket_options return value Signed-off-by: Haomai Wang --- diff --git a/src/msg/async/net_handler.cc b/src/msg/async/net_handler.cc index d092a6609926..c4c2bfe4b09a 100644 --- a/src/msg/async/net_handler.cc +++ b/src/msg/async/net_handler.cc @@ -89,19 +89,20 @@ void NetHandler::set_close_on_exec(int sd) } } -void NetHandler::set_socket_options(int sd, bool nodelay, int size) +int NetHandler::set_socket_options(int sd, bool nodelay, int size) { + int r = 0; // disable Nagle algorithm? if (nodelay) { int flag = 1; - int r = ::setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(flag)); + r = ::setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(flag)); if (r < 0) { r = -errno; ldout(cct, 0) << "couldn't set TCP_NODELAY: " << cpp_strerror(r) << dendl; } } if (size) { - int r = ::setsockopt(sd, SOL_SOCKET, SO_RCVBUF, (void*)&size, sizeof(size)); + r = ::setsockopt(sd, SOL_SOCKET, SO_RCVBUF, (void*)&size, sizeof(size)); if (r < 0) { r = -errno; ldout(cct, 0) << "couldn't set SO_RCVBUF to " << size << ": " << cpp_strerror(r) << dendl; @@ -111,12 +112,13 @@ void NetHandler::set_socket_options(int sd, bool nodelay, int size) // block ESIGPIPE #ifdef SO_NOSIGPIPE int val = 1; - int r = ::setsockopt(sd, SOL_SOCKET, SO_NOSIGPIPE, (void*)&val, sizeof(val)); + r = ::setsockopt(sd, SOL_SOCKET, SO_NOSIGPIPE, (void*)&val, sizeof(val)); if (r) { r = -errno; ldout(cct,0) << "couldn't set SO_NOSIGPIPE: " << cpp_strerror(r) << dendl; } #endif + return r; } void NetHandler::set_priority(int sd, int prio) diff --git a/src/msg/async/net_handler.h b/src/msg/async/net_handler.h index eb43f54f7bb4..311276dba8ba 100644 --- a/src/msg/async/net_handler.h +++ b/src/msg/async/net_handler.h @@ -20,16 +20,15 @@ namespace ceph { class NetHandler { - private: - int create_socket(int domain, bool reuse_addr=false); int generic_connect(const entity_addr_t& addr, bool nonblock); CephContext *cct; public: + int create_socket(int domain, bool reuse_addr=false); explicit NetHandler(CephContext *c): cct(c) {} int set_nonblock(int sd); void set_close_on_exec(int sd); - void set_socket_options(int sd, bool nodelay, int size); + int set_socket_options(int sd, bool nodelay, int size); int connect(const entity_addr_t &addr); /**