From: Wilfried Goesgens Date: Mon, 29 Dec 2014 21:47:34 +0000 (+0100) Subject: Apply patches sugested by Taroe Hong plus some more bugfixes. X-Git-Tag: v9.01~65 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=4b0153bbdd15ddc4bc7b6193ff7ecb531b330a3c Apply patches sugested by Taroe Hong plus some more bugfixes. --- diff --git a/citadel/modules/xmpp/serv_xmpp.h b/citadel/modules/xmpp/serv_xmpp.h index 97264ff30..b8133cdbb 100644 --- a/citadel/modules/xmpp/serv_xmpp.h +++ b/citadel/modules/xmpp/serv_xmpp.h @@ -41,7 +41,6 @@ typedef struct _citxmpp { /* Information about the current session */ char sasl_auth_mech[32]; /* SASL auth mechanism requested by the client */ - char message_to[256]; char *message_body; /* Message body in transit */ int html_tag_level; /* tag nesting level */ @@ -88,7 +87,7 @@ void xmpp_queue_event(int, char *); void xmpp_process_events(void); void xmpp_presence_notify(char *, int); void xmpp_roster_item(struct CitContext *); -void xmpp_send_message(char *, char *); +void xmpp_send_message(StrBuf *, char *); void xmpp_non_sasl_authenticate(StrBuf *IQ_id, char *, char *, char *); void xmpp_massacre_roster(void); void xmpp_delete_old_buddies_who_no_longer_exist_from_the_client_roster(void); diff --git a/citadel/modules/xmpp/xmpp_messages.c b/citadel/modules/xmpp/xmpp_messages.c index b2e2dadf4..1f7123aeb 100644 --- a/citadel/modules/xmpp/xmpp_messages.c +++ b/citadel/modules/xmpp/xmpp_messages.c @@ -97,20 +97,20 @@ void xmpp_output_incoming_messages(void) /* * Client is sending a message. */ -void xmpp_send_message(char *message_to, char *message_body) { +void xmpp_send_message(StrBuf *message_to, char *message_body) { struct CitContext *CCC = CC; char *recp = NULL; struct CitContext *cptr; if (message_body == NULL) return; if (message_to == NULL) return; - if (IsEmptyStr(message_to)) return; + if (StrLength(message_to) == 0) return; if (!CCC->logged_in) return; for (cptr = ContextList; cptr != NULL; cptr = cptr->next) { if ( (cptr->logged_in) && (cptr->can_receive_im) - && (!strcasecmp(cptr->cs_inet_email, message_to)) + && (!strcasecmp(cptr->cs_inet_email, ChrPtr(message_to))) ) { recp = cptr->user.fullname; } @@ -122,12 +122,11 @@ void xmpp_send_message(char *message_to, char *message_body) { free(XMPP->message_body); XMPP->message_body = NULL; - XMPP->message_to[0] = 0; time(&CCC->lastidle); } void xmpp_end_message(void *data, const char *supplied_el, const char **attr) { - xmpp_send_message(XMPP->message_to, XMPP->message_body); + xmpp_send_message(XMPP->Message.to, XMPP->message_body); XMPP->html_tag_level = 0; } diff --git a/citadel/modules/xmpp/xmpp_presence.c b/citadel/modules/xmpp/xmpp_presence.c index 9191f8f65..b4b09b1cf 100644 --- a/citadel/modules/xmpp/xmpp_presence.c +++ b/citadel/modules/xmpp/xmpp_presence.c @@ -65,7 +65,7 @@ */ void xmpp_indicate_presence(char *presence_jid) { - XPrint(HKEY("presence"), + XPrint(HKEY("presence"), XCLOSED, XPROPERTY("from", presence_jid, strlen(presence_jid)), XPROPERTY("to", XMPP->client_jid, strlen(XMPP->client_jid)), TYPE_ARGEND); diff --git a/citadel/modules/xmpp/xmpp_query_namespace.c b/citadel/modules/xmpp/xmpp_query_namespace.c index e7fcc0c8a..d943df16d 100644 --- a/citadel/modules/xmpp/xmpp_query_namespace.c +++ b/citadel/modules/xmpp/xmpp_query_namespace.c @@ -65,7 +65,7 @@ void xmpp_roster_item(struct CitContext *cptr) XPrint(HKEY("item"), 0, XCPROPERTY("subscription", "both"), - XPROPERTY("jid", CCC->cs_inet_email, strlen(CCC->cs_inet_email)), + XPROPERTY("jid", cptr->cs_inet_email, strlen(cptr->cs_inet_email)), XPROPERTY("name", cptr->user.fullname, strlen(cptr->user.fullname)), TYPE_ARGEND); @@ -116,9 +116,7 @@ void xmpp_query_namespace(TheToken_iq *IQ/*char *iq_id, char *iq_from, char *iq_ { int supported_namespace = 0; int roster_query = 0; - const char *TypeStr; - long TLen; - ConstStr Type[] = { + static const ConstStr Type[] = { {HKEY("result")}, {HKEY("error")} }; @@ -140,20 +138,19 @@ void xmpp_query_namespace(TheToken_iq *IQ/*char *iq_id, char *iq_from, char *iq_ * Beginning of query result. */ if (supported_namespace) { - TypeStr = Type[0].Key; - TLen = Type[0].len; + XPrint(HKEY("iq"), 0, + XPROPERTY("type", Type[0].Key, Type[0].len), + XSPROPERTY("to", IQ->from), + XSPROPERTY("id", IQ->id), + TYPE_ARGEND); } else { - TypeStr = Type[1].Key; - TLen = Type[1].len; + XPrint(HKEY("iq"), 0, + XPROPERTY("type", Type[1].Key, Type[1].len), + XSPROPERTY("id", IQ->id), + TYPE_ARGEND); } - XPrint(HKEY("iq"), 0, - XPROPERTY("type", TypeStr, TLen), - XSPROPERTY("to", IQ->from), - XSPROPERTY("id", IQ->id), - TYPE_ARGEND); - /* * Is this a query we know how to handle? */