]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async/net_handler: let set_socket_options return value
authorHaomai Wang <haomai@xsky.com>
Wed, 13 Jul 2016 07:58:25 +0000 (15:58 +0800)
committerHaomai Wang <haomai@xsky.com>
Tue, 16 Aug 2016 15:17:55 +0000 (23:17 +0800)
Signed-off-by: Haomai Wang <haomai@xsky.com>
src/msg/async/net_handler.cc
src/msg/async/net_handler.h

index d092a6609926f7a934c4186e43b228d80b27cc7e..c4c2bfe4b09abd902c2f5db8a9bf1c9b007dc183 100644 (file)
@@ -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)
index eb43f54f7bb4fb84f227badb9a2eb0fcec7e2b0a..311276dba8babf881ad8fb8141574e635fc028b3 100644 (file)
 
 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);
     
     /**