[PATCH] Remove specific socket code for Linux

Arnaud Versini (via Code Review) gerrit at gerrit.libreoffice.org
Sun Feb 3 11:12:41 PST 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/1975

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/75/1975/1

Remove specific socket code for Linux

Change-Id: I8b51f7027a6c55544ebbbcc9c76bea0913856cc6
---
M sal/osl/unx/pipe.c
M sal/osl/unx/socket.c
M sal/osl/unx/sockimpl.h
3 files changed, 0 insertions(+), 134 deletions(-)



diff --git a/sal/osl/unx/pipe.c b/sal/osl/unx/pipe.c
index f0720ec..a61a022 100644
--- a/sal/osl/unx/pipe.c
+++ b/sal/osl/unx/pipe.c
@@ -109,10 +109,6 @@
     pPipeImpl = (oslPipe)calloc(1, sizeof(struct oslPipeImpl));
     pPipeImpl->m_nRefCount =1;
     pPipeImpl->m_bClosed = sal_False;
-#if defined(LINUX)
-    pPipeImpl->m_bIsInShutdown = sal_False;
-    pPipeImpl->m_bIsAccepting = sal_False;
-#endif
     return pPipeImpl;
 }
 
@@ -366,11 +362,6 @@
 void SAL_CALL osl_closePipe( oslPipe pPipe )
 {
     int nRet;
-#if defined(LINUX)
-    size_t     len;
-    struct sockaddr_un addr;
-    int fd;
-#endif
     int ConnFD;
 
     if( ! pPipe )
@@ -384,34 +375,6 @@
     }
 
     ConnFD = pPipe->m_Socket;
-
-    /*
-      Thread does not return from accept on linux, so
-      connect to the accepting pipe
-     */
-#if defined(LINUX)
-    if ( pPipe->m_bIsAccepting )
-    {
-        pPipe->m_bIsInShutdown = sal_True;
-        pPipe->m_Socket = -1;
-        fd = socket(AF_UNIX, SOCK_STREAM, 0);
-        memset(&addr, 0, sizeof(addr));
-
-        OSL_TRACE("osl_destroyPipe : Pipe Name '%s'",pPipe->m_Name);
-
-        addr.sun_family = AF_UNIX;
-        strncpy(addr.sun_path, pPipe->m_Name, sizeof(addr.sun_path) - 1);
-        len = sizeof(addr);
-
-        nRet = connect( fd, (struct sockaddr *)&addr, len);
-        if ( nRet < 0 )
-        {
-            OSL_TRACE("connect in osl_destroyPipe failed with error: %s", strerror(errno));
-        }
-        close(fd);
-    }
-#endif /* LINUX */
-
 
     nRet = shutdown(ConnFD, 2);
     if ( nRet < 0 )
@@ -451,15 +414,8 @@
 
     OSL_ASSERT(strlen(pPipe->m_Name) > 0);
 
-#if defined(LINUX)
-    pPipe->m_bIsAccepting = sal_True;
-#endif
-
     s = accept(pPipe->m_Socket, NULL, NULL);
 
-#if defined(LINUX)
-    pPipe->m_bIsAccepting = sal_False;
-#endif
 
     if (s < 0)
     {
@@ -467,13 +423,6 @@
         return NULL;
     }
 
