Commit Graph

360 Commits

Author SHA1 Message Date
Simon McVittie a4a06206e3 services/presence/: identify Buddies by "key ID" (pubkey hash), not whole key.
This allows us to create Buddy objects as soon as we see a contact on the
server. For contacts not on trusted servers, or seen in anonymous MUCs, we
create a Buddy identified by JID instead (so we have some way to talk
about the anonymous contact within the Sugar API).

The concept of "trusted server" means a server which we trust to validate that
users with a keyID as the username part of their JID do in fact have that key.
Currently we just pretend that olpc.collabora.co.uk does this - in future, the
school servers will do this validation by using key rather than password
authentication.

Also create Buddy object paths based on the keyID or JID (for easier debugging).
2007-05-28 17:25:52 +01:00
Simon McVittie 5dacfdd365 Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar 2007-05-28 17:10:54 +01:00
Simon McVittie 706830c489 services/presence/server_plugin: Don't watch MembersChanged in activities.
My plan is now to do this in the Activity class, once the PS has a reliable
way to map handles to buddies.
2007-05-28 15:56:39 +01:00
Simon McVittie aad2afdae2 services/presence/server_plugin: Use set operations to update the subscribe set 2007-05-28 15:54:40 +01:00
Simon McVittie 7aee70e047 services/presence/pstest: Add Red Hat/Collabora GPL v2+ notice 2007-05-28 14:46:13 +01:00
Simon McVittie 7583080cd4 services/presence/psutils: Add pubkey_to_keyid() and escape_identifier() 2007-05-28 14:44:49 +01:00
Dan Williams 8c70ff2d86 Fix non-NM IP4 address detection 2007-05-26 14:01:25 -04:00
Dan Williams c1fc93b2af Fix syntax error 2007-05-26 13:58:12 -04:00
Simon McVittie 3d3e4be65e services/presence/activity: Validate object path early 2007-05-25 16:30:36 +01:00
Simon McVittie 9721436536 services/presence/: Pass the SessionBus around, instead of a BusName object.
Delay making the BusName object until after the PS object has been exported,
to guarantee race-free activation.
2007-05-25 16:21:02 +01:00
Simon McVittie ad33f7dfdd services/presence/buddy: Improve docstring; remove unused property _object_id 2007-05-25 12:26:53 +01:00
Simon McVittie 1fa97c3d93 services/presence/buddy: Set attributes more concisely, improve docstrings 2007-05-25 12:24:32 +01:00
Simon McVittie 56b95264cf services/presence/psutils, buddy: Track NameOwnerChanged in IP4AddressMonitor
This means Buddy and its subclasses no longer need to care about
NameOwnerChanged at all.

The old code might not have worked anyway, since it was watching for
NameOwnerChanged on the session bus, but invoking NM methods on the system bus.
2007-05-25 12:14:39 +01:00
Simon McVittie fdd8c315cf services/presence/buddy: Use add_signal_receiver to connect signals.
This means we don't need to care whether the Sugar shell is actually running -
if it is, we'll get its signals, and if it's not, obviously it can't send us
any signals!
2007-05-25 12:06:57 +01:00
Simon McVittie 7b0d65a211 Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar 2007-05-25 11:39:45 +01:00
Simon McVittie eafd338d09 services/presence/buddy: Stop treating server, key_hash, registered as GObject properties.
They're not handled in the inherited do_set_property()/do_get_property(), so
won't work as properties, and there seems to be no need for them to be
properties at all.
This fixes the following assertion when importing buddy:

