Hi Uday,

Sorry for the very belated reply, and for the lazy top-posting. This mail's been in my TODO queue for too long. :)

Your analysis of the problem is correct! The right fix here would be to add API to libpurple so that you can decline a subscription request with a message, rather than the Yahoo! prpl having to pop up a dialog to ask for a message. This API would also be useful on other protocols, like MSN, and it would allow Pidgin and other “normal” libpurple UIs to present much better UI.

No-one's working on this at the moment. I'd be happy to give pointers, and help shepherd the resulting patches into libpurple. :)

(I did start a Haze branch that made it always respond to purple_request_*() operations, picking a callback arbitrarily, but I wasn't really happy with it...)

On 13/10/10 11:53, [email protected] wrote:
Greetings!

*Problem statement :*

If there is an incoming friendship request from a Yahoo ID, to our Signed in Yahoo account on Empathy client, On 'Denying' the request, the alert disappears. However, if we logout and login again, the request reappears.

Has anyone else observed this issue ? If no, then am confused :)


*My understanding :*

In libpurple to deny an incoming friendship request, below procedure has been observed :

1) Compilation of telepathy-haze needs to be done with the below option :
   " --enable-leaky-request-stubs "

This would set 'request ui ops' by calling the function purple_request_set_ui_ops ( ), in telepathy-haze-0.3.4/src/main.c within the function haze_ui_init ( )


When the friendship request is denied :

2) A call is made to yahoo_buddy_add_deny_reason_cb which will trigger UI to show an additional alert, so that user can enter his 'reason string'
    for denying the friendship request

3) Currently, in Empathy, this alert never comes up, since it is not communicated from 'telepathy-haze' to the Empathy client, through any dbus call
    (In Pidgin, this alert is being shown)

4) If somehow, we make sure (by a tweak), that a callback is called for either 'Ok' or 'Cancel' (just like in the case of Pidgin),
    then in the final callback, only 'DEBUG' print statements are placed.

5) There needs to be an additional call, to actually send a request to Yahoo server, preparing a packet with appropriate yahoo protocol syntax
    which looks something like this :

In file telepathy-haze-0.3.4/src/request.c , in function haze_request_input ( ) :

<after the DEBUG statements, place the below line>
( (PurpleRequestInputCb) ok_cb) (user_data, "<Reason for denying, given by User>");


Doing the above, has solved the problem for me. Can anyone suggest if there is a better way ? Or this bug fix is already
underway for the next haze release ?

Kindly do let me know, if there is any work around already in place, for Empathy later releases. Am using Empathy 2.30.1.1, which is pretty old,
coming with Ubuntu Lucid

Thanks in advance!
Best wishes
Uday Kiran


_______________________________________________
telepathy mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/telepathy


--
Will

_______________________________________________
telepathy mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/telepathy

Reply via email to