Simplify shutdown() portability
authorRémi Denis-Courmont <rem@videolan.org>
Mon, 26 Feb 2007 16:54:05 +0000 (16:54 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Mon, 26 Feb 2007 16:54:05 +0000 (16:54 +0000)
include/vlc_network.h
modules/access/ftp.c
modules/access/udp.c
modules/access_output/udp.c
modules/misc/notify/growl.c
modules/services_discovery/sap.c
src/stream_output/sap.c

index f274393..6761701 100644 (file)
@@ -176,29 +176,11 @@ struct pollfd
 int poll (struct pollfd *fds, unsigned nfds, int timeout);
 #endif
 
-
-/*****************************************************************************
- * net_StopRecv/Send
- *****************************************************************************
- * Wrappers for shutdown()
- *****************************************************************************/
-#if defined (SHUT_WR)
-/* the standard way */
-# define net_StopSend( fd ) (void)shutdown( fd, SHUT_WR )
-# define net_StopRecv( fd ) (void)shutdown( fd, SHUT_RD )
-#elif defined (SD_SEND)
-/* the Microsoft seemingly-purposedly-different-for-the-sake-of-it way */
-# define net_StopSend( fd ) (void)shutdown( fd, SD_SEND )
-# define net_StopRecv( fd ) (void)shutdown( fd, SD_RECEIVE )
-#else
-# ifndef SYS_BEOS /* R5 just doesn't have a working shutdown() */
-#  warning FIXME: implement shutdown on your platform!
-# endif
-# define net_StopSend( fd ) (void)0
-# define net_StopRecv( fd ) (void)0
-#endif
-
 #ifdef WIN32
+/* Microsoft: same semantic, same value, different name... go figure */
+# define SHUT_RD SD_RECEIVE
+# define SHUT_WR SD_SEND
+# define SHUT_BOTH
 # define net_Close( fd ) closesocket ((SOCKET)fd)
 #else
 # define net_Close( fd ) close (fd)
index ff8ae8d..8ea6528 100644 (file)
@@ -758,10 +758,8 @@ static int ftp_StartStream( vlc_object_t *p_access, access_sys_t *p_sys,
         return VLC_EGENERIC;
     }
 
-    if( p_access->i_object_type == VLC_OBJECT_ACCESS )
-        net_StopSend( p_sys->fd_data );
-    else
-        net_StopRecv( p_sys->fd_data );
+    shutdown( p_sys->fd_data,
+              ( p_access->i_object_type == VLC_OBJECT_ACCESS ) );
 
     return VLC_SUCCESS;
 }
index 6ecc005..8fc693a 100644 (file)
@@ -258,7 +258,7 @@ static int Open( vlc_object_t *p_this )
         return VLC_EGENERIC;
     }
 
-    net_StopSend( p_sys->fd );
+    shutdown( p_sys->fd, SHUT_WR );
 
 #ifdef UDPLITE_RECV_CSCOV
     if (proto == IPPROTO_UDPLITE)
index e4f2f51..01f8ab8 100644 (file)
@@ -323,7 +323,7 @@ static int Open( vlc_object_t *p_this )
         }
     }
     p_sys->p_thread->i_handle = i_handle;
-    net_StopRecv( i_handle );
+    shutdown( i_handle, SHUT_RD );
 
 #ifdef UDPLITE_SEND_CSCOV
     if (proto == IPPROTO_UDPLITE)
index a1fceb9..59b38e8 100644 (file)
@@ -278,7 +278,7 @@ static int CheckAndSend( vlc_object_t *p_this, uint8_t* p_data, int i_offset )
          return VLC_EGENERIC;
     }
 
-    net_StopRecv( i_handle );
+    shutdown( i_handle, SHUT_RD );
     if( send( i_handle, p_data, i_offset, 0 )
           == -1 )
     {
index 5646659..0866b99 100644 (file)
@@ -1361,7 +1361,7 @@ static int InitSocket( services_discovery_t *p_sd, const char *psz_address,
     if (i_fd == -1)
         return VLC_EGENERIC;
 
-    net_StopSend( i_fd );
+    shutdown( i_fd, SHUT_WR );
     INSERT_ELEM (p_sd->p_sys->pi_fd, p_sd->p_sys->i_fd,
                  p_sd->p_sys->i_fd, i_fd);
     return VLC_SUCCESS;
index b632298..6616cad 100644 (file)
@@ -380,7 +380,7 @@ static int announce_SAPAnnounceAdd( sap_handler_t *p_sap,
         p_address->i_wfd = net_ConnectUDP( VLC_OBJECT(p_sap), psz_addr, SAP_PORT, 255 );
         if( p_address->i_wfd != -1 )
         {
-            net_StopRecv( p_address->i_wfd );
+            shutdown( p_address->i_wfd, SHUT_RD );
             p_address->origlen = sizeof (p_address->orig);
             getsockname (p_address->i_wfd, (struct sockaddr *)&p_address->orig,
                          &p_address->origlen);
@@ -390,7 +390,7 @@ static int announce_SAPAnnounceAdd( sap_handler_t *p_sap,
         {
             p_address->i_rfd = net_ListenUDP1( (vlc_object_t*)p_sap, psz_addr, SAP_PORT );
             if( p_address->i_rfd != -1 )
-                net_StopSend( p_address->i_rfd );
+                shutdown( p_address->i_rfd, SHUT_WR );
             p_address->i_buff = 0;
             p_address->b_enabled = VLC_TRUE;
             p_address->b_ready = VLC_FALSE;