From 93c16a0b4e20c301c4f7e1a077e1a31898da88dc Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Mon, 26 Feb 2007 16:54:05 +0000 Subject: [PATCH] Simplify shutdown() portability --- include/vlc_network.h | 26 ++++---------------------- modules/access/ftp.c | 6 ++---- modules/access/udp.c | 2 +- modules/access_output/udp.c | 2 +- modules/misc/notify/growl.c | 2 +- modules/services_discovery/sap.c | 2 +- src/stream_output/sap.c | 4 ++-- 7 files changed, 12 insertions(+), 32 deletions(-) diff --git a/include/vlc_network.h b/include/vlc_network.h index f2743934f8..67617018dc 100644 --- a/include/vlc_network.h +++ b/include/vlc_network.h @@ -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) diff --git a/modules/access/ftp.c b/modules/access/ftp.c index ff8ae8d9fa..8ea6528e20 100644 --- a/modules/access/ftp.c +++ b/modules/access/ftp.c @@ -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; } diff --git a/modules/access/udp.c b/modules/access/udp.c index 6ecc005cb6..8fc693a0d7 100644 --- a/modules/access/udp.c +++ b/modules/access/udp.c @@ -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) diff --git a/modules/access_output/udp.c b/modules/access_output/udp.c index e4f2f51ccb..01f8ab8203 100644 --- a/modules/access_output/udp.c +++ b/modules/access_output/udp.c @@ -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) diff --git a/modules/misc/notify/growl.c b/modules/misc/notify/growl.c index a1fceb9548..59b38e8eb3 100644 --- a/modules/misc/notify/growl.c +++ b/modules/misc/notify/growl.c @@ -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 ) { diff --git a/modules/services_discovery/sap.c b/modules/services_discovery/sap.c index 5646659027..0866b99a02 100644 --- a/modules/services_discovery/sap.c +++ b/modules/services_discovery/sap.c @@ -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; diff --git a/src/stream_output/sap.c b/src/stream_output/sap.c index b632298a1e..6616cad667 100644 --- a/src/stream_output/sap.c +++ b/src/stream_output/sap.c @@ -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; -- 2.39.5