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

Make some room for !TCP connection-oriented protocols

parent 4abef78f
...@@ -70,20 +70,25 @@ extern "C" { ...@@ -70,20 +70,25 @@ extern "C" {
/* Portable networking layer communication */ /* Portable networking layer communication */
int net_Socket (vlc_object_t *obj, int family, int socktype, int proto); 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) VLC_EXPORT( int, __net_Connect, (vlc_object_t *p_this, const char *psz_host, int i_port, int socktype, int protocol) );
#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_Listen, (vlc_object_t *p_this, const char *psz_host, int i_port, VLC_EXPORT( int *, net_Listen, (vlc_object_t *p_this, const char *psz_host, int i_port,
int family, int socktype, int protocol) ); 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) ); 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) #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); 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) #define net_Accept(a, b, c) __net_Accept(VLC_OBJECT(a), b, c)
VLC_EXPORT( int, __net_Accept, ( vlc_object_t *, int *, mtime_t ) ); VLC_EXPORT( int, __net_Accept, ( vlc_object_t *, int *, mtime_t ) );
......
...@@ -61,11 +61,13 @@ extern int net_Socket( vlc_object_t *p_this, int i_family, int i_socktype, ...@@ -61,11 +61,13 @@ extern int net_Socket( vlc_object_t *p_this, int i_family, int i_socktype,
int i_protocol ); 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; struct addrinfo hints, *res, *ptr;
const char *psz_realhost; const char *psz_realhost;
...@@ -113,8 +115,8 @@ int __net_ConnectTCP( vlc_object_t *p_this, const char *psz_host, int i_port ) ...@@ -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 ) for( ptr = res; ptr != NULL; ptr = ptr->ai_next )
{ {
int fd = net_Socket( p_this, ptr->ai_family, ptr->ai_socktype, int fd = net_Socket( p_this, ptr->ai_family, type ?: ptr->ai_socktype,
ptr->ai_protocol ); proto ?: ptr->ai_protocol );
if( fd == -1 ) if( fd == -1 )
{ {
if( u_errstep <= 0 ) if( u_errstep <= 0 )
......
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