network.h File Reference
#include <errno.h>
#include <stdint.h>
#include "config.h"
#include "libavutil/error.h"
#include "os_support.h"
#include "avio.h"
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <poll.h>
Include dependency graph for network.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sockaddr_storage
 
struct  addrinfo
 

Macros

#define ff_neterrno()   AVERROR(errno)
 
#define EAI_AGAIN   2
 
#define EAI_BADFLAGS   3
 
#define EAI_FAIL   4
 
#define EAI_FAMILY   5
 
#define EAI_MEMORY   6
 
#define EAI_NODATA   7
 
#define EAI_NONAME   8
 
#define EAI_SERVICE   9
 
#define EAI_SOCKTYPE   10
 
#define AI_PASSIVE   1
 
#define AI_CANONNAME   2
 
#define AI_NUMERICHOST   4
 
#define NI_NOFQDN   1
 
#define NI_NUMERICHOST   2
 
#define NI_NAMERQD   4
 
#define NI_NUMERICSERV   8
 
#define NI_DGRAM   16
 
#define getaddrinfo   ff_getaddrinfo
 
#define freeaddrinfo   ff_freeaddrinfo
 
#define getnameinfo   ff_getnameinfo
 
#define gai_strerror   ff_gai_strerror
 
#define INADDR_LOOPBACK   0x7f000001
 
#define INET_ADDRSTRLEN   16
 
#define INET6_ADDRSTRLEN   INET_ADDRSTRLEN
 
#define IN_MULTICAST(a)   ((((uint32_t)(a)) & 0xf0000000) == 0xe0000000)
 
#define IN6_IS_ADDR_MULTICAST(a)   (((uint8_t *) (a))[0] == 0xff)
 

Functions

int ff_socket_nonblock (int socket, int enable)
 
int ff_network_init (void)
 
void ff_network_close (void)
 
void ff_tls_init (void)
 
void ff_tls_deinit (void)
 
int ff_network_wait_fd (int fd, int write)
 
int ff_network_wait_fd_timeout (int fd, int write, int64_t timeout, AVIOInterruptCB *int_cb)
 This works similarly to ff_network_wait_fd, but waits up to 'timeout' microseconds Uses ff_network_wait_fd in a loop. More...
 
int ff_inet_aton (const char *str, struct in_addr *add)
 
int ff_getaddrinfo (const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res)
 
void ff_freeaddrinfo (struct addrinfo *res)
 
int ff_getnameinfo (const struct sockaddr *sa, int salen, char *host, int hostlen, char *serv, int servlen, int flags)
 
const char * ff_gai_strerror (int ecode)
 
int ff_is_multicast_address (struct sockaddr *addr)
 

Variables

int ff_network_inited_globally
 

Macro Definition Documentation

#define AI_CANONNAME   2

Definition at line 160 of file network.h.

#define AI_NUMERICHOST   4

Definition at line 164 of file network.h.

Referenced by ff_url_join(), get_sockaddr(), tls_open(), and udp_set_multicast_sources().

#define AI_PASSIVE   1

Definition at line 156 of file network.h.

Referenced by tcp_open(), and udp_socket_create().

#define EAI_AGAIN   2

Definition at line 128 of file network.h.

#define EAI_BADFLAGS   3

Definition at line 131 of file network.h.

#define EAI_FAIL   4

Definition at line 134 of file network.h.

#define EAI_FAMILY   5

Definition at line 137 of file network.h.

#define EAI_MEMORY   6

Definition at line 140 of file network.h.

#define EAI_NODATA   7

Definition at line 143 of file network.h.

#define EAI_NONAME   8

Definition at line 146 of file network.h.

#define EAI_SERVICE   9

Definition at line 149 of file network.h.

#define EAI_SOCKTYPE   10

Definition at line 152 of file network.h.

#define gai_strerror   ff_gai_strerror

Definition at line 201 of file network.h.

Referenced by sctp_open(), tcp_open(), udp_port(), and udp_resolve_host().

#define getaddrinfo   ff_getaddrinfo
#define getnameinfo   ff_getnameinfo

Definition at line 196 of file network.h.

Referenced by ff_rtsp_open_transport_ctx(), and udp_port().

#define IN6_IS_ADDR_MULTICAST (   a)    (((uint8_t *) (a))[0] == 0xff)

Definition at line 220 of file network.h.

Referenced by ff_is_multicast_address().

#define IN_MULTICAST (   a)    ((((uint32_t)(a)) & 0xf0000000) == 0xe0000000)

Definition at line 217 of file network.h.

Referenced by ff_is_multicast_address().

#define INADDR_LOOPBACK   0x7f000001

Definition at line 205 of file network.h.

#define INET6_ADDRSTRLEN   INET_ADDRSTRLEN

Definition at line 213 of file network.h.

#define INET_ADDRSTRLEN   16

Definition at line 209 of file network.h.

#define NI_DGRAM   16

Definition at line 184 of file network.h.

#define NI_NAMERQD   4

Definition at line 176 of file network.h.

#define NI_NOFQDN   1

Definition at line 168 of file network.h.

#define NI_NUMERICHOST   2

Definition at line 172 of file network.h.

Referenced by ff_rtsp_open_transport_ctx().

#define NI_NUMERICSERV   8

Definition at line 180 of file network.h.

Referenced by udp_port().

Function Documentation

void ff_freeaddrinfo ( struct addrinfo res)
const char* ff_gai_strerror ( int  ecode)
int ff_getaddrinfo ( const char *  node,
const char *  service,
const struct addrinfo hints,
struct addrinfo **  res 
)
int ff_getnameinfo ( const struct sockaddr *  sa,
int  salen,
char *  host,
int  hostlen,
char *  serv,
int  servlen,
int  flags 
)
int ff_inet_aton ( const char *  str,
struct in_addr *  add 
)

Referenced by resolve_host().

int ff_is_multicast_address ( struct sockaddr *  addr)

Definition at line 202 of file network.c.

Referenced by ff_udp_set_remote_url().

int ff_network_init ( void  )
int ff_network_wait_fd ( int  fd,
int  write 
)

Definition at line 144 of file network.c.

Referenced by ff_network_wait_fd_timeout(), udp_read(), and udp_write().

int ff_network_wait_fd_timeout ( int  fd,
int  write,
int64_t  timeout,
AVIOInterruptCB int_cb 
)

This works similarly to ff_network_wait_fd, but waits up to 'timeout' microseconds Uses ff_network_wait_fd in a loop.

Socket descriptor Set 1 to wait for socket able to be read, 0 to be written Timeout interval, in microseconds. Actual precision is 100000 mcs, due to ff_network_wait_fd usage

Parameters
int_cbInterrupt callback, is checked after each ff_network_wait_fd call
Returns
0 if data can be read/written, AVERROR(ETIMEDOUT) if timeout expired, or negative error code

Definition at line 153 of file network.c.

Referenced by tcp_read(), and tcp_write().

int ff_socket_nonblock ( int  socket,
int  enable 
)
void ff_tls_deinit ( void  )

Definition at line 101 of file network.c.

Referenced by avformat_network_deinit(), tls_close(), and tls_open().

void ff_tls_init ( void  )

Definition at line 69 of file network.c.

Referenced by avformat_network_init(), and tls_open().

Variable Documentation

int ff_network_inited_globally

Definition at line 124 of file network.c.

Referenced by avformat_network_init().