Re: [Gajim-devel] Declaring return type of gajim dbus method list_contacts with dbus glib

2007-08-30 Thread Yann Leboulanger
Øystein Gisnås wrote:
> 2007/8/30, Øystein Gisnås <[EMAIL PROTECTED]>:
>> 2007/8/29, Yann Leboulanger <[EMAIL PROTECTED]>:
>>> Øystein Gisnås wrote:
 2007/8/26, Yann Leboulanger <[EMAIL PROTECTED]>:
> Øystein Gisnås wrote:
>> The signature of list_contacts in remote_control.py has changed return
>> value from undefined to 'av', via 'a{ss}'. The return array has been
>> changed from undefined to 'a{sv}', via 's'. See
>> http://trac.gajim.org/changeset/7877 and
>> http://trac.gajim.org/changeset/7811
>>
>> Nautilus-sendto tries to call the method using glib binding. It worked
>> with previous gaim versions, but not now. The return type is specified
>> as
>> dbus_g_type_get_collection ("GSList", dbus_g_type_get_map
>> ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE))
>>
>> The error message being returned is "Expected D-BUS array, got type code 
>> 'v'"
>>
>> Is the return type in nautilus-sendto wrong, or doesn't the DBus GLib
>> binding work like it should here?
>>
>> This bug is reported against nautilus-sendto at
>> http://bugzilla.gnome.org/show_bug.cgi?id=443484 and
>> https://bugs.launchpad.net/ubuntu/+source/nautilus-sendto/+bug/118475
>>
>> Cheers,
>> Øystein Gisnås
>> Debian Maintainer
> indeed there seem to be a pb in dbus signatures. unfortunatly I can't
> test at home (debian unstable) because of that:
>
> $ nautilus-sendto gajim.py
> Segmentation fault
>
> but if you can you can try to change the out_signatures to a{sv} in
> src/remote_controle.py ?
>
> Maybe the bug is in nautilus-sendto code that handles badly what
> list_contacts returns ...
 Hi, I tried your suggestion of chaning out_signatures to a{sv}. Now I
 get this error message:
 ** (nautilus-sendto:16598): WARNING **: [Gajim] caught remote method
 exception org.freedesktop.DBus.Python.exceptions.TypeError: Traceback
 (most recent call last):
   File "/var/lib/python-support/python2.4/dbus/service.py", line 730,
 in _message_cb
 _method_reply_return(connection, message, method_name, signature, 
 *retval)
   File "/var/lib/python-support/python2.4/dbus/service.py", line 248,
 in _method_reply_return
 reply.append(signature=signature, *retval)
 TypeError: list indices must be integers

 Does this make sense to you?

 Cheers,
 Øystein

>>> no that doesn't :/
>>> I cc to dbus ML, maybe they could help us ;)
>> I solved it!
>>
>> Change the two output signatures to aa{sv}.. Before:
>> raffen% dbus-send --print-reply --dest='org.gajim.dbus'
>> '/org/gajim/dbus/RemoteObject'
>> 'org.gajim.dbus.RemoteInterface.list_contacts' string:'jabber.org'
>> method return sender=:1.81 -> dest=:1.95 reply_serial=2
>>array [
>>   variant  array [
>> dict entry(
>>string "jid"
>>variant   string "[EMAIL PROTECTED]"
>> )
>> dict entry(
>>string "name"
>>variant   string "None"
>> )
>> dict entry(
>>string "resources"
>>variant   array [
>>  struct {
>> string ""
>> int32 0
>> string ""
>>  }
>>   ]
>> )
>> dict entry(
>>string "show"
>>variant   string "offline"
>> )
>>  ]
>>]
>>
>> After:
>> raffen% dbus-send --print-reply --dest='org.gajim.dbus'
>> '/org/gajim/dbus/RemoteObject'
>> 'org.gajim.dbus.RemoteInterface.list_contacts' string:'jabber.org'
>> method return sender=:1.96 -> dest=:1.97 reply_serial=2
>>array [
>>   array [
>>  dict entry(
>> string "jid"
>> variantstring "[EMAIL PROTECTED]"
>>  )
>>  dict entry(
>> string "name"
>> variantstring ""
>>  )
>>  dict entry(
>> string "resources"
>> variantarray [
>>   struct {
>>  string ""
>>  int32 0
>>  string ""
>>   }
>>]
>>  )
>>  dict entry(
>> string "show"
>> variantstring "offline"
>>  )
>>   ]
>>]
>>
>> I've file a ticket with a patch at http://trac.gajim.org/ticket/3408
>> I've tested the patched gajim with nautilus-sendto and gaim-remote.
> 
> Are there any other known users of the DBus method list_contacts?
> 
> Øystein
> 

