Пример #1
0
        public bool SendRequestMessage()
        {
            //1. Put the first line
            OutputBuffer.Write(_requestHeaders[RTSP_FIRST_LINE, RTSP_METHOD] + " " + _requestHeaders[RTSP_FIRST_LINE, RTSP_URL] + " " + _requestHeaders[RTSP_FIRST_LINE, RTSP_VERSION] + "\r\n");

            //2. Put our request sequence in place
            _requestHeaders[RTSP_HEADERS, RTSP_HEADERS_CSEQ] = (++_requestSequence).ToString();

            //3. Put authentication if necessary
            if (_authentication == VariantType.Null)
            {
                if (!HTTPAuthHelper.GetAuthorizationHeader(
                        _authentication["lastWwwAuthenticateHeader"],
                        _authentication["userName"],
                        _authentication["password"],
                        _requestHeaders[RTSP_FIRST_LINE, RTSP_URL],
                        _requestHeaders[RTSP_FIRST_LINE, RTSP_METHOD],
                        _authentication["temp"]))
                {
                    FATAL("Unable to create authentication header");
                    return(false);
                }

                _requestHeaders[RTSP_HEADERS, HTTP_HEADERS_AUTORIZATION] =
                    _authentication["temp", "authorizationHeader", "raw"];
            }

            _pendingRequestHeaders[_requestSequence] = _requestHeaders;
            _pendingRequestContent[_requestSequence] = _requestContent;
            if (_pendingRequestHeaders.Count > 10 || _pendingRequestContent.Count > 10)
            {
                FATAL("Requests backlog count too high");
                return(false);
            }

            //3. send the mesage
            return(SendMessage(_requestHeaders, _requestContent));
        }