[svn] commit: r2539 - /branches/trac256/src/lib/dns/util/README

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Jul 20 06:11:13 UTC 2010


Author: jinmei
Date: Tue Jul 20 06:11:13 2010
New Revision: 2539

Log:
review comment: describe why the interfaces under util should be hidden.

Modified:
    branches/trac256/src/lib/dns/util/README

Modified: branches/trac256/src/lib/dns/util/README
==============================================================================
--- branches/trac256/src/lib/dns/util/README (original)
+++ branches/trac256/src/lib/dns/util/README Tue Jul 20 06:11:13 2010
@@ -2,11 +2,30 @@
 implementations that are internally used in the DNS library
 (libdns++).
 
-The header files in this directory are not intended to be installed.
-Likewise, classes and public functions defined in this directory are
-not intended to be used outside libdns++, although we cannot prohibit
-it at the language level.
+The functionality provided in these tools is generally available in
+other external or perhaps system supplied libraries.  The basic
+development policy of BIND 10 is to avoid "reinventing wheels" unless
+they belong to the exact technology area that BIND 10 targets (e.g.,
+DNS).  However, libdns++ is a very core part of BIND 10, and is also
+intended to be used as a public library, so dependency from libdns++
+to external libraries should be minimized.  The utilities in this
+directory are provided balancing two policies and as a kind of
+compromise.
+
+The header files in this directory are therefore not intended to be
+installed.  Likewise, classes and public functions defined in this
+directory are not intended to be used outside libdns++, although we
+cannot prohibit it at the language level.
 
 They are not even expected to be used in other modules of BIND 10 than
-libdns++.  Although there seem to be some violations as of this
-writing, we should eventually fix it.
+libdns++ based on the basic policy explained above.  Other modules
+should only rely on the DNS specific interface that may internally
+rely on these utility interfaces, or should use external libraries if
+the other module really needs to use the utility feature directly.
+There seem to be some violations as of this writing, but we should
+eventually fix it.  A notable example is the SHA1 interfaces.  They
+are defined here in the context of NSEC3 processing, but, in fact,
+they are not even used from any of the other libdns++ classes or
+functions.  The SHA1 related interfaces should be moved to the
+application that needs it or the application should only access it
+through DNS specific interfaces defined in libdns++.




More information about the bind10-changes mailing list