Exemple #1
0
 def decode(data):
     data = decode(data)
     if type(data) is not dict: raise TypeError
     publicIP = data.get('publicIP')
     try:
         validateIPAddress(publicIP)
     except:
         publicIP = ''
     directLocations = []
     routedLocations = []
     for direct in data.get('direct', []):
         if type(direct) is not list: continue
         direct = tuple(direct)
         try:
             validateInetAddress(direct)
         except:
             continue
         directLocations.append(DirectLocation(direct))
     for routed in data.get('routed', []):
         if type(routed) is not list: continue
         if len(routed) != 2: continue
         routerAddr, routerId = routed
         if type(routerId) is not str: continue
         if type(routerAddr) is not list: continue
         routerAddr = tuple(routerAddr)
         try:
             validateInetAddress(routerAddr)
         except:
             continue
         routedLocations.append(RoutedLocation(routerAddr, routerId))
     return UserLocation(directLocations, routedLocations, publicIP)
Exemple #2
0
 def decode( data ) :
     data = decode( data )
     if type(data) is not dict : raise TypeError
     publicIP = data.get( 'publicIP' )
     try :
         validateIPAddress( publicIP )
     except :
         publicIP = ''
     directLocations = []
     routedLocations = []
     for direct in data.get('direct',[]) :
         if type(direct) is not list : continue
         direct = tuple( direct )
         try :
             validateInetAddress( direct )
         except :
             continue
         directLocations.append( DirectLocation(direct) )
     for routed in data.get('routed',[]) :
         if type(routed) is not list : continue
         if len(routed) != 2 : continue
         routerAddr,routerId = routed
         if type(routerId) is not str : continue
         if type(routerAddr) is not list : continue
         routerAddr = tuple( routerAddr )
         try :
             validateInetAddress( routerAddr )
         except :
             continue
         routedLocations.append( RoutedLocation(routerAddr,routerId) )
     return UserLocation( directLocations, routedLocations, publicIP )
Exemple #3
0
def _loadNodeCache(nodeTable):
    data = localSettings().getData('NodeCache', '')
    for addr in data.split():
        try:
            ip, port = addr.split(':')
            port = int(port)
            nodeAddr = (ip, port)
            validateInetAddress(nodeAddr)
        except:
            continue
        nodeTable.addNode(nodeAddr)
Exemple #4
0
def _loadNodeCache( nodeTable ) :
    data = localSettings().getData( 'NodeCache', '' )
    for addr in data.split() :
        try :
            ip,port = addr.split( ':' )
            port = int(port)
            nodeAddr = (ip,port)
            validateInetAddress( nodeAddr )
        except :
            continue
        nodeTable.addNode( nodeAddr )
Exemple #5
0
 def onResult( err, result) :
     del self.pingOps[pingOp]
     if err < 0 :
         pingCallback( None )
         return
     assert type(result) is list
     if (len(result) != 1) or (type(result[0]) is not list) :
         pingCallback( None )
         return
     addr = tuple(result[0])
     try :
         validateInetAddress( addr )
     except :
         pingCallback( None )
         return
     pingCallback( addr )