VLC  2.1.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
vlc_network.h File Reference

This file defines interface to communicate with network plug-ins. More...

Include dependency graph for vlc_network.h:

Go to the source code of this file.

Data Structures

struct  virtual_socket_t

Macros

#define net_errno   errno
#define net_Connect(a, b, c, d, e)   net_Connect(VLC_OBJECT(a), b, c, d, e)
#define net_ListenTCP(a, b, c)
#define net_ConnectTCP(a, b, c)   net_ConnectTCP(VLC_OBJECT(a), b, c)
#define net_Accept(a, b)   net_Accept(VLC_OBJECT(a), b)
#define net_ConnectDgram(a, b, c, d, e)   net_ConnectDgram(VLC_OBJECT(a), b, c, d, e)
#define net_OpenDgram(a, b, c, d, e, g)   net_OpenDgram(VLC_OBJECT(a), b, c, d, e, g)
#define net_Read(a, b, c, d, e, f)   net_Read(VLC_OBJECT(a),b,c,d,e,f)
#define net_Write(a, b, c, d, e)   net_Write(VLC_OBJECT(a),b,c,d,e)
#define net_Gets(a, b, c)   net_Gets(VLC_OBJECT(a),b,c)
#define net_Printf(o, fd, vs,...)   net_Printf(VLC_OBJECT(o),fd,vs, __VA_ARGS__)
#define net_vaPrintf(a, b, c, d, e)   net_vaPrintf(VLC_OBJECT(a),b,c,d,e)
#define net_Close(fd)   (void)close (fd)
#define EAI_BADFLAGS   -1
#define EAI_NONAME   -2
#define EAI_AGAIN   -3
#define EAI_FAIL   -4
#define EAI_NODATA   -5
#define EAI_FAMILY   -6
#define EAI_SOCKTYPE   -7
#define EAI_SERVICE   -8
#define EAI_ADDRFAMILY   -9
#define EAI_MEMORY   -10
#define EAI_OVERFLOW   -11
#define EAI_SYSTEM   -12
#define NI_MAXHOST   1025
#define NI_MAXSERV   32
#define NI_MAXNUMERICHOST   64
#define AI_NUMERICSERV   0
#define AI_IDN   0 /* GNU/libc extension */

Functions

int vlc_socket (int, int, int, bool nonblock)
 Creates a socket file descriptor.
int vlc_accept (int, struct sockaddr *, socklen_t *, bool)
 Accepts an inbound connection request on a listening socket.
int net_Socket (vlc_object_t *obj, int family, int socktype, int proto)
int net_Connect (vlc_object_t *p_this, const char *psz_host, int i_port, int socktype, int protocol)
int * net_Listen (vlc_object_t *p_this, const char *psz_host, int i_port, int socktype, int protocol)
static int net_ConnectTCP (vlc_object_t *obj, const char *host, int port)
int net_AcceptSingle (vlc_object_t *obj, int lfd)
int net_Accept (vlc_object_t *, int *)
int net_ConnectDgram (vlc_object_t *p_this, const char *psz_host, int i_port, int hlim, int proto)
static int net_ConnectUDP (vlc_object_t *obj, const char *host, int port, int hlim)
int net_OpenDgram (vlc_object_t *p_this, const char *psz_bind, int i_bind, const char *psz_server, int i_server, int proto)
static int net_ListenUDP1 (vlc_object_t *obj, const char *host, int port)
void net_ListenClose (int *fd)
int net_Subscribe (vlc_object_t *obj, int fd, const struct sockaddr *addr, socklen_t addrlen)
int net_SetCSCov (int fd, int sendcov, int recvcov)
 net_SetCSCov: Sets the send and receive checksum coverage of a socket:
ssize_t net_Read (vlc_object_t *p_this, int fd, const v_socket_t *, void *p_data, size_t i_data, bool b_retry)
ssize_t net_Write (vlc_object_t *p_this, int fd, const v_socket_t *, const void *p_data, size_t i_data)
char * net_Gets (vlc_object_t *p_this, int fd, const v_socket_t *)
ssize_t net_Printf (vlc_object_t *p_this, int fd, const v_socket_t *, const char *psz_fmt,...)
ssize_t net_vaPrintf (vlc_object_t *p_this, int fd, const v_socket_t *, const char *psz_fmt, va_list args)
int vlc_getnameinfo (const struct sockaddr *, int, char *, int, int *, int)
int vlc_getaddrinfo (const char *, unsigned, const struct addrinfo *, struct addrinfo **)
 Resolves a host name to a list of socket addresses (like getaddrinfo()).
