res_pjsip_exten_state: Check if body generator is available.

When starting the extension state publishers, check if the requested
message body generator is available.  If not available give error message
and skip starting that publisher.

* res_pjsip_pubsub.c: Create new API if type/subtype generator
registered.

* res_pjsip_exten_state.c: Use new body generator API for validation.

ASTERISK-25922

Change-Id: I4ad69200666e3cc909d4619e3c81042d7f9db25c
This commit is contained in:
Richard Mudgett
2016-04-26 16:10:26 -05:00
parent 057ed94048
commit 0b5292525c
3 changed files with 24 additions and 0 deletions

View File

@@ -680,6 +680,12 @@ static int publisher_start(struct ast_sip_outbound_publish *configuration, struc
return -1;
}
if (!ast_sip_pubsub_is_body_generator_registered(body_type, body_subtype)) {
ast_log(LOG_ERROR, "Outbound extension state publisher '%s': '%s' body generator not registered\n",
name, body_full);
return -1;
}
name_size = strlen(name) + 1;
body_type_size = strlen(body_type) + 1;
body_subtype_size = strlen(body_subtype) + 1;