diff options
Diffstat (limited to 'res/res_pjsip_pubsub.c')
-rw-r--r-- | res/res_pjsip_pubsub.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c index cb0be6127..88005b85c 100644 --- a/res/res_pjsip_pubsub.c +++ b/res/res_pjsip_pubsub.c @@ -525,7 +525,7 @@ static void pubsub_on_rx_notify(pjsip_evsub *sub, pjsip_rx_data *rdata, int *p_s pj_str_t **p_st_text, pjsip_hdr *res_hdr, pjsip_msg_body **p_body); static void pubsub_on_client_refresh(pjsip_evsub *sub); static void pubsub_on_server_timeout(pjsip_evsub *sub); - + static pjsip_evsub_user pubsub_cb = { .on_evsub_state = pubsub_on_evsub_state, .on_rx_refresh = pubsub_on_rx_refresh, @@ -613,8 +613,12 @@ static void subscription_persistence_update(struct sip_subscription_tree *sub_tr expires = expires_hdr ? expires_hdr->ivalue : DEFAULT_PUBLISH_EXPIRES; sub_tree->persistence->expires = ast_tvadd(ast_tvnow(), ast_samp2tv(expires, 1)); - pjsip_uri_print(PJSIP_URI_IN_CONTACT_HDR, contact_hdr->uri, - sub_tree->persistence->contact_uri, sizeof(sub_tree->persistence->contact_uri)); + if (contact_hdr) { + pjsip_uri_print(PJSIP_URI_IN_CONTACT_HDR, contact_hdr->uri, + sub_tree->persistence->contact_uri, sizeof(sub_tree->persistence->contact_uri)); + } else { + ast_log(LOG_WARNING, "Contact not updated due to missing contact header\n"); + } /* When receiving a packet on an streaming transport, it's possible to receive more than one SIP * message at a time into the rdata->pkt_info.packet buffer. However, the rdata->msg_info.msg_buf @@ -895,7 +899,7 @@ static int have_visited(const char *resource, struct resources *visited) * This iterates through the items on a resource list and creates tree nodes for each one. The * tree nodes created are children of the supplied parent node. If an item in the resource * list is itself a list, then this function is called recursively to provide children for - * the the new node. + * the new node. * * If an item in a resource list is not a list, then the supplied subscription handler is * called into as if a new SUBSCRIBE for the list item were presented. The handler's response |