diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-08-06 17:53:01 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-08-06 17:53:01 +0200 |
commit | 89efaabc9949dcdc49126881beaa38355b8f9a44 (patch) | |
tree | 61bc2709d50bc13b2670323656d20bab79e6ee16 | |
parent | 287f7d0ae1267bf5e505d4173f5a4cb77f433c66 (diff) | |
parent | abe5268c3328bf0e8fcfb7dc6e231b8920177c3a (diff) | |
download | ffmpeg-89efaabc9949dcdc49126881beaa38355b8f9a44.tar.gz |
Merge commit 'abe5268c3328bf0e8fcfb7dc6e231b8920177c3a'
* commit 'abe5268c3328bf0e8fcfb7dc6e231b8920177c3a':
tcp: Use a different log message and level if there's more addresses to try
Conflicts:
libavformat/tcp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/network.c | 13 | ||||
-rw-r--r-- | libavformat/network.h | 5 | ||||
-rw-r--r-- | libavformat/tcp.c | 2 | ||||
-rw-r--r-- | libavformat/unix.c | 2 |
4 files changed, 15 insertions, 7 deletions
diff --git a/libavformat/network.c b/libavformat/network.c index 1cd83b80c5..a41b0511e4 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -267,7 +267,8 @@ int ff_listen_bind(int fd, const struct sockaddr *addr, } int ff_listen_connect(int fd, const struct sockaddr *addr, - socklen_t addrlen, int timeout, URLContext *h) + socklen_t addrlen, int timeout, URLContext *h, + int will_try_next) { struct pollfd p = {fd, POLLOUT, 0}; int ret; @@ -294,9 +295,13 @@ int ff_listen_connect(int fd, const struct sockaddr *addr, char errbuf[100]; ret = AVERROR(ret); av_strerror(ret, errbuf, sizeof(errbuf)); - av_log(h, AV_LOG_ERROR, - "Connection to %s failed: %s\n", - h->filename, errbuf); + if (will_try_next) + av_log(h, AV_LOG_WARNING, + "Connection to %s failed (%s), trying next address\n", + h->filename, errbuf); + else + av_log(h, AV_LOG_ERROR, "Connection to %s failed: %s\n", + h->filename, errbuf); } default: return ret; diff --git a/libavformat/network.h b/libavformat/network.h index 6552f83fc9..4b5398a12c 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -251,11 +251,14 @@ int ff_listen_bind(int fd, const struct sockaddr *addr, * @param timeout Polling timeout in milliseconds. * @param h URLContext providing interrupt check * callback and logging context. + * @param will_try_next Whether the caller will try to connect to another + * address for the same host name, affecting the form of + * logged errors. * @return 0 on success, AVERROR on failure. */ int ff_listen_connect(int fd, const struct sockaddr *addr, socklen_t addrlen, int timeout, - URLContext *h); + URLContext *h, int will_try_next); int ff_http_match_no_proxy(const char *no_proxy, const char *hostname); diff --git a/libavformat/tcp.c b/libavformat/tcp.c index c2a76cb710..36af37a94a 100644 --- a/libavformat/tcp.c +++ b/libavformat/tcp.c @@ -127,7 +127,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) } } else { if ((ret = ff_listen_connect(fd, cur_ai->ai_addr, cur_ai->ai_addrlen, - s->open_timeout / 1000, h)) < 0) { + s->open_timeout / 1000, h, cur_ai->ai_next)) < 0) { if (ret == AVERROR_EXIT) goto fail1; diff --git a/libavformat/unix.c b/libavformat/unix.c index 33f6bb457d..70696c0c0c 100644 --- a/libavformat/unix.c +++ b/libavformat/unix.c @@ -83,7 +83,7 @@ static int unix_open(URLContext *h, const char *filename, int flags) } } else { ret = ff_listen_connect(fd, (struct sockaddr *)&s->addr, - sizeof(s->addr), s->timeout, h); + sizeof(s->addr), s->timeout, h, 0); if (ret < 0) goto fail; } |