Bug 25039

Summary: Don't add the self-handle to remote-pending while joining a room
Product: Telepathy Reporter: Guillaume Desmottes <guillaume.desmottes>
Component: idleAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium Keywords: patch
Version: unspecified   
Hardware: Other   
OS: All   
URL: http://git.collabora.co.uk/?p=user/cassidy/telepathy-idle;a=shortlog;h=refs/heads/remote-pending
Whiteboard:
i915 platform: i915 features:

Description Guillaume Desmottes 2009-11-11 08:59:51 UTC
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
Comment 1 Guillaume Desmottes 2010-02-18 09:30:39 UTC
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
Comment 3 Guillaume Desmottes 2010-02-18 10:12:27 UTC
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.