# HG changeset patch # User Sean Egan # Date 1171586435 0 # Node ID 193456f03b9c9f5984ab1315de0bbcc6b795dc2b # Parent 602eb093e4c0550e5cae3a984095b746d445ca72 Sending XEP 85 'gone' messages diff -r 602eb093e4c0 -r 193456f03b9c libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Thu Feb 15 23:25:50 2007 +0000 +++ b/libpurple/protocols/jabber/jabber.c Fri Feb 16 00:40:35 2007 +0000 @@ -1431,6 +1431,8 @@ g_free(jbr->thread_id); jbr->thread_id = NULL; } + if(jbr->chat_states == JABBER_CHAT_STATES_SUPPORTED) + jabber_message_conv_closed(js, who); } jabber_id_free(jid); diff -r 602eb093e4c0 -r 193456f03b9c libpurple/protocols/jabber/message.c --- a/libpurple/protocols/jabber/message.c Thu Feb 15 23:25:50 2007 +0000 +++ b/libpurple/protocols/jabber/message.c Fri Feb 16 00:40:35 2007 +0000 @@ -635,3 +635,15 @@ return 0; } +void jabber_message_conv_closed(JabberStream *js, const char *who) +{ + JabberMessage *jm = g_new0(JabberMessage, 1); + jm->js = js; + jm->type = JABBER_MESSAGE_CHAT; + jm->to = g_strdup(who); + jm->id = jabber_get_next_id(jm->js); + jm->typing_style = JM_TS_JEP_0085; + jm->chat_state = JM_STATE_GONE; + jabber_message_send(jm); + jabber_message_free(jm); +} diff -r 602eb093e4c0 -r 193456f03b9c libpurple/protocols/jabber/message.h --- a/libpurple/protocols/jabber/message.h Thu Feb 15 23:25:50 2007 +0000 +++ b/libpurple/protocols/jabber/message.h Fri Feb 16 00:40:35 2007 +0000 @@ -22,6 +22,7 @@ #ifndef _GAIM_JABBER_MESSAGE_H_ #define _GAIM_JABBER_MESSAGE_H_ +#include "buddy.h" #include "jabber.h" #include "xmlnode.h" @@ -72,6 +73,6 @@ int jabber_message_send_chat(GaimConnection *gc, int id, const char *message, GaimMessageFlags flags); unsigned int jabber_send_typing(GaimConnection *gc, const char *who, GaimTypingState state); - +void jabber_message_conv_closed(JabberStream *js, const char *who); #endif /* _GAIM_JABBER_MESSAGE_H_ */