1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00
Commit Graph

50 Commits

Author SHA1 Message Date
Rémi Denis-Courmont
6ee1cb5740 libavformat: use MSG_NOSIGNAL when applicable
If the remote end of a connection oriented socket hangs up, generating
an EPIPE error is preferable over an unhandled SIGPIPE signal.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-08-25 10:49:14 +03:00
Diego Biurrun
9997cee04d network.h: Add #endif comments to improve readability 2014-01-06 21:16:54 +01:00
Rémi Denis-Courmont
9d5ec50ead ff_socket: put out-of-line and fallback to fcntl() for close-on-exec
This supports non-Linux systems (SOCK_CLOEXEC is non-standard) and
older Linux kernels to the extent possible.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-09 11:26:50 +03:00
Martin Storsjö
abe5268c33 tcp: Use a different log message and level if there's more addresses to try
This lowers the level of warnings printed if trying to connect
to a host name that provides both v6 and v4 addresses but the
service only is available on the v4 address (often occurring for
'localhost', with servers that aren't v6-aware).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-06 10:39:39 +03:00
Luca Barbato
bb9378251a network: Use SOCK_CLOEXEC when available 2013-08-05 16:13:36 +02:00
Luca Barbato
ec7c51c786 avf: move ff_http_match_no_proxy to network
It is only used by network protocols.
2013-06-16 14:41:00 +02:00
Luca Barbato
9835abb6d6 network: uniform ff_listen_bind and ff_listen_connect
Document the functions and have both use a millisecond timeout and
check for interrupt.
2013-06-04 14:56:52 +02:00
Luca Barbato
f849a77e67 network: factor out connect-listening code
Introduce ff_listen_connect, to be shared with the other
non-tcp network protocols.
2013-06-01 15:29:53 +02:00
Luca Barbato
28306e6d62 network: factor out bind-listening code
Introduce ff_listen_bind, to be shared with the other non-tcp
network protocols.
2013-06-01 15:29:53 +02:00
Mans Rullgard
da0d0ae9a4 network: add fallbacks for INADDR_LOOPBACK and INET_ADDRSTRLEN
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Mans Rullgard
1fbaabefc4 network: #include stdint.h in network.h
This header uses various types provided by stdint.h without
explicitly including it.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-16 14:45:29 +01:00
Martin Storsjö
9e4b04f8b9 network: Always use our version of gai_strerror on windows
Even if linking directly to getaddrinfo, use our version of
gai_strerror instead of the system's version. Microsoft explicitly
documents that their version of gai_strerror is thread-unsafe.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 21:41:38 +03:00
Martin Storsjö
c98e2053f5 network: Undefine existing gai_strerror definitions
This avoids warnings if there already exists a definition.

This is the case on windows, where the getaddrinfo isn't available
and linked to (and we use our fallbacks instead, which actually
try to use the proper getaddrinfo version if found at runtime),
but gai_strerror still exists as a define.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 21:41:28 +03:00
Martin Storsjö
2ca6e9bb47 network: Extend the fallback gai_strerror implementation to handle more error codes
This is useful if a proper getaddrinfo is loaded dynamically on
windows, while using the fallback implementation of gai_strerror.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 21:21:59 +03:00
Ronald S. Bultje
4b1b1449d9 network: Don't redefine error codes if they already exist in errno.h
Since the errno.h values don't match the error codes that winsock
returns, map the winsock error codes to the errno ones, to make
sure explicit checks against AVERROR(x) match.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-26 17:22:21 +03:00
Martin Storsjö
39dba5aa1b network: Include unistd.h from network.h
This heaader is required for close() for sockets in network
code. For winsock, the equivalent function is defined in the
winsock2.h header.

This avoids having the HAVE_UNISTD_H in all files dealing with
raw sockets.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-26 17:22:21 +03:00
Martin Storsjö
561687696f network: Pass pointers of the right type to get/setsockopt/ioctlsocket on windows
This avoids warnings.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-06-19 20:22:47 +03:00
Martin Storsjö
ce145690b6 avformat: Warn about using network functions without calling avformat_network_init
This is to make developers aware of the fact that they will
start using the new init function at some point.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-07 19:29:33 +02:00
Martin Storsjö
48e59ad8e7 avformat: Add ff_tls_init()/deinit() that initialize OpenSSL
If the application hasn't set up mutex callbacks, we set up
our own using pthreads (or w32pthreads).

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-05 12:08:59 +02:00
Martin Storsjö
f6d3710096 avformat: Split out functions from network.h to a new file, network.c
Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-05 12:08:47 +02:00
Diego Biurrun
8d459acc10 Add missing #includes to make headers self-contained.
This fixes 'make checkheaders'.
2011-06-04 18:15:50 +02:00
Diego Biurrun
e169428529 Mark parameterless function declarations as 'void'. 2011-05-26 16:26:17 +02:00
Gil Pedersen
f2c85458c4 network: Check POLLERR and POLLHUP in ff_network_wait_fd
Previously, the function would lead to an infinite wait (by
returning AVERROR(EAGAIN)) on sockets indicating an error
via either of these poll flags.

Signed-off-by: Martin Storsjö <martin@martin.st>
2011-04-28 10:28:51 +03:00
Luca Barbato
a2031251c7 proto: include os_support.h in network.h
Fix compilation on systems without poll()
2011-04-07 21:03:12 +02:00
Luca Barbato
ebba2b3e2a proto: factor ff_network_wait_fd and use it on udp
Support the URL_FLAG_NONBLOCK semantic and uniform the protocol.
The quick retry loop is already part of retry_transfer_wrapper.

The polling routine is common to the network protocols:
udp, tcp and, once merged, sctp.
2011-04-07 02:53:55 +02:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Martin Storsjö
28c4741a66 libavformat: Remove FF_NETERRNO()
Map EAGAIN and EINTR from ff_neterrno to the normal AVERROR()
error codes. Provide fallback definitions of other errno.h network
errors, mapping them to the corresponding winsock errors.

This eases catching these error codes in common code, without having
to distinguish between FF_NETERRNO(EAGAIN) and AVERROR(EAGAIN).

This fixes roundup issue 2614, unbreaking blocking network IO on
windows.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-02-23 07:21:31 -05:00
Martin Storsjö
55b6bd1c01 Convert ff_is_multicast_address to take a struct sockaddr parameter
Not all users of this function will have a full struct sockaddr_storage
available, and casting other sockaddrs to sockaddr_storage is wrong,
while any sockaddr can be cast to a base sockaddr.

Originally committed as revision 25388 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 07:58:56 +00:00
Martin Storsjö
7ac57fa5eb Share the is_multicast_address function
The header probably isn't the right permanent place for this function, but
it is quite small, and consensus seems to be that it can stay in the
header for now, instead of creating a new file network.c just for this one.

Originally committed as revision 25387 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 07:54:52 +00:00
Martin Storsjö
f63630cdf3 Move multicast address identification fallback macros to network.h from udp.c
Originally committed as revision 25386 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-10-07 07:53:31 +00:00
Ronald S. Bultje
f0d8ac529f Move INET6_ADDRSTRLEN to network.h, similar to other network-related fixups
for broken OSes. This is included in rtsp.h, as opposed to os_support.h.
Should fix OS/2 broken build on fate.

Originally committed as revision 25035 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-03 20:06:01 +00:00
Ronald S. Bultje
4aecee7fc3 Fix compile error on mingw where ETIMEDOUT is missing (because it's a WSA error).
This patch also changes FF_NETERROR() to be an AVERROR(), i.e. it is always
negative, whereas it was previously positive.

Originally committed as revision 22887 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-15 18:27:27 +00:00
David Conrad
ac11d562e5 Localize the #define _SVID_SOURCE needed for inet_aton() to os_support.c
Originally committed as revision 22284 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-07 19:48:59 +00:00
Ronald S. Bultje
04a2b04b98 Implement gai_strerror() for systems lacking such functionality. Patch
by KO Myung-Hun <komh challion net>.

Originally committed as revision 21692 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-02-08 18:48:12 +00:00
Martin Storsjö
3d7b42f97b Use the configure check from r21351 and use it to properly define struct
sockaddr (in case it's not missing) so it always works on the system that
we are defining it for, in a RFC-2553/3493-compliant way (i.e. containing
a ss_family field). which is used in udp.c. Patch by Martin Storsjö
<$firstname $firstname st>.

Originally committed as revision 21352 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-20 17:26:14 +00:00
Martin Storsjö
5d629b72cb Provide a fallback for getnameinfo() also. Patch by Martin Storsjö
<$firstname()$firstname,st>.

Originally committed as revision 21150 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-11 17:45:17 +00:00
Martin Storsjö
34a65f1fdd Implement a fallback for struct sockaddr_storage if not available.
Patch by Martin Storsjö <$firstname()$firstname,st>.

Originally committed as revision 21149 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-11 17:42:35 +00:00
Martin Storsjö
fa053ca725 Provide fallback implementations of getaddrinfo() and freeaddrinfo().
Patch by Martin Storsjö <$firstname()$firstname,st>.

Originally committed as revision 21145 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-11 17:27:07 +00:00
Diego Biurrun
da837937c6 Fix undefined preprocessor directives warnings during 'make checkheaders'.
Originally committed as revision 16747 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-24 14:52:46 +00:00
Diego Biurrun
406792e7b0 cosmetics: Remove pointless period after copyright statement non-sentences.
Originally committed as revision 16684 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-19 15:46:40 +00:00
Aurelien Jacobs
b250f9c66d Change semantic of CONFIG_*, HAVE_* and ARCH_*.
They are now always defined to either 0 or 1.

Originally committed as revision 16590 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-13 23:44:16 +00:00
Stefano Sabatini
987903826b Globally rename the header inclusion guard names.
Consistently apply this rule: the guard name is obtained from the
filename by stripping the leading "lib", converting '/' and '.'  to
'_' and uppercasing the resulting name. Guard names in the root
directory have to be prefixed by "FFMPEG_".

Originally committed as revision 15120 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-08-31 07:39:47 +00:00
Diego Biurrun
5b21bdabe4 Add FFMPEG_ prefix to all multiple inclusion guards.
Originally committed as revision 10765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-10-17 09:37:46 +00:00
Ramiro Polla
1642cb6b2e Add initialization and cleanup functions for Winsock
Originally committed as revision 10040 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-09 23:39:05 +00:00
Ramiro Polla
6ff3f3e7ce Check for winsock2.h instead of __MINGW32__
Originally committed as revision 9988 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-08-08 19:18:10 +00:00
Alex Beregszaszi
5676d140a9 initial mingw networking support
Originally committed as revision 9029 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-05-15 14:58:30 +00:00
Alex Beregszaszi
ba472aaf01 implement ff_socket_nonblock and use it in networking code
Originally committed as revision 8846 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-27 00:41:50 +00:00
Alex Beregszaszi
8da4034f52 use ff_neterrno() and FF_NETERROR() for networking error handling
Originally committed as revision 8845 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-04-27 00:35:54 +00:00
François Revol
c9fdab0dab Some more BeOS cleanup: check for arpa/inet.h; declare the prototype for inet_aton if not found; remove barpainet.h as it's not longer needed.
Originally committed as revision 8488 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-03-23 22:01:37 +00:00
Ramiro Polla
42572ef53f move networking #includes into separate file
patch by Ramiro Polla angustia =a= arrozcru =d= no-ip =d= org

Originally committed as revision 7817 to svn://svn.ffmpeg.org/ffmpeg/trunk
2007-02-04 17:05:44 +00:00