X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=httpinput.cpp;h=72a8f3aaf021e3c96afe345c6c7635b506ebb251;hp=f6a99792afafea4da0bd7fe960808a376327b6e1;hb=9abaf929b9da3158e9b7f799775ac56e88d28740;hpb=eb0dea72c24b4791f73fdf04a19a0fb47a29926a diff --git a/httpinput.cpp b/httpinput.cpp index f6a9979..72a8f3a 100644 --- a/httpinput.cpp +++ b/httpinput.cpp @@ -93,6 +93,8 @@ int HTTPInput::lookup_and_connect(const string &host, const string &port) return -1; } + addrinfo *base_ai = ai; + // Connect to everything in turn until we have a socket. while (ai && !should_stop) { int sock = socket(ai->ai_family, SOCK_STREAM, IPPROTO_TCP); @@ -106,7 +108,7 @@ int HTTPInput::lookup_and_connect(const string &host, const string &port) } while (err == -1 && errno == EINTR); if (err != -1) { - freeaddrinfo(ai); + freeaddrinfo(base_ai); return sock; } @@ -125,7 +127,7 @@ int HTTPInput::lookup_and_connect(const string &host, const string &port) // Give the last one as error. log(WARNING, "[%s] Connect to '%s' failed (%s)", stream_id.c_str(), host.c_str(), strerror(errno)); - freeaddrinfo(ai); + freeaddrinfo(base_ai); return -1; }