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

Evan Schoenberg evands at pidgin.im
Mon Apr 28 22:39:41 EDT 2008


On Apr 28, 2008, at 10:24 PM, John Bailey wrote:

> evands at pidgin.im wrote:
>> 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 addition of API and a signal forces us to version 2.5.0.

Are we actively avoiding minor version bumps?

Also, just to be clear: Is the reason that this forces to 2.5.0 that  
2.4.0 libpurple must be able to work perfectly with plugins compiled  
for a theoretical 2.4.2... and those plugins might depend upon this  
new signal?

> While I have no issues with bumping our version number, I am curious  
> why this is needed and what
> benefit it gives us.  Also, do we want to force 2.5.0 now?  If so, I  
> think
> Sadrul wants to merge the custom smiley stuff.

In any case, this is needed because previously there was no way for a  
UI to know that the attempt to join a chat failed.  A notification is  
posted to tell the user, but this clearly is not the needed  
information as it is a string.

Pidgin and Finch may not care about this fact, as they may not create  
a GtkChat or GntChat (or whatever the correct struct name is) until  
the conversation-created signal is posted.  Other UIs which are less  
tied to libpurple's internal organization - Adium, for example - may  
create the equivalent object (AIChat for Adium) when the request to  
join a chat is made rather than once the chat is successfully joined.   
Undoing this - releasing the memory, removing it from tracking  
dictionaries, etc. - should occur if the chat isn't joined because of  
an error.  (An easy error to generate is the 409 Conflict error from  
trying to join an XMPP conference with a handle which is already in  
use).

This allows me to fix http://trac.adiumx.com/ticket/1874 which [sadly| 
impressively] is a ticket from 3 years ago.

-Evan




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pidgin.im/pipermail/devel/attachments/20080428/c935e043/attachment.html>


More information about the Devel mailing list