If you try to join a channel protected by a password, tp_channel_group_get_self_handle returns 0 instead of the Connection self handle. This blocks joining password protected room support in Empathy: https://bugzilla.gnome.org/show_bug.cgi?id=579341 (telepathy-idle:8026): tp-glib/handles-DEBUG: tp_base_connection_dbus_request_handles: 1 handles of type 2, for :1.924 (telepathy-idle:8026): tp-glib/proxy-DEBUG: tp_dbus_daemon_watch_name_owner: Adding match rule type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0=':1.924' (telepathy-idle:8026): tp-glib/proxy-DEBUG: _tp_dbus_daemon_get_name_owner_idle: GetNameOwner(:1.924) -> :1.924 (telepathy-idle:8026): tp-glib/connection-DEBUG: channel_request_new: New channel request at 0x1b50b80: ctype=org.freedesktop.Telepathy.Channel.Type.Text htype=2 handle=1 suppress=1 ** (telepathy-idle:8026): DEBUG: idle_muc_channel_set_property: setting handle to 1 tp_group_mixin_change_flags: emitting group flags changed added : [PROPERTIES] removed : [] flags now: [PROPERTIES] ** (telepathy-idle:8026): DEBUG: iface_send_impl: sent "JOIN #dddd " to IOChannel 0x1b4e770 ** (telepathy-idle:8026): DEBUG: _parse_message: parsing ":verne.freenode.net 475 cass-dev #dddd :You must specify the channel key (+k)" ** (telepathy-idle:8026): DEBUG: _parse_and_forward_one: message code 15 ** (telepathy-idle:8026): DEBUG: _parse_atom: parsing atom "verne.freenode.net" as I ** (telepathy-idle:8026): DEBUG: _parse_atom: ignored token ** (telepathy-idle:8026): DEBUG: _parse_atom: parsing atom "475" as I ** (telepathy-idle:8026): DEBUG: _parse_atom: ignored token ** (telepathy-idle:8026): DEBUG: _parse_atom: parsing atom "cass-dev" as I ** (telepathy-idle:8026): DEBUG: _parse_atom: ignored token ** (telepathy-idle:8026): DEBUG: _parse_atom: parsing atom "#dddd" as r ** (telepathy-idle:8026): DEBUG: _parse_atom: set handle 1 ** (telepathy-idle:8026): DEBUG: _parse_and_forward_one: succesfully parsed ** (telepathy-idle:8026): DEBUG: change_state: emitting join-ready (telepathy-idle:8026): tp-glib/connection-DEBUG: satisfy_request: completing queued request 0x1b50b80 with success, channel_type=org.freedesktop.Telepathy.Channel.Type.Text, handle_type=2, handle=1, suppress_handler=1 (telepathy-idle:8026): tp-glib/connection-DEBUG: channel_request_free: Freeing channel request at 0x1b50b80: ctype=org.freedesktop.Telepathy.Channel.Type.Text htype=2 handle=1 suppress=1 ** (telepathy-idle:8026): DEBUG: change_password_flags: emitting PASSWORD_FLAGS_CHANGED with 8 0 ** (telepathy-idle:8026): DEBUG: change_state: IdleMUCChannel 1 changed to state MUC_STATE_NEED_PASSWORD ** (telepathy-idle:8026): DEBUG: idle_muc_channel_close: called on 0x1b56850 (telepathy-idle:8026): tp-glib/im-DEBUG: tp_text_mixin_finalize: 0x1b56850
This bug is because Idle doesn't add the self_handle to remote pending while joining. So tp_group_mixin_get_self_handle returns 0 as the self-handle is not in the muc. This also raises a race preventing to auto-join mucs in Empathy: https://bugzilla.gnome.org/show_bug.cgi?id=605188
http://git.collabora.co.uk/?p=user/cassidy/telepathy-idle;a=shortlog;h=refs/heads/remote-pending
Fixed in master. commit a5b64fe0e33eb6e03eaa05eff4946a12445f76eb Author: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> Date: Thu Feb 18 17:40:06 2010 +0000 Add ourself to remote-pending while joining the channel (fd.o #25039)
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.