FFmpeg
4.0
|
#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 <netinet/tcp.h>
#include <netdb.h>
Go to the source code of this file.
Data Structures | |
struct | sockaddr_storage |
union | sockaddr_union |
struct | addrinfo |
Macros | |
#define | ff_neterrno() AVERROR(errno) |
#define | MSG_NOSIGNAL 0 |
#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) |
int | 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_network_sleep_interruptible (int64_t timeout, AVIOInterruptCB *int_cb) |
Waits for up to 'timeout' microseconds. More... | |
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. More... | |
int | ff_listen (int fd, const struct sockaddr *addr, socklen_t addrlen) |
Bind to a file descriptor to an address without accepting connections. More... | |
int | ff_accept (int fd, int timeout, URLContext *h) |
Poll for a single connection on the passed file descriptor. More... | |
int | ff_listen_connect (int fd, const struct sockaddr *addr, socklen_t addrlen, int timeout, URLContext *h, int will_try_next) |
Connect to a file descriptor and poll for result. More... | |
int | ff_http_match_no_proxy (const char *no_proxy, const char *hostname) |
int | ff_socket (int domain, int type, int protocol) |
#define ff_neterrno | ( | ) | AVERROR(errno) |
Definition at line 65 of file network.h.
Referenced by ff_accept(), ff_listen(), ff_listen_connect(), ff_network_close(), ff_network_wait_fd(), ff_poll_interrupt(), log_net_error(), rtp_read(), rtp_write(), sctp_open(), sctp_read(), sctp_wait_fd(), sctp_write(), tcp_get_window_size(), tcp_open(), tcp_read(), tcp_write(), udp_get_file_handle(), udp_read(), udp_set_multicast_sources(), udp_write(), unix_open(), unix_read(), and unix_write().
#define MSG_NOSIGNAL 0 |
Definition at line 130 of file network.h.
Referenced by ff_sctp_send(), sctp_write(), tcp_write(), and unix_write().
#define AI_PASSIVE 1 |
Definition at line 176 of file network.h.
Referenced by libsrt_setup(), tcp_open(), and udp_socket_create().
#define AI_NUMERICHOST 4 |
Definition at line 184 of file network.h.
Referenced by ff_tls_open_underlying(), ff_url_join(), and get_sockaddr().
#define NI_NUMERICHOST 2 |
Definition at line 192 of file network.h.
Referenced by ff_rtsp_open_transport_ctx().
#define NI_NUMERICSERV 8 |
Definition at line 200 of file network.h.
Referenced by udp_port().
#define getaddrinfo ff_getaddrinfo |
Definition at line 214 of file network.h.
Referenced by ff_tls_open_underlying(), ff_url_join(), get_sockaddr(), libsrt_setup(), rtp_resolve_host(), sap_write_header(), sctp_open(), tcp_open(), and udp_resolve_host().
#define freeaddrinfo ff_freeaddrinfo |
Definition at line 215 of file network.h.
Referenced by ff_tls_open_underlying(), ff_url_join(), get_sockaddr(), libsrt_setup(), rtp_parse_addr_list(), sap_write_header(), sctp_open(), tcp_open(), udp_set_multicast_sources(), udp_set_url(), and udp_socket_create().
#define getnameinfo ff_getnameinfo |
Definition at line 216 of file network.h.
Referenced by ff_rtsp_open_transport_ctx(), and udp_port().
#define gai_strerror ff_gai_strerror |
Definition at line 222 of file network.h.
Referenced by ff_rtsp_open_transport_ctx(), get_sockaddr(), libsrt_setup(), rtp_resolve_host(), sctp_open(), tcp_open(), udp_port(), and udp_resolve_host().
#define INET6_ADDRSTRLEN INET_ADDRSTRLEN |
Definition at line 238 of file network.h.
Referenced by ff_is_multicast_address().
Definition at line 241 of file network.h.
Referenced by ff_is_multicast_address().
#define POLLING_TIME 100 |
Definition at line 246 of file network.h.
Referenced by ff_network_sleep_interruptible(), ff_network_wait_fd(), ff_poll_interrupt(), and libsrt_network_wait_fd().
Referenced by ff_accept(), ff_listen_connect(), udp_get_file_handle(), and udp_open().
Definition at line 57 of file network.c.
Referenced by avformat_network_init(), ff_rtsp_open_transport_ctx(), sap_read_header(), sap_write_header(), and url_alloc_for_protocol().
Definition at line 115 of file network.c.
Referenced by avformat_network_deinit(), ff_rtsp_open_transport_ctx(), ffurl_closep(), rtsp_read_close(), rtsp_write_close(), sap_read_close(), sap_write_close(), and url_alloc_for_protocol().
Definition at line 30 of file network.c.
Referenced by avformat_network_init().
Definition at line 45 of file network.c.
Referenced by avformat_network_deinit().
Definition at line 68 of file network.c.
Referenced by ff_network_wait_fd_timeout(), rtp_write(), udp_read(), udp_write(), unix_read(), and unix_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
int_cb | Interrupt callback, is checked before each ff_network_wait_fd call |
Definition at line 77 of file network.c.
Referenced by tcp_read(), and tcp_write().
int ff_network_sleep_interruptible | ( | int64_t | timeout, |
AVIOInterruptCB * | int_cb | ||
) |
Waits for up to 'timeout' microseconds.
If the usert's int_cb is set and triggered, return before that. Timeout in microseconds. Maybe have lower actual precision.
int_cb | Interrupt callback, is checked regularly. |
Definition at line 97 of file network.c.
Referenced by http_read_stream().
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 | ||
) |
const char* ff_gai_strerror | ( | int | ecode | ) |
int ff_is_multicast_address | ( | struct sockaddr * | addr | ) |
Definition at line 144 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.
fd | First argument of bind(). |
addr | Second argument of bind(). |
addrlen | Third argument of bind(). |
timeout | Polling timeout in milliseconds. |
h | URLContext providing interrupt check callback and logging context. |
Definition at line 239 of file network.c.
Referenced by sctp_open(), tcp_open(), and unix_open().
Bind to a file descriptor to an address without accepting connections.
fd | First argument of bind(). |
addr | Second argument of bind(). |
addrlen | Third argument of bind(). |
Definition at line 203 of file network.c.
Referenced by ff_listen_bind(), and tcp_open().
int ff_accept | ( | int | fd, |
int | timeout, | ||
URLContext * | h | ||
) |
Poll for a single connection on the passed file descriptor.
fd | The listening socket file descriptor. |
timeout | Polling timeout in milliseconds. |
h | URLContext providing interrupt check callback and logging context. |
Definition at line 221 of file network.c.
Referenced by ff_listen_bind(), and tcp_accept().
int ff_listen_connect | ( | int | fd, |
const struct sockaddr * | addr, | ||
socklen_t | addrlen, | ||
int | timeout, | ||
URLContext * | h, | ||
int | will_try_next | ||
) |
Connect to a file descriptor and poll for result.
fd | First argument of connect(), will be set as non-blocking. |
addr | Second argument of connect(). |
addrlen | Third argument of connect(). |
timeout | Polling timeout in milliseconds. |
h | URLContext providing interrupt check callback and logging context. |
will_try_next | Whether the caller will try to connect to another address for the same host name, affecting the form of logged errors. |
Definition at line 251 of file network.c.
Referenced by sctp_open(), tcp_open(), and unix_open().
int ff_http_match_no_proxy | ( | const char * | no_proxy, |
const char * | hostname | ||
) |
Definition at line 320 of file network.c.
Referenced by ff_tls_open_underlying(), http_open_cnx_internal(), and test().
Definition at line 179 of file network.c.
Referenced by sctp_open(), tcp_open(), udp_socket_create(), and unix_open().