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" {
/* 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 ) );
......
......@@ -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 )
......
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