static bool net_SockAddrIsMulticast (const struct sockaddr *addr, socklen_t len)
static int net_GetSockAddress (int fd, char *address, int *port)
static int net_GetPeerAddress (int fd, char *address, int *port)
static uint16_t net_GetPort (const struct sockaddr *addr)
static void net_SetPort (struct sockaddr *addr, uint16_t port)

Detailed Description

This file defines interface to communicate with network plug-ins.

Macro Definition Documentation

#define AI_IDN   0 /* GNU/libc extension */
#define AI_NUMERICSERV   0
#define EAI_ADDRFAMILY   -9
#define EAI_AGAIN   -3

Referenced by gai_error_from_herrno().

#define EAI_BADFLAGS   -1

Referenced by getaddrinfo(), and getnameinfo().

#define EAI_FAIL   -4

Referenced by gai_error_from_herrno().

#define EAI_FAMILY   -6

Referenced by getaddrinfo(), and getnameinfo().

#define EAI_MEMORY   -10
#define EAI_NODATA   -5

Referenced by gai_error_from_herrno().

#define EAI_NONAME   -2
#define EAI_OVERFLOW   -11

Referenced by getnameinfo().

#define EAI_SERVICE   -8

Referenced by getaddrinfo(), and vlc_getaddrinfo().

#define EAI_SOCKTYPE   -7

Referenced by getaddrinfo().

#define EAI_SYSTEM   -12
#define net_Accept (   a,
 
)    net_Accept(VLC_OBJECT(a), b)
#define net_Close (   fd)    (void)close (fd)
#define net_Connect (   a,
  b,
  c,
  d,
 
)    net_Connect(VLC_OBJECT(a), b, c, d, e)

Referenced by net_ConnectTCP().

#define net_ConnectDgram (   a,
  b,
  c,
  d,
 
)    net_ConnectDgram(VLC_OBJECT(a), b, c, d, e)

Referenced by net_ConnectUDP(), and net_SetDSCP().

#define net_ConnectTCP (   a,
  b,
 
)    net_ConnectTCP(VLC_OBJECT(a), b, c)
#define net_errno   errno
#define net_Gets (   a,
  b,
 
)    net_Gets(VLC_OBJECT(a),b,c)
#define net_ListenTCP (   a,
  b,
 
)
Value:
SOCK_STREAM, IPPROTO_TCP)

Referenced by httpd_HostCreate().

#define net_OpenDgram (   a,
  b,
  c,
  d,
  e,
 
)    net_OpenDgram(VLC_OBJECT(a), b, c, d, e, g)

Referenced by net_ListenUDP1().

#define net_Printf (   o,
  fd,
  vs,
  ... 
)    net_Printf(VLC_OBJECT(o),fd,vs, __VA_ARGS__)
#define net_Read (   a,
  b,
  c,
  d,
  e,
 
)    net_Read(VLC_OBJECT(a),b,c,d,e,f)
#define net_vaPrintf (   a,
  b,
  c,
  d,
 
)    net_vaPrintf(VLC_OBJECT(a),b,c,d,e)

Referenced by net_Printf().

#define net_Write (   a,
  b,
  c,
  d,
 
)    net_Write(VLC_OBJECT(a),b,c,d,e)
#define NI_MAXHOST   1025

Referenced by vlc_getaddrinfo().

#define NI_MAXNUMERICHOST   64
#define NI_MAXSERV   32

Function Documentation

int net_Accept ( vlc_object_t ,
int *   
)
int net_AcceptSingle ( vlc_object_t obj,
int  lfd 
)

References pollfd::fd, msg_Dbg, msg_Err, net_errno, and vlc_accept().

Referenced by net_Accept().

int net_Connect ( vlc_object_t p_this,
const char *  psz_host,
int  i_port,
int  socktype,
int  protocol 
)
int net_ConnectDgram ( vlc_object_t p_this,
const char *  psz_host,
int  i_port,
int  hlim,
int  proto 
)
static int net_ConnectTCP ( vlc_object_t obj,
const char *  host,
int  port 
)
inlinestatic

References net_Connect.

static int net_ConnectUDP ( vlc_object_t obj,
const char *  host,
int  port,
int  hlim 
)
inlinestatic

References net_ConnectDgram.

Referenced by AddressCreate().

static int net_GetPeerAddress ( int  fd,
char *  address,
int *  port 
)
inlinestatic

< Unspecified error

References NI_MAXNUMERICHOST, VLC_EGENERIC, and vlc_getnameinfo().

