From 2618733248d984c629eeb313c80e084dd26531c6 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Tue, 29 May 2007 04:09:51 +0000 Subject: Fixed ticket #307: Fail to parse fully qualified PIDF document (thanks Cool_Zer0) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1313 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsip-simple/pidf.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'pjsip/src') diff --git a/pjsip/src/pjsip-simple/pidf.c b/pjsip/src/pjsip-simple/pidf.c index 730194c2..922549d9 100644 --- a/pjsip/src/pjsip-simple/pidf.c +++ b/pjsip/src/pjsip-simple/pidf.c @@ -343,11 +343,16 @@ PJ_DEF(pjpidf_pres*) pjpidf_create(pj_pool_t *pool, const pj_str_t *entity) PJ_DEF(pjpidf_pres*) pjpidf_parse(pj_pool_t *pool, char *text, int len) { pjpidf_pres *pres = pj_xml_parse(pool, text, len); - if (pres) { - if (pj_stricmp(&pres->name, &PRESENCE) != 0) - return NULL; + if (pres && pres->name.slen >= 8) { + pj_str_t name; + + name.ptr = pres->name.ptr + (pres->name.slen - 8); + name.slen = 8; + + if (pj_stricmp(&name, &PRESENCE) == 0) + return pres; } - return pres; + return NULL; } PJ_DEF(int) pjpidf_print(const pjpidf_pres* pres, char *buf, int len) -- cgit v1.2.3