Loading media/libstagefright/HTTPStream.cpp +24 −14 Original line number Diff line number Diff line Loading @@ -150,31 +150,41 @@ status_t HTTPStream::connect(const char *server, int port) { } CHECK_EQ(mSocket, -1); mSocket = socket(ai[0].ai_family, ai[0].ai_socktype, ai[0].ai_protocol); mState = CONNECTING; status_t res = -1; struct addrinfo *tmp; for (tmp = ai; tmp; tmp = tmp->ai_next) { mSocket = socket(tmp->ai_family, tmp->ai_socktype, tmp->ai_protocol); if (mSocket < 0) { freeaddrinfo(ai); return UNKNOWN_ERROR; continue; } setReceiveTimeout(30); // Time out reads after 30 secs by default mState = CONNECTING; setReceiveTimeout(30); // Time out reads after 30 secs by default. int s = mSocket; mLock.unlock(); status_t res = MyConnect(s, ai[0].ai_addr, ai[0].ai_addrlen); freeaddrinfo(ai); res = MyConnect(s, tmp->ai_addr, tmp->ai_addrlen); mLock.lock(); if (mState != CONNECTING) { close(s); freeaddrinfo(ai); return UNKNOWN_ERROR; } if (res == OK) { break; } close(s); } freeaddrinfo(ai); if (res != OK) { close(mSocket); mSocket = -1; Loading Loading
media/libstagefright/HTTPStream.cpp +24 −14 Original line number Diff line number Diff line Loading @@ -150,31 +150,41 @@ status_t HTTPStream::connect(const char *server, int port) { } CHECK_EQ(mSocket, -1); mSocket = socket(ai[0].ai_family, ai[0].ai_socktype, ai[0].ai_protocol); mState = CONNECTING; status_t res = -1; struct addrinfo *tmp; for (tmp = ai; tmp; tmp = tmp->ai_next) { mSocket = socket(tmp->ai_family, tmp->ai_socktype, tmp->ai_protocol); if (mSocket < 0) { freeaddrinfo(ai); return UNKNOWN_ERROR; continue; } setReceiveTimeout(30); // Time out reads after 30 secs by default mState = CONNECTING; setReceiveTimeout(30); // Time out reads after 30 secs by default. int s = mSocket; mLock.unlock(); status_t res = MyConnect(s, ai[0].ai_addr, ai[0].ai_addrlen); freeaddrinfo(ai); res = MyConnect(s, tmp->ai_addr, tmp->ai_addrlen); mLock.lock(); if (mState != CONNECTING) { close(s); freeaddrinfo(ai); return UNKNOWN_ERROR; } if (res == OK) { break; } close(s); } freeaddrinfo(ai); if (res != OK) { close(mSocket); mSocket = -1; Loading