[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, master, updated. milestone4-368-g700ab82
Jan Luebbe
jluebbe at debian.org
Mon Feb 2 18:51:39 UTC 2009
The following commit has been merged in the master branch:
commit 7a56ea1bfc59208072fbe9fbb4ad15389d92eb13
Author: Jan Luebbe <jluebbe at debian.org>
Date: Wed Dec 17 21:25:48 2008 +0100
otimed: fix blocking otimed without connectivity
diff --git a/framework/subsystems/otimed/otimed.py b/framework/subsystems/otimed/otimed.py
index ef8beee..5207190 100644
--- a/framework/subsystems/otimed/otimed.py
+++ b/framework/subsystems/otimed/otimed.py
@@ -73,21 +73,29 @@ class GPSTimeSource( TimeSource ):
#============================================================================#
class NTPTimeSource( TimeSource ):
#============================================================================#
- def __init__( self, bus, server = "134.169.172.1", interval = 70 ):
+ def __init__( self, bus, server = "134.169.172.1", interval = 600 ):
TimeSource.__init__( self, bus )
self.server = server
self.interval = interval
+ self.socket = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
+ self.socket.bind( ('', 123) )
+ self.socket.setblocking( False )
self.updateTimeout = gobject.timeout_add_seconds( self.interval, self._handleUpdateTimeout )
+ self.dataWatch = gobject.io_add_watch( self.socket.makefile(), gobject.IO_IN, self._handleData )
+ self._handleUpdateTimeout()
def _handleUpdateTimeout( self ):
logger.debug( "NTP: requesting timestamp" )
self.offset = None
# FIXME do everything async
- epoch = 2208988800L
- client = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
data = '\x1b' + 47 * '\0'
- client.sendto( data, ( self.server, 123 ))
- data, address = client.recvfrom( 1024 )
+ self.socket.sendto( data, ( self.server, 123 ))
+ # reenable timeout
+ return True
+
+ def _handleData( self, source, condition ):
+ epoch = 2208988800L
+ data, address = self.socket.recvfrom( 1024 )
if data:
s, f = struct.unpack( '!12I', data )[10:12]
s -= epoch
@@ -97,8 +105,6 @@ class NTPTimeSource( TimeSource ):
else:
self.offset = None
logger.warning( "NTP: no timestamp received" )
- # reenable timeout
- return True
#============================================================================#
class Time( dbus.service.Object ):
@@ -113,7 +119,7 @@ class Time( dbus.service.Object ):
self.sources.append( GPSTimeSource( self.bus ) )
self.sources.append( NTPTimeSource( self.bus ) )
- self.interval = 80
+ self.interval = 90
self.updateTimeout = gobject.timeout_add_seconds( self.interval, self._handleUpdateTimeout )
def _handleUpdateTimeout( self ):
--
FSO frameworkd Debian packaging
More information about the pkg-fso-commits
mailing list