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

Commit f10b9885 authored by Andreas Huber's avatar Andreas Huber Committed by Android Git Automerger
Browse files

am 4a67fc49: Merge "Implemented support for RTSP 301 Redirect"

* commit '4a67fc49':
  Implemented support for RTSP 301 Redirect
parents f6bd712c 4a67fc49
Loading
Loading
Loading
Loading
+22 −11
Original line number Diff line number Diff line
@@ -478,21 +478,32 @@ struct MyHandler : public AHandler {
                    sp<ARTSPResponse> response =
                        static_cast<ARTSPResponse *>(obj.get());

                    if (response->mStatusCode == 302) {
                    if (response->mStatusCode == 301 || response->mStatusCode == 302) {
                        ssize_t i = response->mHeaders.indexOfKey("location");
                        CHECK_GE(i, 0);

                        mSessionURL = response->mHeaders.valueAt(i);
                        mOriginalSessionURL = response->mHeaders.valueAt(i);
                        mSessionURL = mOriginalSessionURL;

                        AString request;
                        request = "DESCRIBE ";
                        request.append(mSessionURL);
                        request.append(" RTSP/1.0\r\n");
                        request.append("Accept: application/sdp\r\n");
                        request.append("\r\n");
                        // Strip any authentication info from the session url, we don't
                        // want to transmit user/pass in cleartext.
                        AString host, path, user, pass;
                        unsigned port;
                        if (ARTSPConnection::ParseURL(
                                    mSessionURL.c_str(), &host, &port, &path, &user, &pass)
                                && user.size() > 0) {
                            mSessionURL.clear();
                            mSessionURL.append("rtsp://");
                            mSessionURL.append(host);
                            mSessionURL.append(":");
                            mSessionURL.append(StringPrintf("%u", port));
                            mSessionURL.append(path);

                        sp<AMessage> reply = new AMessage('desc', id());
                        mConn->sendRequest(request.c_str(), reply);
                            ALOGI("rewritten session url: '%s'", mSessionURL.c_str());
                        }

                        sp<AMessage> reply = new AMessage('conn', id());
                        mConn->connect(mOriginalSessionURL.c_str(), reply);
                        break;
                    }