a85b5759f3
These files were pulled from the 1.6.3 release tarball. This new version builds against OpenSSL version 1.1 which will be the default in the new Debian Stable which is due to be released RealSoonNow (tm).
41 lines
1.1 KiB
ReStructuredText
41 lines
1.1 KiB
ReStructuredText
.. _example_setup_ctx:
|
|
|
|
Lookup from threads
|
|
===================
|
|
|
|
This example shows how to use unbound module from a threaded program.
|
|
In this example, three lookup threads are created which work in background.
|
|
Each thread resolves different DNS record.
|
|
|
|
Source code
|
|
-----------
|
|
|
|
::
|
|
|
|
#!/usr/bin/python
|
|
from unbound import ub_ctx, RR_TYPE_A, RR_CLASS_IN
|
|
from threading import Thread
|
|
|
|
ctx = ub_ctx()
|
|
ctx.resolvconf("/etc/resolv.conf")
|
|
|
|
class LookupThread(Thread):
|
|
def __init__(self,ctx, name):
|
|
Thread.__init__(self)
|
|
self.ctx = ctx
|
|
self.name = name
|
|
|
|
def run(self):
|
|
print "Thread lookup started:",self.name
|
|
status, result = self.ctx.resolve(self.name, RR_TYPE_A, RR_CLASS_IN)
|
|
if status == 0 and result.havedata:
|
|
print " Result:",self.name,":", result.data.address_list
|
|
|
|
threads = []
|
|
for name in ["www.fit.vutbr.cz","www.vutbr.cz","www.google.com"]:
|
|
thread = LookupThread(ctx, name)
|
|
thread.start()
|
|
threads.append(thread)
|
|
|
|
for thread in threads:
|
|
thread.join()
|