X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Fmodules%2Fxmpp%2Fserv_xmpp.c;fp=citadel%2Fmodules%2Fxmpp%2Fserv_xmpp.c;h=daf1db7c6374856da9691d1d4c8563c6a2359555;hp=96ffaf4f5b5a4f3847a5796e24186867f4a42681;hb=05c047f0e8f5dd0f0a9382f228a9a9c6837b6720;hpb=bb47b9c23a29dee2a8d801655a237ec50078b348 diff --git a/citadel/modules/xmpp/serv_xmpp.c b/citadel/modules/xmpp/serv_xmpp.c index 96ffaf4f5..daf1db7c6 100644 --- a/citadel/modules/xmpp/serv_xmpp.c +++ b/citadel/modules/xmpp/serv_xmpp.c @@ -318,20 +318,20 @@ void xmpp_start_html(void *data, const char *supplied_el, const char **attr) void xmpp_xml_start(void *data, const char *supplied_el, const char **attr) { - char el[256]; - long newlen; + const char *pToken; + const char *pch; long len; - char *sep = NULL; void *pv; /* Axe the namespace, we don't care about it */ - newlen = len = safestrncpy(el, supplied_el, sizeof el); - while (sep = strchr(el, ':'), sep) + pToken = supplied_el; + pch = strchr(pToken, ':'); + while (pch != NULL) { - newlen -= ++sep - el; - memmove(el, sep, newlen + 1); - len = newlen; + pToken = pch; + pch = strchr(pToken, ':'); } + len = strlen(pToken); /* XMPP_syslog(LOG_DEBUG, "XMPP ELEMENT START: <%s>\n", el); @@ -340,7 +340,7 @@ void xmpp_xml_start(void *data, const char *supplied_el, const char **attr) } uncomment for more verbosity */ - if (GetHash(XMPP_StartHandlers, el, len, &pv)) + if (GetHash(XMPP_StartHandlers, pToken, len, &pv)) { xmpp_handler *h; h = (xmpp_handler*) pv; @@ -572,20 +572,20 @@ void xmpp_end_stream(void *data, const char *supplied_el, const char **attr) void xmpp_xml_end(void *data, const char *supplied_el) { - char el[256]; + const char *pToken; + const char *pch; long len; - long newlen; - char *sep = NULL; void *pv; /* Axe the namespace, we don't care about it */ - newlen = len = safestrncpy(el, supplied_el, sizeof el); - while (sep = strchr(el, ':'), sep) { - - newlen -= ++sep - el; - memmove(el, sep, newlen + 1); - len = newlen; + pToken = supplied_el; + pch = strchr(pToken, ':'); + while (pch != NULL) + { + pToken = pch; + pch = strchr(pToken, ':'); } + len = strlen(pToken); /* XMPP_syslog(LOG_DEBUG, "XMPP ELEMENT END : <%s>\n", el); @@ -594,7 +594,7 @@ void xmpp_xml_end(void *data, const char *supplied_el) } uncomment for more verbosity */ - if (GetHash(XMPP_EndHandlers, el, len, &pv)) + if (GetHash(XMPP_EndHandlers, pToken, len, &pv)) { xmpp_handler *h; h = (xmpp_handler*) pv; @@ -602,7 +602,7 @@ void xmpp_xml_end(void *data, const char *supplied_el) } else { - XMPP_syslog(LOG_DEBUG, "Ignoring unknown tag <%s>\n", el); + XMPP_syslog(LOG_DEBUG, "Ignoring unknown tag <%s>\n", pToken); } XMPP->chardata_len = 0;