add: strip_realm(_realm);
context: static inline int challenge(struct sip_msg* _msg, str* _realm, int _qop, 			    int _code, char* _message, char* _challenge_msg){	int auth_hf_len;	struct hdr_field* h;	auth_body_t* cred = 0;	char *auth_hf;	int ret, hftype = 0; /* Makes gcc happy */	struct sip_uri uri;	switch(_code) {	case 401: 		get_authorized_cred(_msg->authorization, &h); 		hftype = HDR_AUTHORIZATION;		break;	case 407: 		get_authorized_cred(_msg->proxy_auth, &h);		hftype = HDR_PROXYAUTH;		break;	}	if (h) cred = (auth_body_t*)(h->parsed);	if (_realm->len == 0) {		if (get_realm(_msg, hftype, &uri) < 0) {			LOG(L_ERR, "challenge(): Error while extracting URI\n");			if (send_resp(_msg, 400, MESSAGE_400, 0, 0) == -1) {				LOG(L_ERR, "challenge(): Error while sending response\n");				return -1;			}			return 0;		}		_realm = &uri.host;	}	auth_hf = build_auth_hf(0, (cred ? cred->stale : 0), _realm, &auth_hf_len, _qop, _challenge_msg);	if (!auth_hf) {		LOG(L_ERR, "ERROR: challenge: no mem w/cred\n");		return -1;	}		ret = send_resp(_msg, _code, _message, auth_hf, auth_hf_len);	if (auth_hf) pkg_free(auth_hf);	if (ret == -1) {		LOG(L_ERR, "challenge(): Error while sending response\n");		return -1;	}		return 0;}