Skip to content

Commit

Permalink
rtsp: support basic/digest authentication
Browse files Browse the repository at this point in the history
  • Loading branch information
Erik Janssen authored and bagder committed Aug 20, 2015
1 parent e67e71d commit e4fb5f2
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions lib/rtsp.c
Expand Up @@ -249,6 +249,8 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
const char *p_stream_uri = NULL;
const char *p_transport = NULL;
const char *p_uagent = NULL;
const char *p_proxyuserpwd = NULL;
const char *p_userpwd = NULL;

*done = TRUE;

Expand Down Expand Up @@ -326,7 +328,6 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
return CURLE_BAD_FUNCTION_ARGUMENT;
}

/* TODO: auth? */
/* TODO: proxy? */

/* Stream URI. Default to server '*' if not specified */
Expand Down Expand Up @@ -392,6 +393,14 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
p_uagent = conn->allocptr.uagent;
}

/* setup the authentication headers */
result = Curl_http_output_auth(conn, p_request, p_stream_uri, FALSE);
if(result)
return result;

p_proxyuserpwd = conn->allocptr.proxyuserpwd;
p_userpwd = conn->allocptr.userpwd;

/* Referrer */
Curl_safefree(conn->allocptr.ref);
if(data->change.referer && !Curl_checkheaders(conn, "Referer:"))
Expand Down Expand Up @@ -464,13 +473,25 @@ static CURLcode rtsp_do(struct connectdata *conn, bool *done)
"%s" /* range */
"%s" /* referrer */
"%s" /* user-agent */
"%s" /* proxyuserpwd */
"%s" /* userpwd */
,
p_transport ? p_transport : "",
p_accept ? p_accept : "",
p_accept_encoding ? p_accept_encoding : "",
p_range ? p_range : "",
p_referrer ? p_referrer : "",
p_uagent ? p_uagent : "");
p_uagent ? p_uagent : "",
p_proxyuserpwd ? p_proxyuserpwd : "",
p_userpwd ? p_userpwd : "");

/*
* Free userpwd now --- cannot reuse this for Negotiate and possibly NTLM
* with basic and digest, it will be freed anyway by the next request
*/
Curl_safefree (conn->allocptr.userpwd);
conn->allocptr.userpwd = NULL;

if(result)
return result;

Expand Down

0 comments on commit e4fb5f2

Please sign in to comment.