A pass at fixing single-computer with more than one sugar instance work

This commit is contained in:
Dan Williams 2006-06-16 15:48:44 -04:00
parent c7075255f8
commit cd3d98cb77
3 changed files with 12 additions and 7 deletions

View File

@ -6,6 +6,7 @@ import os
import string import string
import random import random
from sugar import util from sugar import util
from sugar import env
def _get_local_ip_address(ifname): def _get_local_ip_address(ifname):
"""Call Linux specific bits to retrieve our own IP address.""" """Call Linux specific bits to retrieve our own IP address."""
@ -196,7 +197,8 @@ class PresenceService(gobject.GObject):
buddy.add_service(service) buddy.add_service(service)
except KeyError: except KeyError:
# Should this service mark the owner? # Should this service mark the owner?
if service.get_address() in self._local_addrs.values(): owner_nick = env.get_nick_name()
if name == owner_nick and service.get_address() in self._local_addrs.values():
buddy = Buddy.Owner(service) buddy = Buddy.Owner(service)
self._owner = buddy self._owner = buddy
print "Set owner to %s" % name print "Set owner to %s" % name

View File

@ -3,7 +3,6 @@ from sugar.presence import Service
from sugar.presence import Buddy from sugar.presence import Buddy
from sugar.presence import PresenceService from sugar.presence import PresenceService
from sugar.p2p import Stream from sugar.p2p import Stream
import pwd
import os import os
import random import random
import base64 import base64
@ -16,11 +15,6 @@ class ShellOwner(object):
server portion of the Owner, paired with the client portion in Buddy.py.""" server portion of the Owner, paired with the client portion in Buddy.py."""
def __init__(self): def __init__(self):
nick = env.get_nick_name() nick = env.get_nick_name()
if not nick:
nick = pwd.getpwuid(os.getuid())[0]
if not nick or not len(nick):
nick = "Guest"
user_dir = env.get_user_dir() user_dir = env.get_user_dir()
if not os.path.exists(user_dir): if not os.path.exists(user_dir):
try: try:

View File

@ -2,6 +2,8 @@
import sys import sys
import os import os
import pwd
import random
import pygtk import pygtk
pygtk.require('2.0') pygtk.require('2.0')
@ -47,6 +49,13 @@ for arg in sys.argv:
started_dbus = True started_dbus = True
i += 1 i += 1
if not os.environ.has_key("SUGAR_NICK_NAME"):
nick = pwd.getpwuid(os.getuid())[0]
if not nick or not len(nick):
nick = "Guest %d" % random.randint(1, 10000)
os.environ['SUGAR_NICK_NAME'] = nick
os.environ['SUGAR_USER_DIR'] = os.path.expanduser('~/.sugar')
curdir = os.path.dirname(__file__) curdir = os.path.dirname(__file__)
if curdir == '.': if curdir == '.':
basedir = os.path.dirname(os.getcwd()) basedir = os.path.dirname(os.getcwd())