Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d563b839 authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by Android Git Automerger
Browse files

am bd0e806a: Support IPv6->IPv4 fallback in HTTP streaming.

* commit 'bd0e806a61df9b67890dc3b1390db554e7468b4a':
  Support IPv6->IPv4 fallback in HTTP streaming.
parents f64b2417 0ef63152
Loading
Loading
Loading
Loading
+24 −14
Original line number Diff line number Diff line
@@ -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;