Ubuntu 18.04, unboud 1.6.7 and python module
Christian Kelinski
c.kelinski at emetriq.com
Thu Aug 13 08:21:10 UTC 2020
Hi Wouter,
thanks for your suggestions which I implemented!
I was able to get the script running with a self compiled Ubuntu 1.6.7 (the version used by Ubuntu 18.04) without any problems (with qstate.qinfo.qname_str) so I think the problem is with the Ubuntu 18.04 package.
The python-unbound package behaves a bit odd - it installs a python2 module but strace shows unbound is using python3. I opened a bug report @ launchpad.net.
Greetings from Hamburg
Christian
Am 05.08.20, 12:35 schrieb "Unbound-users im Auftrag von Wouter Wijngaards via Unbound-users" <unbound-users-bounces at lists.nlnetlabs.nl im Auftrag von unbound-users at lists.nlnetlabs.nl>:
Hi Christian,
If I try this with the latest version from the code repository, I can
make it work just fine. I guess it would also work with unbound 1.11.0.
It turns out to work just fine with qname_str=qstate.qinfo.qname_str
Also the qnamelisttostr can work with ".".join.
The python_script variable has changed to a config_strlist in the newer
releases, and thus I included something to print that correctly.
The list for that python_script config parameter means you can load
multiple python scripts by having more than one python-script: "file"
line in the config file, and in that order, having more than one
"python" element in the module-config list of modules. For here, it is
only a type change and the script is easily fixed to print that right.
Or print env.cfg.python_script.str the first element in the list.
Perhaps these issues are already fixed as part of Python-3 related fixes
in the code base.
Here is the changes:
--- test2.py.orig 2020-08-05 12:06:38.739887060 +0200
+++ test2.py 2020-08-05 12:25:21.826634657 +0200
@@ -4,13 +4,17 @@
debugModule = True
def qnameListToStr( qname_list ):
- qname_list_decode = list()
- for l in qname_list:
- qname_list_decode.append( l.decode('utf-8') )
- return ".".join( qname_list_decode )
+ return ".".join(qname_list)
+
+def strlisttostr( str_list ):
+ thelist = list()
+ while str_list is not None:
+ thelist.append(str_list.str)
+ str_list = str_list.next
+ return " ".join( thelist )
def init_standard(id, env):
- log_info("aws-hostnames: init called, module id is %d port: %d
script: %s verbosity: %s" % (id, env.cfg.port, env.cfg.python_script,
env.cfg.verbosity))
+ log_info("aws-hostnames: init called, module id is %d port: %d
script: %s verbosity: %s" % (id, env.cfg.port,
strlisttostr(env.cfg.python_script), env.cfg.verbosity))
# Build pattern for checking, pattern matches everything like
# ip-[0-9]-[0-9]-[0-9]-[0-9].domain.name
@@ -39,6 +43,7 @@
return True
elif event == MODULE_EVENT_MODDONE:
+ #qname_str = qstate.qinfo.qname_str
qname_str = qnameListToStr(qstate.qinfo.qname_list)
log_info("python: MODDONE with rcode '%s' and priming '%s' and
query '%s' of type '%s'" % (
qstate.return_rcode, qstate.is_priming, qname_str,
qstate.qinfo.qtype_str
Best regards, Wouter
On 05/08/2020 11:41, Christian Kelinski via Unbound-users wrote:
> Hi,
>
> we have a unbound python modul up and running which resolves Hostnames like ip-1-2-3-4.some.domain to 1.2.3.4. Currently our environment is Ubuntu 16.04 and unbound 1.5.8.
>
> Since Ubuntu 16.04 is EOL in some months I want to update our Servers to Ubuntu 18.04. But the module is not working anymore.
>
> First it seems that accessing qstate.qinfo.qname_str in operate() doesn't work. I get an error:
> error: pythonmod: Exception occurred in function operate, event: module_event_moddone
>
> No big deal since the info could be retrieved from qstate.qinfo.qname_list
>
> But when calling msg.set_return_msg(qstate) with a DNSMessage Object which has the answer appended it always fails (and unbound returns SERVFAIL). I compiled the documentation for unbound 1.6.7 and tried the "Response generation" example without luck.
>
> I both tried python2 and python3 with same results.
>
> With some small modifications I got the module up and running with Ubuntu 20.04 which ships with unbound 1.9.4. This modified version also works with Ubuntu 18.04 and a from source compiled unbound 1.11.0.
>
> I attached the module to this E-Mail. Doing a "dig
>
> I seems I'm missing something since - based on the documentation - I doing it okay __ Has someone experienced something similar with Ubuntu 18.04/unbound 1.6.7?
>
> Thanks in advance and thanks for creating such a lovely software!
> Christian
>
>
> [https://www.emetriq.com] <https://www.emetriq.com/whitepaper-reports/programmatic-data-playbook/>
>
> [https://www.emetriq.com] <https://www.emetriq.com>
>
> Whitepaper, Analysen & Reports rund um Data-driven Advertising gibt es auch im monatlichen E-Mail-Newsletter emetriq Data Update <https://www.emetriq.com/newsletter/?utm_source=emetriq_mail&utm_medium=outlook&utm_campaign=newsletter> .
>
> [https://www.emetriq.com] <https://www.facebook.com/emetriq/> [https://www.emetriq.com] <https://www.instagram.com/emetriq_at_work/?hl=de> [https://www.emetriq.com] <https://twitter.com/emetriq?lang=de> [https://www.emetriq.com] <https://www.xing.com/companies/emetriqgmbh>
>
> emetriq GmbH
> Vorsetzen 35
> 20459 Hamburg
>
> Sitz der Gesellschaft: Bonn
> Handelsregister: AG Bonn, HRB 20117
> Geschäftsführer: Claas Voigt, Stephan Jäckel
> ________________________________
> Wir sind Mitglied im BVDW (Bundesverband Digitale Wirtschaft)
> ________________________________
> Datenschutz ist emetriq sehr wichtig. Weitere Informationen finden Sie in unseren Datenschutzhinweisen unter www.emetriq.com/datenschutz <https://www.emetriq.com/datenschutz> .
>
> This e-mail is confidential and is intended for the addressee(s) only.
> If you are not the named addressee you may not use it, copy it or
> disclose it to any other person. If you received this message in error
> please notify the sender immediately.
>
More information about the Unbound-users
mailing list