Warning: g_object_class_install_property: assertion `pspec->flags & G_PARAM_WRITABLE' failed
  type_register(cls, namespace.get('__gtype_name__'))
2007-05-25 11:34:54 +01:00
Simon McVittie a868f6eb9c services/presence/psutils: Re-order imports conventionally, without dbus.glib.
Importing dbus.glib has a side-effect (it sets up the default main loop
integration) so it's not something a module should do.
2007-05-25 11:30:36 +01:00
Simon McVittie 5bf10edaee services/presence/buddy: remove trailing whitespace, wrap long lines 2007-05-25 10:56:41 +01:00
Simon McVittie a5ba8541a4 services/presence/activity: wrap long lines, remove trailing whitespace 2007-05-25 10:56:14 +01:00
Dan Williams c1346a5303 Retry connections when TP connection attempts fail 2007-05-24 16:40:14 -04:00
Simon McVittie b96de811d3 services/presence/server_plugin: fix logging of join/share error 2007-05-24 18:59:32 +01:00
Simon McVittie 7b20bacdf5 services/presence/presenceservice: check against None with 'is' 2007-05-24 18:59:25 +01:00
Simon McVittie 0410ed28ba services/presence/presenceservice: add some missing in_signature arguments 2007-05-24 18:59:19 +01:00
Simon McVittie 570a485d84 services/presence/presenceservice: don't use deprecated dbus.glib
Importing dbus.glib has strange magical side-effects. Instead, make it more
explicit that the default dbus-python main loop is being set to the GLib main
loop.
2007-05-24 18:59:13 +01:00
Simon McVittie 2abcd89c1f services/presence/: Move internal_get_activity to TestPresenceService 2007-05-24 18:59:06 +01:00
Simon McVittie f7ba2aa1e2 services/presence/: separate test code into a separate module 2007-05-24 18:58:58 +01:00
Simon McVittie f75747015d services/presence/activity: Document constructor arguments 2007-05-24 18:58:50 +01:00
Simon McVittie e7f10dd2aa services/presence/presenceservice: fix broken syntax 2007-05-24 18:58:43 +01:00
Simon McVittie 4e188059e3 services/presence/server_plugin: Use telepathy-python helper function request_channel()
Also request the subscribe and publish handles at the same time, to reduce
D-Bus roundtrips.
2007-05-24 18:58:35 +01:00
Simon McVittie a450a82e59 services/presence/server_plugin: Call _handle_connection_status_change with appropriate arguments
Also reduce number of methods by using nested functions for trivial Connect()
reply handlers.
2007-05-24 18:58:28 +01:00
Simon McVittie e13728f347 services/presence/server_plugin: various cosmetic cleanups
* wrap most long lines at 80 characters
* don't preformat log messages, let the logging framework do it
2007-05-24 18:58:17 +01:00
Simon McVittie 0d5dd24166 services/presence/server_plugin: delete unused InvalidBuddyError 2007-05-24 18:58:10 +01:00
Simon McVittie e11389d813 services/presence/server_plugin: reformat, document signal definitions 2007-05-24 18:58:02 +01:00
Simon McVittie 1026fce013 services/presence/presenceservice: various cosmetic cleanups
* wrap long lines at 80 characters
* don't preformat log messages, let the logging framework do it
* eradicate trailing whitespace
2007-05-24 18:57:53 +01:00
Simon McVittie 55c0d9cb07 services/presence/server_plugin: remove trailing whitespace 2007-05-24 18:56:42 +01:00
Simon McVittie 2d76475682 services/presence/psutils: Remove bytes_to_string - no longer needed 2007-05-24 18:56:35 +01:00
Simon McVittie 43453124bd services/presence/presenceservice: Make bytes_to_string() unnecessary by requesting a ByteArray from dbus-python 2007-05-24 18:56:29 +01:00
Simon McVittie c3e54133a4 services/presence/server_plugin: make bytes_to_string() unnecessary by requesting a dbus.ByteArray 2007-05-24 18:56:20 +01:00
Simon McVittie cb279a1418 services/presence/server_plugin: reorder imports 2007-05-24 18:56:12 +01:00
Simon McVittie 417fd7cc8a services/presence/server_plugin: Use more conventional conditional import for md5 2007-05-24 18:56:06 +01:00
Simon McVittie 71951848a6 services/presence/server_plugin: error_handler always takes exactly 1 argument.
Instead of using lambdas with arbitrary arguments, use a lambda that takes
1 argument.
2007-05-24 18:55:57 +01:00
Simon McVittie f69e06247f services/presence/server_plugin: Use non-deprecated handle type constants.
(CONNECTION_HANDLE_TYPE_foo is deprecated in favour of HANDLE_TYPE_foo.)
Also rewrap imports to be 80 characters wide.
2007-05-24 18:55:50 +01:00
Simon McVittie 3c2bdfc346 services/presence/server_plugin: implement _new_channel_cb asynchronously 2007-05-24 18:55:31 +01:00
Simon McVittie 3444acae8f services/presence/server_plugin: Stop using private API of telepathy-python and dbus-python 2007-05-24 18:52:26 +01:00
Simon McVittie b16bb9d6cc services/presence/server_plugin: Fix error logging for RequestHandles 2007-05-24 18:52:15 +01:00
Simon McVittie f4327759fc services/presence/server_plugin: When creating a room, make it non-anonymous.
Otherwise clients joining the room won't be able to convert other clients'
channel-specific handles into global handles in order to make Buddy objects,
because they're not the moderator of the room.
2007-05-24 18:48:13 +01:00
Simon McVittie 7b1a38af1c services/presence/: keep track of the owner's Telepathy handles 2007-05-24 18:47:55 +01:00
Simon McVittie 10e1daf8c6 services/presence/buddy.py: Don't allow the Owner to disappear, even if they have no handles left 2007-05-24 18:46:16 +01:00
Simon McVittie a6e809a9ef services/presence/: move more of the handle tracking into the Buddy object 2007-05-24 18:46:09 +01:00
Simon McVittie 161605ccb1 services/presence/server_plugin: Initialize attributes with empty values 2007-05-24 17:45:05 +01:00