void xmpp_xml_chardata(void *data, const XML_Char *s, int len)
{
- struct citxmpp *X = XMPP;
+ citxmpp *X = XMPP;
if (X->chardata_alloc == 0) {
X->chardata_alloc = SIZ;
*/
void xmpp_greeting(void) {
strcpy(CC->cs_clientname, "XMPP session");
- CC->session_specific_data = malloc(sizeof(struct citxmpp));
- memset(XMPP, 0, sizeof(struct citxmpp));
+ CC->session_specific_data = malloc(sizeof(citxmpp));
+ memset(XMPP, 0, sizeof(citxmpp));
XMPP->last_event_processed = queue_event_seq;
/* XMPP does not use a greeting, but we still have to initialize some things. */
*/
void xmpp_login_hook(void) {
xmpp_queue_event(XMPP_EVT_LOGIN, CC->cs_inet_email);
- xmpp_delete_old_buddies_who_no_longer_exist_from_the_client_roster();
+
+ /* only do the protocol stuff if this is an XMPP session */
+ if (CC->h_command_function == xmpp_command_loop) {
+ xmpp_delete_old_buddies_who_no_longer_exist_from_the_client_roster();
+ }
}