You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by mt...@apache.org on 2010/05/24 18:49:30 UTC

svn commit: r947711 - in /trafficserver/traffic/trunk/iocore: eventsystem/I_SocketManager.h eventsystem/P_UnixSocketManager.h eventsystem/SocketManager.cc net/UnixNetVConnection.cc net/UnixUDPConnection.cc

Author: mturk
Date: Mon May 24 16:49:30 2010
New Revision: 947711

URL: http://svn.apache.org/viewvc?rev=947711&view=rev
Log:
TS-333: Apply Alan's patch for removing redundant fast_close

Modified:
    trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h
    trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h
    trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc
    trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc
    trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc

Modified: trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h (original)
+++ trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h Mon May 24 16:49:30 2010
@@ -43,6 +43,8 @@ struct Thread;
 
 #define SOCKET int
 
+/** Utility class for socket operations.
+ */
 struct SocketManager
 {
   SocketManager();
@@ -113,15 +115,15 @@ struct SocketManager
 
   int getsockname(int s, struct sockaddr *, socklen_t *);
 
-  // result is 0 or -errno
+  /** Close the socket.
+      @return 0 if successful, -errno on error.
+   */
   int close(int sock);
-  int fast_close(int sock);
-
-  int ink_bind(SOCKET s, struct sockaddr *name, int namelen, short protocol = 0);
+  int ink_bind(int s, struct sockaddr *name, int namelen, short protocol = 0);
 
   int pagesize;
 
-    virtual ~ SocketManager();
+  virtual ~ SocketManager();
 
 private:
   // just don't do it

Modified: trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h (original)
+++ trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h Mon May 24 16:49:30 2010
@@ -547,18 +547,6 @@ SocketManager::dup(int s)
   return res;
 }
 
-TS_INLINE int
-SocketManager::fast_close(int s)
-{
-  int res;
-  do {
-    if ((res =::close(s)) >= 0)
-      break;
-    res = -errno;
-  } while (res == -EINTR);
-  return res;
-}
-
 int safe_msync(caddr_t addr, size_t len, caddr_t end, int flags);
 
 #ifndef MADV_NORMAL

Modified: trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc (original)
+++ trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc Mon May 24 16:49:30 2010
@@ -139,18 +139,10 @@ typedef struct _DIP_ele
 } DIP_ele;
 
 int
-SocketManager::ink_bind(SOCKET s, struct sockaddr *name, int namelen, short Proto)
+SocketManager::ink_bind(int s, struct sockaddr *name, int namelen, short Proto)
 {
   (void) Proto;
-  int retval;
-
-  retval = safe_bind(s, name, namelen);
-
-  if (retval < 0) {
-    return retval;
-  }
-
-  return retval;
+  return safe_bind(s, name, namelen);
 }
 
 
@@ -158,13 +150,15 @@ int
 SocketManager::close(int s)
 {
   int res;
-  if (!s) {
-    printf("broken UDPConnection trying to close stdin\n");
-    return 0;
-  }
+
+  if (s == 0)
+    return -EACCES;
+  else if (s < 0)
+    return -EINVAL;
+
   do {
-    res =::close(s);
-    if (res < 0)
+    res = ::close(s);
+    if (res == -1)
       res = -errno;
   } while (res == -EINTR);
   return res;

Modified: trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc Mon May 24 16:49:30 2010
@@ -103,8 +103,7 @@ close_UnixNetVConnection(UnixNetVConnect
   }
   vc->cancel_OOB();
   vc->ep.stop();
-  socketManager.fast_close(vc->con.fd);
-  vc->con.fd = NO_FD;
+  vc->con.close();
 #ifdef INACTIVITY_TIMEOUT
   if (vc->inactivity_timeout) {
     vc->inactivity_timeout->cancel_action(vc);

Modified: trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc Mon May 24 16:49:30 2010
@@ -52,10 +52,10 @@ UnixUDPConnection::~UnixUDPConnection()
     callbackAction = NULL;
   }
   Debug("udpnet", "Destroying udp port = %d", getPortNum());
-  if (fd != -1) {
+  if (fd != NO_FD) {
     socketManager.close(fd);
   }
-  fd = -1;
+  fd = NO_FD;
 }
 
 // called with continuation lock taken out