chiark / gitweb /
reorg config - will break
[hippotat.git] / server
diff --git a/server b/server
index bdd893c8e33feaba3e044f4f083b0090db94af07..144866f4b0852a2e67933b3093a822232d723fd7 100755 (executable)
--- a/server
+++ b/server
@@ -52,7 +52,9 @@ class Client():
     if ip not in c.network:
       raise ValueError('client %s not in network' % ip)
 
-    for k in ('max_batch_down','max_queue_time','http_timeout',
+    for k in ('max_batch_down',
+              'max_queue_time',
+              'http_timeout',
               'target_requests_outstanding'):
       req = cfg.getint(cs, k)
       limit = cfg.getint('limits',k)
@@ -220,26 +222,35 @@ def start_http():
 
 #---------- config and setup ----------
         
-def process_cfg():
-  process_cfg_common_always()
-  process_cfg_server()
-  process_cfg_network()
+def process_cfg(putative_servers, putative_clients):
+  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)
+
+  for (ci,cs) in putative_clients.items():
+    cc = ConfigResults()
+    sections = cfg_process_client_common(cc,c.server,cs,ci):
+    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')
 
   try:
-    c.relay = cfg.get('virtual','relay')
+    c.relay = cfg.get(c.server, 'relay')
   except NoOptionError:
     for search in c.network.hosts():
       if search == c.server: continue
       c.relay = search
       break
 
-  process_cfg_saddrs()
-  process_cfg_clients(Client)
-
-  process_cfg_ipif('server',
-                   (('local','server'),
-                    ('peer', 'relay'),
-                    ('rnets','network')))
+  process_cfg_ipif(c,
+                   [c.server, 'DEFAULT'],
+                   (('local','vaddr'),
+                    ('peer', 'vrelay'),
+                    ('rnets','vnetwork')))
 
 common_startup(process_cfg)
 start_ipif(c.ipif_command, (lambda p,s,d: route(p,"[ipif]",s,d)))