Git Repository Public Repository

nip.io

URLs

Copy to Clipboard

Diff Revisions a29e91 ... vs e36e52 ... for src/backend.py

Diff revisions: vs.
  @@ -1,35 +1,41 @@
1 1 #!/usr/bin/python
2 2
3 - import sys
4 - import re
5 - import os
6 3 import ConfigParser
4 + import os
5 + import re
6 + import sys
7 +
8 + DEBUG = 0
7 9
8 - DEBUG=0
9 10
10 11 def log(msg):
11 12 sys.stderr.write('backend (%s): %s\n' % (os.getpid(), msg))
12 13
13 14
14 15 def write(*l):
15 - args=len(l)
16 + args = len(l)
16 17 c = 0
17 18 for a in l:
18 19 c += 1
19 - if DEBUG: log('writing: %s' % a)
20 + if DEBUG:
21 + log('writing: %s' % a)
20 22 sys.stdout.write(a)
21 23 if c < args:
22 - if DEBUG: log('writetab')
24 + if DEBUG:
25 + log('writetab')
23 26 sys.stdout.write('\t')
24 - if DEBUG: log('writenewline')
27 + if DEBUG:
28 + log('writenewline')
25 29 sys.stdout.write('\n')
26 30 sys.stdout.flush()
27 31
28 32
29 33 def get_next():
30 - if DEBUG: log('reading now')
34 + if DEBUG:
35 + log('reading now')
31 36 l = sys.stdin.readline()
32 - if DEBUG: log('read line: %s' % l)
37 + if DEBUG:
38 + log('read line: %s' % l)
33 39 return l.strip().split('\t')
34 40
35 41
  @@ -47,18 +53,18 @@
47 53 if not os.path.exists(fname):
48 54 log('%s does not exist' % fname)
49 55 sys.exit(1)
50 -
56 +
51 57 fp = open(fname)
52 58 config = ConfigParser.ConfigParser()
53 59 config.readfp(fp)
54 60 fp.close()
55 61
56 62 self.id = config.get('soa', 'id')
57 - self.soa = '%s %s %s' % (config.get('soa', 'ns'), config.get('soa','hostmaster'), self.id)
63 + self.soa = '%s %s %s' % (config.get('soa', 'ns'), config.get('soa', 'hostmaster'), self.id)
58 64 self.domain = config.get('main', 'domain')
59 65 self.ip_address = config.get('main', 'ipaddress')
60 66 self.ttl = config.get('main', 'ttl')
61 -
67 +
62 68 for entry in config.items('nameservers'):
63 69 self.name_servers[entry[0]] = entry[1]
64 70
  @@ -80,7 +86,8 @@
80 86
81 87 while True:
82 88 cmd = get_next()
83 - if DEBUG: log(cmd)
89 + if DEBUG:
90 + log(cmd)
84 91
85 92 if len(cmd) < 6:
86 93 log('did not understand: %s' % cmd)
  @@ -108,24 +115,28 @@
108 115 write('END')
109 116
110 117 def handle_subdomains(self, qname):
111 - subdomain = qname[0:qname.find(self.domain)-1]
118 + subdomain = qname[0:qname.find(self.domain) - 1]
112 119
113 120 subparts = subdomain.split('.')
114 121 if len(subparts) < 4:
115 - if DEBUG: log('subparts less than 4')
122 + if DEBUG:
123 + log('subparts less than 4')
116 124 self.handle_self(qname)
117 125 return
118 126
119 127 ipaddress = subparts[-4:]
120 - if DEBUG: log('ip: %s' % ipaddress)
128 + if DEBUG:
129 + log('ip: %s' % ipaddress)
121 130 for part in ipaddress:
122 131 if re.match('^\d{1,3}$', part) is None:
123 - if DEBUG: log('%s is not a number' % part)
132 + if DEBUG:
133 + log('%s is not a number' % part)
124 134 self.handle_self(qname)
125 135 return
126 136 parti = int(part)
127 137 if parti < 0 or parti > 255:
128 - if DEBUG: log('%d is too big/small' % parti)
138 + if DEBUG:
139 + log('%d is too big/small' % parti)
129 140 self.handle_self(qname)
130 141 return
131 142
  @@ -152,8 +163,6 @@
152 163
153 164
154 165 if __name__ == '__main__':
155 -
156 166 backend = DynamicBackend()
157 167 backend.configure()
158 168 backend.run()
159 -