From 6a8e863a1647088348f8895763d379f0046e86af Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Thu, 15 Jun 2006 18:27:50 -0400 Subject: [PATCH] Fix the problem with service resolution (Dan please have a look...) --- sugar/browser/BrowserActivity.py | 51 +++++++++++++++---------------- sugar/presence/PresenceService.py | 5 +-- sugar/shell/StartPage.py | 1 - 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/sugar/browser/BrowserActivity.py b/sugar/browser/BrowserActivity.py index d281853c..f713bf5d 100644 --- a/sugar/browser/BrowserActivity.py +++ b/sugar/browser/BrowserActivity.py @@ -11,7 +11,7 @@ from sugar.browser import NavigationToolbar from sugar.presence.PresenceService import PresenceService -_BROWSER_ACTIVITY_TYPE = "_web_olpc._udp" +_BROWSER_ACTIVITY_TYPE = "_web_browser_olpc._udp" _SERVICE_URI_TAG = "URI" _SERVICE_TITLE_TAG = "Title" @@ -46,20 +46,20 @@ class BrowserActivity(activity.Activity): self.embed.load_address(address) self._notif_bar.hide() - def set_mode(self, mode): - self._mode = mode - if mode == BrowserActivity.LEADING: - self._notif_bar.set_text('Share this page with the group.') - self._notif_bar.set_action('set_shared_location', 'Share') - self._notif_bar.set_icon('stock_shared-by-me') - self._notif_bar.show() + #def set_mode(self, mode): + # self._mode = mode + # if mode == BrowserActivity.LEADING: + # self._notif_bar.set_text('Share this page with the group.') + # self._notif_bar.set_action('set_shared_location', 'Share') + # self._notif_bar.set_icon('stock_shared-by-me') + # self._notif_bar.show() def _setup_shared(self, uri): - if False: - self._model = self._group.get_store().get_model(uri) - if self._model: - self.set_mode(BrowserActivity.FOLLOWING) - self._model.add_listener(self.__shared_location_changed_cb) + pass + #self._model = self._group.get_store().get_model(uri) + #if self._model: + # self.set_mode(BrowserActivity.FOLLOWING) + # self._model.add_listener(self.__shared_location_changed_cb) def on_connected_to_shell(self): self.set_ellipsize_tab(True) @@ -108,19 +108,18 @@ class BrowserActivity(activity.Activity): self._share_service = self._pservice.share_activity(self, stype=_BROWSER_ACTIVITY_TYPE, properties=properties) - if False: - # Create our activity-specific browser sharing service - self._model = self._group.get_store().create_model(url) - self._model.set_value('owner', self._pservice.get_owner().get_nick_name()) - self._update_shared_location() - self.set_mode(BrowserActivity.LEADING) - - bus = dbus.SessionBus() - proxy_obj = bus.get_object('com.redhat.Sugar.Chat', '/com/redhat/Sugar/Chat') - chat_shell = dbus.Interface(proxy_obj, 'com.redhat.Sugar.ChatShell') - - chat_shell.send_text_message('' + escaped_title + '') + # Create our activity-specific browser sharing service + #self._model = self._group.get_store().create_model(url) + #self._model.set_value('owner', self._pservice.get_owner().get_nick_name()) + #self._update_shared_location() + #self.set_mode(BrowserActivity.LEADING) + + #bus = dbus.SessionBus() + #proxy_obj = bus.get_object('com.redhat.Sugar.Chat', '/com/redhat/Sugar/Chat') + #chat_shell = dbus.Interface(proxy_obj, 'com.redhat.Sugar.ChatShell') + + #chat_shell.send_text_message('' + escaped_title + '') def __title_cb(self, embed): self.set_tab_text(embed.get_title()) diff --git a/sugar/presence/PresenceService.py b/sugar/presence/PresenceService.py index 8bbbde7c..fe5f74fc 100644 --- a/sugar/presence/PresenceService.py +++ b/sugar/presence/PresenceService.py @@ -256,6 +256,7 @@ class PresenceService(gobject.GObject): def _resolve_service(self, interface, protocol, name, stype, domain, flags): """Resolve and lookup a ZeroConf service to obtain its address and TXT records.""" # Ask avahi to resolve this particular service + print 'Resolving service ' + name + ' ' + stype self._server.ResolveService(int(interface), int(protocol), name, stype, domain, avahi.PROTO_UNSPEC, dbus.UInt32(0), # use flags here maybe? reply_handler=self._resolve_service_reply_cb_glue, @@ -395,11 +396,11 @@ class PresenceService(gobject.GObject): return # Decompose service type if we can - (uid, stype) = Service._decompose_service_type(stype) + (uid, dec_stype) = Service._decompose_service_type(stype) if uid and util.validate_activity_uid(uid): if uid not in self._activity_uids: self._activity_uids.append(uid) - self._allowed_service_types.append(stype) + self._allowed_service_types.append(dec_stype) # Find unresolved services that match the service type # we're now interested in, and resolve them diff --git a/sugar/shell/StartPage.py b/sugar/shell/StartPage.py index f51b5661..92102104 100644 --- a/sugar/shell/StartPage.py +++ b/sugar/shell/StartPage.py @@ -100,7 +100,6 @@ class StartPage(gtk.HBox): def _on_new_service_adv_cb(self, pservice, uid, stype): if uid is not None: real_stype = Service.compose_service_type(stype, uid) - print "Will ask to track uid=%s, stype=%s" % (uid, stype) self._pservice.track_service_type(real_stype) def _on_activity_announced_cb(self, pservice, service, buddy):