Commit 93c16a0b authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Simplify shutdown() portability

parent 42388a77
......@@ -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)
......
......@@ -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;
}
......
......@@ -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)
......
......@@ -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)
......
......@@ -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 )
{
......
......@@ -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;
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment