mirror of
https://github.com/monero-project/monero.git
synced 2024-12-15 21:06:32 +02:00
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).
40 lines
1002 B
ReStructuredText
40 lines
1002 B
ReStructuredText
.. _example_asynch:
|
|
|
|
Asynchronous lookup
|
|
===================
|
|
|
|
This example performs the name lookup in the background.
|
|
The main program keeps running while the name is resolved.
|
|
|
|
Source code
|
|
-----------
|
|
|
|
::
|
|
|
|
#!/usr/bin/python
|
|
import time
|
|
import unbound
|
|
|
|
ctx = unbound.ub_ctx()
|
|
ctx.resolvconf("/etc/resolv.conf")
|
|
|
|
def call_back(my_data,status,result):
|
|
print "Call_back:", my_data
|
|
if status == 0 and result.havedata:
|
|
print "Result:", result.data.address_list
|
|
my_data['done_flag'] = True
|
|
|
|
|
|
my_data = {'done_flag':False,'arbitrary':"object"}
|
|
status, async_id = ctx.resolve_async("www.seznam.cz", my_data, call_back, unbound.RR_TYPE_A, unbound.RR_CLASS_IN)
|
|
|
|
while (status == 0) and (not my_data['done_flag']):
|
|
status = ctx.process()
|
|
time.sleep(0.1)
|
|
|
|
if (status != 0):
|
|
print "Resolve error:", unbound.ub_strerror(status)
|
|
|
|
The :meth:`unbound.ub_ctx.resolve_async` method is able to pass on any Python
|
|
object. In this example, we used a dictionary object ``my_data``.
|