From 42ca87c9079fd939407e096e58bd3d0bc7655535 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 2 Apr 2008 20:34:05 +0000 Subject: Ticket #521: Duplicate Authorization header when PJSIP is configured to send empty Authorization header (thanks Roland Klabunde) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1906 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsip/sip_auth_client.c | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) (limited to 'pjsip/src') diff --git a/pjsip/src/pjsip/sip_auth_client.c b/pjsip/src/pjsip/sip_auth_client.c index 5730d6f2..eb1a91ad 100644 --- a/pjsip/src/pjsip/sip_auth_client.c +++ b/pjsip/src/pjsip/sip_auth_client.c @@ -872,31 +872,19 @@ PJ_DEF(pj_status_t) pjsip_auth_clt_init_req( pjsip_auth_clt_sess *sess, pj_list_erase(h); pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)h); } else { - enum { HDRLEN = 256 }; - const pj_str_t hname = pj_str("Authorization"); - pj_str_t hval; - pjsip_generic_string_hdr *hs; - char *hdr; - - hdr = (char*)pj_pool_alloc(tdata->pool, HDRLEN); - len = pj_ansi_snprintf( - hdr, HDRLEN, - "%.*s username=\"%.*s\", realm=\"%.*s\"," - " nonce=\"\", uri=\"%s\",%s%.*s%s response=\"\"", - (int)c->scheme.slen, c->scheme.ptr, - (int)c->username.slen, c->username.ptr, - (int)c->realm.slen, c->realm.ptr, - uri_str, - (sess->pref.algorithm.slen ? " algorithm=" : ""), - (int)sess->pref.algorithm.slen, sess->pref.algorithm.ptr, - (sess->pref.algorithm.slen ? "," : "")); - - PJ_ASSERT_RETURN(len>0 && lenpool, &hname, - &hval); + pjsip_authorization_hdr *hs; + + hs = pjsip_authorization_hdr_create(tdata->pool); + pj_strdup(tdata->pool, &hs->scheme, &c->scheme); + pj_strdup(tdata->pool, &hs->credential.digest.username, + &c->username); + pj_strdup(tdata->pool, &hs->credential.digest.realm, + &c->realm); + pj_strdup2(tdata->pool, &hs->credential.digest.uri, + uri_str); + pj_strdup(tdata->pool, &hs->credential.digest.algorithm, + &sess->pref.algorithm); + pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*)hs); } } -- cgit v1.2.3