Bug 13891

Summary: AcceptDBusTube returns NULL with 1-1 D-Bus tube
Product: Telepathy Reporter: Guillaume Desmottes <guillaume.desmottes>
Component: gabbleAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 15454    
Bug Blocks:    

Description Guillaume Desmottes 2008-01-02 04:04:35 UTC
When accepting a 1-1 D-Bus tube (so without muc) AcceptDBusTube returns NULL instead of the address of the D-Bus server.
See FIXME in tubes-channel.c for details.
Comment 1 Alban Crequy 2008-04-11 03:27:30 UTC
A workaround is to call GetDBusTubeAddress() to get the address of the D-Bus server after the signal TubeStateChanged is received with the state Tube_State_Open.
Comment 2 Guillaume Desmottes 2008-04-11 04:02:08 UTC
yeah that works.
Actually I'm wondering if AcceptDBusTube shouldn't return anything and user have to wait for tube opening to get its address. Don't know.
Comment 3 Alban Crequy 2008-04-11 10:14:09 UTC
I agree: AcceptDBusTube shouldn't return the address.

I opened a bug on telepathy-spec: Bug #15454.
Comment 4 Alban Crequy 2008-10-21 07:57:00 UTC
The spec does not need to change. I have a fix for Gabble:
http://monkey.collabora.co.uk/telepathy-gabble.git_alban-bug13891/

+/* There is two step to enable receiving a D-Bus connection from the local
+ * application:
+ * - listen on the socket
+ * - add the socket in the mainloop
+ *
+ * We need to know the socket path to return from the AcceptDBusTube D-Bus
+ * call but the socket in the mainloop must be added only when we are ready
+ * to receive connections, that is when the bytestream is fully open with the
+ * remote contact.
Comment 5 Simon McVittie 2008-11-04 02:38:09 UTC
Fixed in 0.7.12

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.