From: RĂ©mi Denis-Courmont Date: Wed, 14 Feb 2007 19:38:57 +0000 (+0000) Subject: Make some room for !TCP connection-oriented protocols X-Git-Tag: 0.9.0-test0~8585 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=d9906f4304081ab9145aecc2e7bd3adb708299a4;p=vlc Make some room for !TCP connection-oriented protocols --- diff --git a/include/vlc_network.h b/include/vlc_network.h index 16e2c1bcbc..d330d55b18 100644 --- a/include/vlc_network.h +++ b/include/vlc_network.h @@ -70,20 +70,25 @@ extern "C" { /* Portable networking layer communication */ int net_Socket (vlc_object_t *obj, int family, int socktype, int proto); -#define net_ConnectTCP(a, b, c) __net_ConnectTCP(VLC_OBJECT(a), b, c) -#define net_OpenTCP(a, b, c) __net_ConnectTCP(VLC_OBJECT(a), b, c) -VLC_EXPORT( int, __net_ConnectTCP, ( vlc_object_t *p_this, const char *psz_host, int i_port ) ); +VLC_EXPORT( int, __net_Connect, (vlc_object_t *p_this, const char *psz_host, int i_port, int socktype, int protocol) ); VLC_EXPORT( int *, net_Listen, (vlc_object_t *p_this, const char *psz_host, int i_port, int family, int socktype, int protocol) ); VLC_EXPORT( int, net_ListenSingle, (vlc_object_t *p_this, const char *psz_host, int i_port, int family, int socktype, int protocol) ); #define net_ListenTCP(a, b, c) __net_ListenTCP(VLC_OBJECT(a), b, c) -static inline int *__net_ListenTCP ( vlc_object_t *obj, const char *host, int port) +#define net_ConnectTCP(a, b, c) __net_ConnectTCP(VLC_OBJECT(a), b, c) + +static inline int *__net_ListenTCP (vlc_object_t *obj, const char *host, int port) { return net_Listen (obj, host, port, AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP); } +static inline int __net_ConnectTCP (vlc_object_t *obj, const char *host, int port) +{ + return __net_Connect (obj, host, port, SOCK_STREAM, IPPROTO_TCP); +} + #define net_Accept(a, b, c) __net_Accept(VLC_OBJECT(a), b, c) VLC_EXPORT( int, __net_Accept, ( vlc_object_t *, int *, mtime_t ) ); diff --git a/src/network/tcp.c b/src/network/tcp.c index e7cf2018af..bdff1aced5 100644 --- a/src/network/tcp.c +++ b/src/network/tcp.c @@ -61,11 +61,13 @@ extern int net_Socket( vlc_object_t *p_this, int i_family, int i_socktype, int i_protocol ); /***************************************************************************** - * __net_ConnectTCP: + * __net_Connect: ***************************************************************************** - * Open a TCP connection and return a handle + * Open a network connection. + * @return socket handler or -1 on error. *****************************************************************************/ -int __net_ConnectTCP( vlc_object_t *p_this, const char *psz_host, int i_port ) +int __net_Connect( vlc_object_t *p_this, const char *psz_host, int i_port, + int type, int proto ) { struct addrinfo hints, *res, *ptr; const char *psz_realhost; @@ -113,8 +115,8 @@ int __net_ConnectTCP( vlc_object_t *p_this, const char *psz_host, int i_port ) for( ptr = res; ptr != NULL; ptr = ptr->ai_next ) { - int fd = net_Socket( p_this, ptr->ai_family, ptr->ai_socktype, - ptr->ai_protocol ); + int fd = net_Socket( p_this, ptr->ai_family, type ?: ptr->ai_socktype, + proto ?: ptr->ai_protocol ); if( fd == -1 ) { if( u_errstep <= 0 )