diff options
Diffstat (limited to 'src/server_plugin.py')
-rw-r--r-- | src/server_plugin.py | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/server_plugin.py b/src/server_plugin.py index fa7efdf..d2b7563 100644 --- a/src/server_plugin.py +++ b/src/server_plugin.py @@ -231,22 +231,6 @@ class ServerPlugin(TelepathyPlugin): TelepathyPlugin._connected_cb(self) - publish_handles, local_pending, remote_pending = \ - self._publish_channel[CHANNEL_INTERFACE_GROUP].GetAllMembers() - - if local_pending: - # accept pending subscriptions - # FIXME: do this async - self._publish_channel[CHANNEL_INTERFACE_GROUP].AddMembers( - local_pending, '') - - # request subscriptions from people subscribed to us if we're not - # subscribed to them - not_subscribed = set(publish_handles) - not_subscribed -= self._subscribe_members - self._subscribe_channel[CHANNEL_INTERFACE_GROUP].AddMembers( - not_subscribed, '') - def _publish_members_changed_cb(self, message, added, removed, local_pending, remote_pending, actor, reason): @@ -285,3 +269,23 @@ class ServerPlugin(TelepathyPlugin): return TelepathyPlugin._handle_connection_status_change(self, status, reason) + + def _publish_channel_cb(self, channel): + TelepathyPlugin._publish_channel_cb(self, channel) + + publish_handles, local_pending, remote_pending = \ + self._publish_channel[CHANNEL_INTERFACE_GROUP].GetAllMembers() + + if local_pending: + # accept pending subscriptions + # FIXME: do this async + self._publish_channel[CHANNEL_INTERFACE_GROUP].AddMembers( + local_pending, '') + + # request subscriptions from people subscribed to us if we're + # not subscribed to them + not_subscribed = set(publish_handles) + not_subscribed -= self._subscribe_members + self._subscribe_channel[CHANNEL_INTERFACE_GROUP].AddMembers( + not_subscribed, '') + |