hehe good catch ! I still don't understand why a{sv} doesn't work though ...

and no, I don't know any other program using list_contacts

thanks for your patch
-- 
Yan

Re: [Gajim-devel] Declaring return type of gajim dbus method list_contacts with dbus glib

2007-08-29 Thread Yann Leboulanger
Øystein Gisnås wrote:
> 2007/8/26, Yann Leboulanger <[EMAIL PROTECTED]>:
>> Øystein Gisnås wrote:
>>> The signature of list_contacts in remote_control.py has changed return
>>> value from undefined to 'av', via 'a{ss}'. The return array has been
>>> changed from undefined to 'a{sv}', via 's'. See
>>> http://trac.gajim.org/changeset/7877 and
>>> http://trac.gajim.org/changeset/7811
>>>
>>> Nautilus-sendto tries to call the method using glib binding. It worked
>>> with previous gaim versions, but not now. The return type is specified
>>> as
>>> dbus_g_type_get_collection ("GSList", dbus_g_type_get_map
>>> ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE))
>>>
>>> The error message being returned is "Expected D-BUS array, got type code 
>>> 'v'"
>>>
>>> Is the return type in nautilus-sendto wrong, or doesn't the DBus GLib
>>> binding work like it should here?
>>>
>>> This bug is reported against nautilus-sendto at
>>> http://bugzilla.gnome.org/show_bug.cgi?id=443484 and
>>> https://bugs.launchpad.net/ubuntu/+source/nautilus-sendto/+bug/118475
>>>
>>> Cheers,
>>> Øystein Gisnås
>>> Debian Maintainer
>> indeed there seem to be a pb in dbus signatures. unfortunatly I can't
>> test at home (debian unstable) because of that:
>>
>> $ nautilus-sendto gajim.py
>> Segmentation fault
>>
>> but if you can you can try to change the out_signatures to a{sv} in
>> src/remote_controle.py ?
>>
>> Maybe the bug is in nautilus-sendto code that handles badly what
>> list_contacts returns ...
> 
> Hi, I tried your suggestion of chaning out_signatures to a{sv}. Now I
> get this error message:
> ** (nautilus-sendto:16598): WARNING **: [Gajim] caught remote method
> exception org.freedesktop.DBus.Python.exceptions.TypeError: Traceback
> (most recent call last):
>   File "/var/lib/python-support/python2.4/dbus/service.py", line 730,
> in _message_cb
> _method_reply_return(connection, message, method_name, signature, *retval)
>   File "/var/lib/python-support/python2.4/dbus/service.py", line 248,
> in _method_reply_return
> reply.append(signature=signature, *retval)
> TypeError: list indices must be integers
> 
> Does this make sense to you?
> 
> Cheers,
> Øystein
> 

no that doesn't :/
I cc to dbus ML, maybe they could help us ;)

-- 
Yann
___
Gajim-devel mailing list
Gajim-devel@gajim.org
https://lists.gajim.org/cgi-bin/listinfo/gajim-devel


Re: [Gajim-devel] Declaring return type of gajim dbus method list_contacts with dbus glib

2007-08-26 Thread Yann Leboulanger
Øystein Gisnås wrote:
> The signature of list_contacts in remote_control.py has changed return
> value from undefined to 'av', via 'a{ss}'. The return array has been
> changed from undefined to 'a{sv}', via 's'. See
> http://trac.gajim.org/changeset/7877 and
> http://trac.gajim.org/changeset/7811
> 
> Nautilus-sendto tries to call the method using glib binding. It worked
> with previous gaim versions, but not now. The return type is specified
> as
> dbus_g_type_get_collection ("GSList", dbus_g_type_get_map
> ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE))
> 
> The error message being returned is "Expected D-BUS array, got type code 'v'"
> 
> Is the return type in nautilus-sendto wrong, or doesn't the DBus GLib
> binding work like it should here?
> 
> This bug is reported against nautilus-sendto at
> http://bugzilla.gnome.org/show_bug.cgi?id=443484 and
> https://bugs.launchpad.net/ubuntu/+source/nautilus-sendto/+bug/118475
> 
> Cheers,
> Øystein Gisnås
> Debian Maintainer

indeed there seem to be a pb in dbus signatures. unfortunatly I can't
test at home (debian unstable) because of that:

$ nautilus-sendto gajim.py
Segmentation fault

but if you can you can try to change the out_signatures to a{sv} in
src/remote_controle.py ?

Maybe the bug is in nautilus-sendto code that handles badly what
list_contacts returns ...

-- 
Yann
___
Gajim-devel mailing list
Gajim-devel@gajim.org
https://lists.gajim.org/cgi-bin/listinfo/gajim-devel