Hi,

We have been using the Curl library for our RTSP sessions for quite some time now. We have however run into some issues recently with an IP camera from Panogenics. When we do a DESCRIBE request, we get the callbacks for the header data, and it seems like the transaction is complete, but curl_easy_perform does not return straight away. Instead we get the printout "additional stuff not fine transfer.c:1037 0 0" about once every second, and it eventually times out after 65 seconds.

Our library makes use of the multi handle so I quickly wrote a test program to see if it happens with just using easy handles and it does also seem to take very long.

Any suggestions would be appreciated...

See test program and output below:

I can also provide a network trace

Regards
Tinus

*Test Program*
int main(int argc,char** argv)
{
    SetupLogs();
    CheckArgs(argc,argv);

    CURL *curl;
    double total_time=0;
    curl = curl_easy_init();
    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
    if(curl)
        {
            printf("\n-> Setup Easy Handle <-\r\n");
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
            curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, write_header);

            curl_easy_setopt(curl, CURLOPT_URL,url.c_str());
            curl_easy_setopt(curl, CURLOPT_RTSP_STREAM_URI,url.c_str());
curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_DESCRIBE);

            printf("-> Perform Action <-\r\n");
            CURLcode result = curl_easy_perform(curl);

curl_easy_getinfo(curl,CURLINFO_TOTAL_TIME,(double*)&total_time);
            printf("\n-> Result: %s in %0.2f seconds <-\r\n",
                         curl_easy_strerror(result),total_time);
        }
    return 0;
}

*Output
*-> Setup Easy Handle <-
-> Perform Action <-
* About to connect() to 172.35.2.81 port 8554 (#0)
*   Trying 172.35.2.81...
* connected
* Connected to 172.35.2.81 (172.35.2.81) port 8554 (#0)
> DESCRIBE rtsp://172.35.2.81:8554/stream1 RTSP/1.0
CSeq: 1
Accept: application/sdp
If-Modified-Since: Thu, 01 Jan 1970 00:00:00 GMT

* additional stuff not fine transfer.c:1037: 0 0
* HTTP 1.1 or later with persistent connection, pipelining supported
< RTSP/1.0 401 Unauthorized
< CSeq: 1
< Date: Wed, Apr 04 2012 14:05:44 GMT
< WWW-Authenticate: Digest realm="LIVE555 Streaming Media", nonce="49fde21dc9bdc0a752f28943dbf92943"
<
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* Connection #0 to host 172.35.2.81 left intact

-> Result: No error in 65.55 seconds <-*


*
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to