Referenced by httpd_ClientIP().

static uint16_t net_GetPort ( const struct sockaddr *  addr)
inlinestatic
char* net_Gets ( vlc_object_t p_this,
int  fd,
const v_socket_t  
)
static int net_GetSockAddress ( int  fd,
char *  address,
int *  port 
)
inlinestatic

< Unspecified error

References NI_MAXNUMERICHOST, VLC_EGENERIC, and vlc_getnameinfo().

Referenced by httpd_ServerIP().

int* net_Listen ( vlc_object_t p_this,
const char *  psz_host,
int  i_port,
int  socktype,
int  protocol 
)
void net_ListenClose ( int *  fd)

References net_Close.

Referenced by httpd_HostCreate(), and httpd_HostDelete().

static int net_ListenUDP1 ( vlc_object_t obj,
const char *  host,
int  port 
)
inlinestatic

References net_OpenDgram.

int net_OpenDgram ( vlc_object_t p_this,
const char *  psz_bind,
int  i_bind,
const char *  psz_server,
int  i_server,
int  proto 
)
ssize_t net_Printf ( vlc_object_t p_this,
int  fd,
const v_socket_t ,
const char *  psz_fmt,
  ... 
)
ssize_t net_Read ( vlc_object_t p_this,
int  fd,
const v_socket_t ,
void *  p_data,
size_t  i_data,
bool  b_retry 
)
int net_SetCSCov ( int  fd,
int  sendcov,
int  recvcov 
)

net_SetCSCov: Sets the send and receive checksum coverage of a socket:

Parameters
fdsocket
sendcovpayload coverage of sent packets (bytes), -1 for full
recvcovminimum payload coverage of received packets, -1 for full

< Unspecified error

< Unspecified error

References SOL_DCCP, SOL_UDPLITE, VLC_EGENERIC, VLC_SUCCESS, and VLC_UNUSED.

static void net_SetPort ( struct sockaddr *  addr,
uint16_t  port 
)
inlinestatic
static bool net_SockAddrIsMulticast ( const struct sockaddr *  addr,
socklen_t  len 
)
inlinestatic
int net_Socket ( vlc_object_t obj,
int  family,
int  socktype,
int  proto 
)
int net_Subscribe ( vlc_object_t obj,
int  fd,
const struct sockaddr *  addr,
socklen_t  addrlen 
)
ssize_t net_vaPrintf ( vlc_object_t p_this,
int  fd,
const v_socket_t ,
const char *  psz_fmt,
va_list  args 
)
ssize_t net_Write ( vlc_object_t p_this,
int  fd,
const v_socket_t ,
const void *  p_data,
size_t  i_data 
)
int vlc_accept ( int  lfd,
struct sockaddr *  addr,
socklen_t *  alen,
bool  nonblock 
)

Accepts an inbound connection request on a listening socket.

The new file descriptor has the close-on-exec flag set.

Parameters
lfdlistening socket file descriptor
addrpointer to the peer address or NULL [OUT]
alenpointer to the length of the peer address or NULL [OUT]
nonblockwhether to put the new socket in non-blocking mode
Returns
a new file descriptor, or -1 on error.

Referenced by httpd_HostThread(), and net_AcceptSingle().

int vlc_getaddrinfo ( const char *  node,
unsigned  port,
const struct addrinfo *  hints,
struct addrinfo **  res 
)

Resolves a host name to a list of socket addresses (like getaddrinfo()).

Parameters
nodehost name to resolve (encoded as UTF-8), or NULL
i_portport number for the socket addresses
p_hintsparameters (see getaddrinfo() manual page)
respointer set to the resulting chained list.
Returns
0 on success, a getaddrinfo() error otherwise. On failure, *res is undefined. On success, it must be freed with freeaddrinfo().

References EAI_SERVICE, getaddrinfo(), and NI_MAXHOST.

Referenced by net_Connect(), net_ConnectDgram(), net_Listen(), net_ListenSingle(), net_OpenDgram(), SocksHandshakeTCP(), and sout_AnnounceRegisterSDP().

int vlc_getnameinfo ( const struct sockaddr *  ,
int  ,
char *  ,
int  ,
int *  ,
int   
)
int vlc_socket ( int  pf,
int  type,
int  proto,
bool  nonblock 
)

Creates a socket file descriptor.

The new file descriptor has the close-on-exec flag set.

Parameters
pfprotocol family
typesocket type
protonetwork protocol
nonblocktrue to create a non-blocking socket
Returns
a new file descriptor or -1

Referenced by net_Socket().