FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
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 "url.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

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)
 
#define POLLING_TIME   100
 

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.
 
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)
 
int ff_listen_bind (int fd, const struct sockaddr *addr, socklen_t addrlen, int timeout, URLContext *h)
 Bind to a file descriptor and poll for a connection.
 
int ff_listen_connect (int fd, const struct sockaddr *addr, socklen_t addrlen, int timeout, URLContext *h)
 Connect to a file descriptor and poll for result.
 
int ff_http_match_no_proxy (const char *no_proxy, const char *hostname)
 

Variables

int ff_network_inited_globally
 

Macro Definition Documentation

#define ff_neterrno ( )    AVERROR(errno)
#define EAI_AGAIN   2

Definition at line 129 of file network.h.

#define EAI_BADFLAGS   3

Definition at line 132 of file network.h.

#define EAI_FAIL   4

Definition at line 135 of file network.h.

#define EAI_FAMILY   5

Definition at line 138 of file network.h.

#define EAI_MEMORY   6

Definition at line 141 of file network.h.

#define EAI_NODATA   7

Definition at line 144 of file network.h.

#define EAI_NONAME   8

Definition at line 147 of file network.h.

#define EAI_SERVICE   9

Definition at line 150 of file network.h.

#define EAI_SOCKTYPE   10

Definition at line 153 of file network.h.

#define AI_PASSIVE   1

Definition at line 157 of file network.h.

Referenced by tcp_open(), and udp_socket_create().

#define AI_CANONNAME   2

Definition at line 161 of file network.h.

#define AI_NUMERICHOST   4

Definition at line 165 of file network.h.

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

#define NI_NOFQDN   1

Definition at line 169 of file network.h.

#define NI_NUMERICHOST   2

Definition at line 173 of file network.h.

#define NI_NAMERQD   4

Definition at line 177 of file network.h.

#define NI_NUMERICSERV   8

Definition at line 181 of file network.h.

Referenced by udp_port().

#define NI_DGRAM   16

Definition at line 185 of file network.h.

#define getaddrinfo   ff_getaddrinfo
#define freeaddrinfo   ff_freeaddrinfo
#define getnameinfo   ff_getnameinfo

Definition at line 197 of file network.h.

Referenced by udp_port().

#define gai_strerror   ff_gai_strerror

Definition at line 202 of file network.h.

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

#define INADDR_LOOPBACK   0x7f000001

Definition at line 206 of file network.h.

#define INET_ADDRSTRLEN   16

Definition at line 210 of file network.h.

#define INET6_ADDRSTRLEN   INET_ADDRSTRLEN

Definition at line 214 of file network.h.

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

Definition at line 218 of file network.h.

Referenced by ff_is_multicast_address().

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

Definition at line 221 of file network.h.

Referenced by ff_is_multicast_address().

#define POLLING_TIME   100

Definition at line 226 of file network.h.

Referenced by ff_poll_interrupt().

Function Documentation

int ff_socket_nonblock ( int  socket,
int  enable 
)
int ff_network_init ( void  )
void ff_network_close ( void  )
void ff_tls_init ( void  )

Definition at line 70 of file network.c.

Referenced by avformat_network_init(), and tls_open().

void ff_tls_deinit ( void  )

Definition at line 102 of file network.c.

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

int ff_network_wait_fd ( int  fd,
int  write 
)

Definition at line 145 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 154 of file network.c.

Referenced by tcp_read(), and tcp_write().

int ff_inet_aton ( const char *  str,
struct in_addr *  add 
)

Referenced by resolve_host().

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)

Definition at line 203 of file network.c.

Referenced by ff_udp_set_remote_url().

int ff_listen_bind ( int  fd,
const struct sockaddr *  addr,
socklen_t  addrlen,
int  timeout,
URLContext h 
)

Bind to a file descriptor and poll for a connection.

Parameters
fdFirst argument of bind().
addrSecond argument of bind().
addrlenThird argument of bind().
timeoutPolling timeout in milliseconds.
hURLContext providing interrupt check callback and logging context.
Returns
A non-blocking file descriptor on success or an AVERROR on failure.

Definition at line 238 of file network.c.

Referenced by tcp_open().

int ff_listen_connect ( int  fd,
const struct sockaddr *  addr,
socklen_t  addrlen,
int  timeout,
URLContext h 
)

Connect to a file descriptor and poll for result.

Parameters
fdFirst argument of connect(), will be set as non-blocking.
addrSecond argument of connect().
addrlenThird argument of connect().
timeoutPolling timeout in milliseconds.
hURLContext providing interrupt check callback and logging context.
Returns
0 on success, AVERROR on failure.

Definition at line 269 of file network.c.

Referenced by tcp_open().

int ff_http_match_no_proxy ( const char *  no_proxy,
const char *  hostname 
)

Definition at line 332 of file network.c.

Referenced by http_open_cnx(), test(), and tls_open().

Variable Documentation

int ff_network_inited_globally

Definition at line 125 of file network.c.

Referenced by avformat_network_init().