X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=server;h=52d83b50a95953f9204bbb1890726fa913126c24;hb=8d374606ca84ba38d068daa4d077bce5fd337e18;hp=144866f4b0852a2e67933b3093a822232d723fd7;hpb=c7fb640effd718bb66548327c4feddcc64416234;p=hippotat.git diff --git a/server b/server index 144866f..52d83b5 100755 --- a/server +++ b/server @@ -24,7 +24,7 @@ def route(packet, iface, saddr, daddr): if dclient is not None: lt('client') dclient.queue_outbound(packet) - elif daddr == c.server or daddr not in c.network: + elif daddr == c.vaddr or daddr not in c.vnetwork: lt('inbound') queue_inbound(packet) elif daddr == relay: @@ -37,11 +37,10 @@ def route(packet, iface, saddr, daddr): #---------- client ---------- class Client(): - def __init__(self, ip, cs, pw): + def __init__(self, ip, cc): # instance data members self._ip = ip - self._cs = cs - self.pw = pw + self.cc = cc self._rq = collections.deque() # requests # self._pq = PacketQueue(...) # plus from config: @@ -49,17 +48,9 @@ class Client(): # .max_queue_time # .target_requests_outstanding - if ip not in c.network: + if ip not in c.vnetwork: raise ValueError('client %s not in network' % ip) - for k in ('max_batch_down', - 'max_queue_time', - 'http_timeout', - 'target_requests_outstanding'): - req = cfg.getint(cs, k) - limit = cfg.getint('limits',k) - self.__dict__[k] = min(req, limit) - self._pq = PacketQueue(str(ip), self.max_queue_time) if ip in clients: @@ -223,13 +214,14 @@ def start_http(): #---------- config and setup ---------- def process_cfg(putative_servers, putative_clients): + global c c = ConfigResults() c.server = cfg.get('SERVER','server') - process_cfg_common(c, c.server) - process_cfg_saddrs(c, c.server) - process_cfg_vnetwork(c, c.server) - process_cfg_vaddr(c, c.server) + cfg_process_common(c, c.server) + cfg_process_saddrs(c, c.server) + cfg_process_vnetwork(c, c.server) + cfg_process_vaddr(c, c.server) for (ci,cs) in putative_clients.items(): cc = ConfigResults() @@ -237,16 +229,17 @@ def process_cfg(putative_servers, putative_clients): if not sections: continue cfg_process_client_limited(cc,c.server,sections, 'max_batch_down') cfg_process_client_limited(cc,c.server,sections, 'max_queue_time') + Client(ci) try: c.relay = cfg.get(c.server, 'relay') except NoOptionError: - for search in c.network.hosts(): - if search == c.server: continue + for search in c.vnetwork.hosts(): + if search == c.vaddr: continue c.relay = search break - process_cfg_ipif(c, + cfg_process_ipif(c, [c.server, 'DEFAULT'], (('local','vaddr'), ('peer', 'vrelay'),