[sr-dev] [ openser-Bugs-2897594 ] uac_auth does't work in 3.0
SourceForge.net
noreply at sourceforge.net
Sun Nov 15 05:18:56 CET 2009
Bugs item #2897594, was opened at 2009-11-14 09:14
Message generated for change (Comment added) made by miconda
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2897594&group_id=139143
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: ver devel
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Mangust (mangust2)
Assigned to: Nobody/Anonymous (nobody)
Summary: uac_auth does't work in 3.0
Initial Comment:
in file modules_k/uac/auth.c
line 235:
for( hdr=rpl->headers ; hdr ; hdr=hdr->next )
{
// -->> if ( hdr->type!=HDR_OTHER_T)
// -->> continue;
if (cmp_hdrname_str(&hdr->name, &hdr_name)==0)
return hdr;
}
commented out line prevent from recognizing authentication field causing error.
Nov 14 04:02:28 v /usr/local/sbin/kamailio[24361]: ERROR: uac [auth.c:244]: reply has no auth hdr (WWW-Authenticate)
Nov 14 04:02:28 v /usr/local/sbin/kamailio[24361]: ERROR: uac [auth.c:419]: failed to extract authenticate hdr
maybe because authentication now not HDR_OTHER_T but
HDR_WWW_AUTHENTICATE_T /* WWW-Authenticate header field */,
HDR_PROXY_AUTHENTICATE_T /* Proxy-Authenticate header field */,
according to:
http://www.asipto.com/pub/kamailio-devel-guide/
for a moment i just comment it out
will also try:
if ( hdr->type!=HDR_WWW_AUTHENTICATE_T && hdr->type!=HDR_PROXY_AUTHENTICATE_T )
continue;
if (cmp_hdrname_str(&hdr->name, &hdr_name)==0)
return hdr;
----------------------------------------------------------------------
>Comment By: Daniel-Constantin Mierla (miconda)
Date: 2009-11-15 06:18
Message:
Your patch seems ok, I will double check and fix. Thanks!
----------------------------------------------------------------------
Comment By: Mangust (mangust2)
Date: 2009-11-14 09:26
Message:
A! it happen because before in v1.5 ./parser/hf.h
/**
* SIP Header types.
* if you add a new type:
* - make sure it's not greater than 63
* - make sure you add the corresponding flag to the hdr_flags_t defs
below
* - update clean_hdr_field (in hf.c)
* - update sip_msg_cloner (modules/tm/sip_msg.c)
* - update parse_headers (msg_parser.c)
*/
enum _hdr_types_t {
HDR_ERROR_T = -1 /**< Error while parsing */,
HDR_OTHER_T = 0 /**< Some other header field */,
HDR_VIA_T = 1 /**< Via header field */,
HDR_VIA1_T = 1 /**< First Via header field */,
HDR_VIA2_T = 2 /**< only used as flag */,
HDR_TO_T /**< To header field */,
HDR_FROM_T /**< From header field */,
HDR_CSEQ_T /**< CSeq header field */,
HDR_CALLID_T /**< Call-Id header field */,
HDR_CONTACT_T /**< Contact header field */,
HDR_MAXFORWARDS_T /**< MaxForwards header field */,
HDR_ROUTE_T /**< Route header field */,
HDR_RECORDROUTE_T /**< Record-Route header field */,
HDR_PATH_T /**< Path header fiels */,
HDR_CONTENTTYPE_T /**< Content-Type header field */,
HDR_CONTENTLENGTH_T /**< Content-Length header field */,
HDR_AUTHORIZATION_T /**< Authorization header field */,
HDR_EXPIRES_T /**< Expires header field */,
HDR_PROXYAUTH_T /**< Proxy-Authorization hdr field */,
HDR_SUPPORTED_T /**< Supported header field */,
HDR_PROXYREQUIRE_T /**< Proxy-Require header field */,
HDR_UNSUPPORTED_T /**< Unsupported header field */,
HDR_ALLOW_T /**< Allow header field */,
HDR_EVENT_T /**< Event header field */,
HDR_ACCEPT_T /**< Accept header field */,
HDR_ACCEPTLANGUAGE_T /**< Accept-Language header field */,
HDR_ORGANIZATION_T /**< Organization header field */,
HDR_PRIORITY_T /**< Priority header field */,
HDR_SUBJECT_T /**< Subject header field */,
HDR_USERAGENT_T /**< User-Agent header field */,
HDR_ACCEPTDISPOSITION_T /**< Accept-Disposition hdr field */,
HDR_CONTENTDISPOSITION_T /**< Content-Disposition hdr field */,
HDR_DIVERSION_T /**< Diversion header field */,
HDR_RPID_T /**< Remote-Party-ID header field */,
HDR_REFER_TO_T /**< Refer-To header fiels */,
HDR_SESSION_EXPIRES_T /**< Session-Expires header field */,
HDR_MIN_SE_T /**< Min-SE header field */,
HDR_PPI_T /**< P-Preferred-Identity header field */,
HDR_PAI_T /**< P-Asserted-Identity header field */,
HDR_PRIVACY_T /**< Privacy header field */,
HDR_RETRY_AFTER_T /**< Retry-After header field */,
HDR_EOH_T /**< Some other header field */
};
Was NO HDR_WWW_AUTHENTICATE_T or HDR_PROXY_AUTHENTICATE_T so authenticate
header was matching HDR_OTHER_T
----------------------------------------------------------------------
Comment By: Mangust (mangust2)
Date: 2009-11-14 09:20
Message:
yes, this work as well:
for( hdr=rpl->headers ; hdr ; hdr=hdr->next )
{
if ( hdr->type!=HDR_WWW_AUTHENTICATE_T &&
hdr->type!=HDR_PROXY_AUTHENTICATE_T )
continue;
if (cmp_hdrname_str(&hdr->name, &hdr_name)==0)
return hdr;
}
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2897594&group_id=139143
More information about the sr-dev
mailing list