res_pjsip_pubsub: Ensure remote URI contains URI only.
authorJoshua Colp <jcolp@digium.com>
Mon, 6 Nov 2017 16:29:33 +0000 (16:29 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 6 Nov 2017 18:02:43 +0000 (13:02 -0500)
This change makes it so that any user of the pubsub
API that requests the remote URI receives only the URI.
Previously the entire string was returned, which could
contain a display name.

ASTERISK-27290

Change-Id: If1d0cd6630f0a264856d31d2a67933109187a017

res/res_pjsip_pubsub.c

index 62b1879..274b038 100644 (file)
@@ -2441,9 +2441,14 @@ void ast_sip_subscription_get_local_uri(struct ast_sip_subscription *sub, char *
 void ast_sip_subscription_get_remote_uri(struct ast_sip_subscription *sub, char *buf, size_t size)
 {
        pjsip_dialog *dlg;
+       pjsip_sip_uri *uri;
 
        dlg = sub->tree->dlg;
-       ast_copy_pj_str(buf, &dlg->remote.info_str, size);
+       uri = pjsip_uri_get_uri(dlg->remote.info->uri);
+
+       if (pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, uri, buf, size) < 0) {
+               *buf = '\0';
+       }
 }
 
 const char *ast_sip_subscription_get_resource_name(struct ast_sip_subscription *sub)