Runs a DNSServer instance as a daemon thread (killed by program exit)
(self)
| 125 | return retVal |
| 126 | |
| 127 | def run(self): |
| 128 | """ |
| 129 | Runs a DNSServer instance as a daemon thread (killed by program exit) |
| 130 | """ |
| 131 | |
| 132 | def _(): |
| 133 | try: |
| 134 | self._running = True |
| 135 | self._initialized = True |
| 136 | |
| 137 | while True: |
| 138 | data, addr = self._socket.recvfrom(1024) |
| 139 | _ = DNSQuery(data) |
| 140 | self._socket.sendto(_.response("127.0.0.1"), addr) |
| 141 | |
| 142 | with self._lock: |
| 143 | self._requests.append(_._query) |
| 144 | |
| 145 | except KeyboardInterrupt: |
| 146 | raise |
| 147 | |
| 148 | finally: |
| 149 | self._running = False |
| 150 | |
| 151 | thread = threading.Thread(target=_) |
| 152 | thread.daemon = True |
| 153 | thread.start() |
| 154 | |
| 155 | if __name__ == "__main__": |
| 156 | server = None |