connect(8, {sa_family=AF_FILE, path="/tmp/dbus-gabble-eJmvd0ho"}, 27) =0
So it connects fine to the D-Bus tube and use the file descriptor 8. When your process is waiting in poll() or select(), is the file descriptor 8 included in the list of fd to watch? If not, dbus-python is not using the mainloop correctly... I don't remember the syntax, but something like that: from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) tube = dbus.connection.Connection(self.tube_addr, mainloop=DBusGMainLoop()) BR, Alban Le Thu, 19 Aug 2010 14:23:23 +0200, tomw <t...@ubilix.com> a écrit : > Alban, > > thanks for your quick reply, > > the "SERVICE" is the service the tube was created for, e.g. > "org.example.Service" and I'm using a 1-1 DBus tube. > > I was tracing the remote app with strace but it does not seem to > receive any communication on the socket. I guess I need to digg > deeper... > > br, tomw > > On Thu, 2010-08-19 at 12:37 +0100, Alban Crequy wrote: > > Le Thu, 19 Aug 2010 08:34:35 +0200, > > tomw <t...@ubilix.com> a écrit : > > > > > Hi folks, > > > > > > I'm trying to use a remote Object over a DBus tube. So far > > > everything works fine. The tube is open and upon the > > > tube_channel_state_change I get a dbus.connection.Connection > > > object with the related address like > > > unix:path=/tmp/dbus-gabble-6k8gfh-V. If I proceed then with: > > > > > > if state == TUBE_CHANNEL_STATE_OPEN: > > > tube = dbus.connection.Connection(self.tube_addr) > > > tube.add_signal_receiver(self.signal_cb) > > > remote = tube.get_object(SERVICE, PATH) > > > > What is "SERVICE" here? Are you using a 1-1 D-Bus tube or MUC D-Bus > > tubes? > > > > In D-Bus tubes (both 1-1 and MUC), there is no bus driver > > implementing org.freedesktop.DBus, so there is no well-known names. > > > > In the case of MUC D-Bus tubes, you can find the D-Bus unique name > > (to use instead of "SERVICE") of a contact with the "DBusNames" > > property on your tube channel: > > http://telepathy.freedesktop.org/spec/Channel_Type_DBus_Tube.html#org.freedesktop.Telepathy.Channel.Type.DBusTube.DBusNames > > > > > remote.Method(reply_handler=self.tube_reply_cb, > > > error_handler=self.tube_error_cb) > > > > > > Calling Method on the remote object always creates a DBus timeout: > > > "DBusException(dbus.String(u'Did not receive a reply..." > > > The remote object is running on the DBUs and locally works like it > > > should. So, what am I missing here? > > > > You can use strace on your application to see if it receives a D-Bus > > message on the tube socket. > > > > > BTW, the telepathy framework is really a great piece of work > > > (once you grasp it :-) > > > > BR, > > Alban > > _______________________________________________ > > telepathy mailing list > > telepathy@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/telepathy > > _______________________________________________ telepathy mailing list telepathy@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/telepathy