diff options
author | Benny Prijono <bennylp@teluu.com> | 2010-10-12 11:35:55 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2010-10-12 11:35:55 +0000 |
commit | 457b0d6cc6ade0a1c40b8712b30bd4abe2cd42ee (patch) | |
tree | b551d72a66a2a9932260826ef376cb7f07935ccb /pjsip/src/pjsip-simple/presence_body.c | |
parent | 9cca1e24c9d348050b07a7ea5706dbad869022f3 (diff) |
Closed #1146: support for multipart message bodies in incoming NOTIFY requests
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3337 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsip-simple/presence_body.c')
-rw-r--r-- | pjsip/src/pjsip-simple/presence_body.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/pjsip/src/pjsip-simple/presence_body.c b/pjsip/src/pjsip-simple/presence_body.c index a57e8df9..70ce0226 100644 --- a/pjsip/src/pjsip-simple/presence_body.c +++ b/pjsip/src/pjsip-simple/presence_body.c @@ -199,12 +199,19 @@ PJ_DEF(pj_status_t) pjsip_pres_parse_pidf( pjsip_rx_data *rdata, pj_pool_t *pool, pjsip_pres_status *pres_status) { + return pjsip_pres_parse_pidf2((char*)rdata->msg_info.msg->body->data, + rdata->msg_info.msg->body->len, + pool, pres_status); +} + +PJ_DEF(pj_status_t) pjsip_pres_parse_pidf2(char *body, unsigned body_len, + pj_pool_t *pool, + pjsip_pres_status *pres_status) +{ pjpidf_pres *pidf; pjpidf_tuple *pidf_tuple; - pidf = pjpidf_parse(rdata->tp_info.pool, - (char*)rdata->msg_info.msg->body->data, - rdata->msg_info.msg->body->len); + pidf = pjpidf_parse(pool, body, body_len); if (pidf == NULL) return PJSIP_SIMPLE_EBADPIDF; @@ -251,11 +258,18 @@ PJ_DEF(pj_status_t) pjsip_pres_parse_xpidf(pjsip_rx_data *rdata, pj_pool_t *pool, pjsip_pres_status *pres_status) { + return pjsip_pres_parse_xpidf2((char*)rdata->msg_info.msg->body->data, + rdata->msg_info.msg->body->len, + pool, pres_status); +} + +PJ_DEF(pj_status_t) pjsip_pres_parse_xpidf2(char *body, unsigned body_len, + pj_pool_t *pool, + pjsip_pres_status *pres_status) +{ pjxpidf_pres *xpidf; - xpidf = pjxpidf_parse(rdata->tp_info.pool, - (char*)rdata->msg_info.msg->body->data, - rdata->msg_info.msg->body->len); + xpidf = pjxpidf_parse(pool, body, body_len); if (xpidf == NULL) return PJSIP_SIMPLE_EBADXPIDF; |