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

Commit 1601ba67 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Handle RTSP make port error case" am: 731c31ec am: f1a97ba9 am: 687dd7e1

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1509349

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I927ec2cb00bfc905aec8160296d875cdf4adf259
parents 405ed913 687dd7e1
Loading
Loading
Loading
Loading
+8 −1
Original line number Original line Diff line number Diff line
@@ -131,7 +131,7 @@ void ARTPConnection::MakePortPair(
    unsigned start = (unsigned)((rand()* 1000LL)/RAND_MAX) + 15550;
    unsigned start = (unsigned)((rand()* 1000LL)/RAND_MAX) + 15550;
    start &= ~1;
    start &= ~1;


    for (unsigned port = start; port < 65536; port += 2) {
    for (unsigned port = start; port < 65535; port += 2) {
        struct sockaddr_in addr;
        struct sockaddr_in addr;
        memset(addr.sin_zero, 0, sizeof(addr.sin_zero));
        memset(addr.sin_zero, 0, sizeof(addr.sin_zero));
        addr.sin_family = AF_INET;
        addr.sin_family = AF_INET;
@@ -149,6 +149,13 @@ void ARTPConnection::MakePortPair(
                 (const struct sockaddr *)&addr, sizeof(addr)) == 0) {
                 (const struct sockaddr *)&addr, sizeof(addr)) == 0) {
            *rtpPort = port;
            *rtpPort = port;
            return;
            return;
        } else {
            // we should recreate a RTP socket to avoid bind other port in same RTP socket
            close(*rtpSocket);

            *rtpSocket = socket(AF_INET, SOCK_DGRAM, 0);
            CHECK_GE(*rtpSocket, 0);
            bumpSocketBufferSize(*rtpSocket);
        }
        }
    }
    }