-#if defined(LINUX)
-    if ( pPipe->m_bIsInShutdown  )
-    {
-        close(s);
-        return NULL;
-    }
-#endif /* LINUX */
     else
     {
         /* alloc memory */
diff --git a/sal/osl/unx/socket.c b/sal/osl/unx/socket.c
index a9f3fc0..9e75710 100644
--- a/sal/osl/unx/socket.c
+++ b/sal/osl/unx/socket.c
@@ -471,10 +471,6 @@
     pSocket->m_nLastError = 0;
     pSocket->m_nRefCount = 1;
 
-#if defined(LINUX)
-    pSocket->m_bIsAccepting = sal_False;
-#endif
-
 #if OSL_DEBUG_LEVEL > 1
     g_nSocketImpl ++;
 #endif
@@ -1478,13 +1474,6 @@
 {
     if( pSocket && 0 == osl_atomic_decrement( &(pSocket->m_nRefCount) ) )
     {
-#if defined(LINUX)
-    if ( pSocket->m_bIsAccepting == sal_True )
-    {
-        OSL_FAIL("osl_destroySocket : attempt to destroy socket while accepting\n");
-        return;
-    }
-#endif /* LINUX */
         osl_closeSocket( pSocket );
         __osl_destroySocketImpl( pSocket );
     }
@@ -1511,48 +1500,6 @@
         return;
 
     pSocket->m_Socket = OSL_INVALID_SOCKET;
-
-#if defined(LINUX)
-    pSocket->m_bIsInShutdown = sal_True;
-
-    if ( pSocket->m_bIsAccepting == sal_True )
-    {
-        int nConnFD;
-        union {
-            struct sockaddr aSockAddr;
-            struct sockaddr_in aSockAddrIn;
-        } s;
-        socklen_t nSockLen = sizeof(s.aSockAddr);
-
-        nRet = getsockname(nFD, &s.aSockAddr, &nSockLen);
-        if ( nRet < 0 )
-        {
-            OSL_TRACE("getsockname call failed with error: %s", strerror(errno));
-        }
-
-        if ( s.aSockAddr.sa_family == AF_INET )
-        {
-            if ( s.aSockAddrIn.sin_addr.s_addr == htonl(INADDR_ANY) )
-            {
-                s.aSockAddrIn.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
-            }
-
-            nConnFD = socket(AF_INET, SOCK_STREAM, 0);
-            if ( nConnFD < 0 )
-            {
-                OSL_TRACE("socket call failed with error: %s", strerror(errno));
-            }
-
-            nRet = connect(nConnFD, &s.aSockAddr, sizeof(s.aSockAddr));
-            if ( nRet < 0 )
-            {
-                OSL_TRACE("connect call failed with error: %s", strerror(errno));
-            }
-            close(nConnFD);
-        }
-        pSocket->m_bIsAccepting = sal_False;
-    }
-#endif /* LINUX */
 
     nRet=close(nFD);
     if ( nRet != 0 )
@@ -1827,9 +1774,6 @@
     }
 
     pSocket->m_nLastError=0;
-#if defined(LINUX)
-    pSocket->m_bIsAccepting = sal_True;
-#endif /* LINUX */
 
     if( ppAddr && *ppAddr )
     {
@@ -1850,24 +1794,10 @@
         pSocket->m_nLastError=errno;
         OSL_TRACE("osl_acceptConnectionOnSocket : accept error '%s'",strerror(errno));
 
-#if defined(LINUX)
-        pSocket->m_bIsAccepting = sal_False;
-#endif /* LINUX */
         return 0;
     }
 
     OSL_ASSERT(AddrLen == sizeof(struct sockaddr));
-
-
-#if defined(LINUX)
-    if ( pSocket->m_bIsInShutdown == sal_True )
-    {
-        close(Connection);
-        OSL_TRACE("osl_acceptConnectionOnSocket : close while accept");
-        return 0;
-    }
-#endif /* LINUX */
-
 
     if(ppAddr)
     {
@@ -1893,11 +1823,6 @@
 
     pConnectionSockImpl->m_Socket           = Connection;
     pConnectionSockImpl->m_nLastError       = 0;
-#if defined(LINUX)
-    pConnectionSockImpl->m_bIsAccepting     = sal_False;
-
-    pSocket->m_bIsAccepting = sal_False;
-#endif /* LINUX */
     return pConnectionSockImpl;
 }
 
diff --git a/sal/osl/unx/sockimpl.h b/sal/osl/unx/sockimpl.h
index cfcd1a4..b35827e 100644
--- a/sal/osl/unx/sockimpl.h
+++ b/sal/osl/unx/sockimpl.h
@@ -32,10 +32,6 @@
     int                 m_Socket;
     int                 m_nLastError;
     oslInterlockedCount m_nRefCount;
-#if defined(LINUX)
-    sal_Bool            m_bIsAccepting;
-    sal_Bool            m_bIsInShutdown;
-#endif
 };
 
 struct oslSocketAddrImpl
@@ -49,10 +45,6 @@
     sal_Char m_Name[PATH_MAX + 1];
     oslInterlockedCount m_nRefCount;
     sal_Bool m_bClosed;
-#if defined(LINUX)
-    sal_Bool m_bIsAccepting;
-    sal_Bool m_bIsInShutdown;
-#endif
 };
 
 oslSocket __osl_createSocketImpl(int Socket);

-- 
To view, visit https://gerrit.libreoffice.org/1975
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8b51f7027a6c55544ebbbcc9c76bea0913856cc6
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Arnaud Versini <arnaud.versini at gmail.com>


More information about the LibreOffice mailing list