pidgin: ae37fe6b: Added "chat-join-failed" signal, emitted...

Mark Doliner mark at
Mon Apr 28 23:26:36 EDT 2008

On Mon, 28 Apr 2008 22:05:51 -0400 (EDT), evands wrote
> -----------------------------------------------------------------
> Revision: ae37fe6b64c30704715a369df88bd76674a39b1a
> Ancestor: 4c5110037671f84e3e775214c32692b5b23c11e1
> Author: evands at
> Date: 2008-04-29T01:46:40
> Branch: im.pidgin.pidgin
> URL:
> Modified files:
>         libpurple/conversation.c libpurple/protocols/jabber/chat.c
>         libpurple/protocols/jabber/presence.c libpurple/server.c
>         libpurple/server.h
> ChangeLog:
> Added "chat-join-failed" signal, emitted by a new 
> serv_got_join_chat_failed() function in server.c. This is emitted 
> with the PurpleConnection and chat name and allows a UI or plugin 
> which was expecting a group chat to be joined to know if failure occurred.
> serv_got_join_chat_failed() is only called by jabber so far; I know that
> at least oscar should call it some situations, as well, such as when 
> a busted SNAC error is received after trying to join a chat with an invalid
> room name.

This API is a little weird... when we join a chat we give the PRPL a hash
table containing the chat info.  For Jabber this is the room name and the
server.  For AIM this is the room name and the exchange.

But your function only takes a name.  For Jabber I guess you're passing the
value of what would have been PurpleConversation->name?  This is weird to me
because it differs from the components hash table passed to join chat.  I'm
wondering how you envision this working for AIM?  Or, what would happen if you
try to join "testroom" on exchange 4 and "testroom" on exchange 5 and one of
them fails?

I wonder if the function should take a 'components' hash table instead of or
in addition to the name?  Or maybe AIM should set PurpleConversation->name to
"roomname:exchange" or something.


More information about the Devel mailing list