the buffer, avoiding spurious messages.
+
+ else if (!strcasecmp(el, "html")) {
+ ++XMPP->html_tag_level;
+ }
jabber_wholist_presence_dump();
}
jabber_wholist_presence_dump();
}
- else if (!strcasecmp(el, "body")) {
+ else if ( (!strcasecmp(el, "body")) && (XMPP->html_tag_level == 0) ) {
if (XMPP->message_body != NULL) {
free(XMPP->message_body);
XMPP->message_body = NULL;
if (XMPP->message_body != NULL) {
free(XMPP->message_body);
XMPP->message_body = NULL;
else if (!strcasecmp(el, "message")) {
jabber_send_message(XMPP->message_to, XMPP->message_body);
else if (!strcasecmp(el, "message")) {
jabber_send_message(XMPP->message_to, XMPP->message_body);
+ XMPP->html_tag_level = 0;
+ }
+
+ else if (!strcasecmp(el, "html")) {
+ --XMPP->html_tag_level;
}
XMPP->chardata_len = 0;
}
XMPP->chardata_len = 0;
char message_to[256];
char *message_body; /* Message body in transit */
char message_to[256];
char *message_body; /* Message body in transit */
+ int html_tag_level; /* <html> tag nesting level */
};
#define XMPP ((struct citxmpp *)CC->session_specific_data)
};
#define XMPP ((struct citxmpp *)CC->session_specific_data)
if (recp) {
message_sent = PerformXmsgHooks(CC->user.fullname, CC->cs_inet_email, recp, message_body);
}
if (recp) {
message_sent = PerformXmsgHooks(CC->user.fullname, CC->cs_inet_email, recp, message_body);
}
+
+ free(XMPP->message_body);
+ XMPP->message_body = NULL;
+ XMPP->message_to[0] = 0;