[bind10-dev] python bindings

Francis Dupont fdupont at isc.org
Tue Dec 15 16:16:40 UTC 2009


I looked at python bindings for BIND 10 (the Name class from parkinglot),
I have some comments:
 - there is a dependency on *recent* versions of automake:
  old versions of automake (i.e., the version you should get on most
  distribs per default) fail to recognize python 3

 - to build a dynamic object (i.e., xxx.so) as needed for a python
  extension the code must be compiled with -fPIC. As it has a low
  impact I suggest to make this option the default for libraries.

 - a hash method is really needed (not only for python but I can't see
  a DNS tool without a hashtable with names as keys)

 - for DNSSEC we need a canonize/specialized toWire/..., at least something!

 - I have a mixed opionion about to_unicode, IMHO it is more about IDN
  support (i.e., when there will be an IDN support it will be in it)

 - for using the C++ class in dnspython, set/get methods to labels
  (a vector of labels?) is required. (Note dnspython is python 2.6,
  not python 3).

 - the parkinglot code is not complete, what code I should use?
  I need something I can easily compile (i.e., generate libdns.a)
  and where no interesting function returns an unresolved reference
  on (late) linking. It seems branches/jinmei-dnsmessageapi is
  better than parkinglot, Jinmei?

 - the bug exists for parkinglot but I am afraid it is shared:
  Name::Name("") raises a runtime error.

Regards

Francis Dupont <fdupont at isc.org>

PS: my strategy is to write an standard extension in C/C++ and
as it generates builtin types to encapsulate C++ classes in
direct python subclasses (i.e., class Name(cName): ).
I have still to port the buffer stuff (bytes <-> buffer conversion).



More information about the bind10-dev mailing list