Giter Site home page Giter Site logo

bundy-dns / bundy Goto Github PK

View Code? Open in Web Editor NEW
136.0 136.0 41.0 29.99 MB

an authoritative DNS server

Home Page: http://bundy-dns.de/

License: Other

C++ 83.77% Python 12.55% Shell 0.42% C 0.15% Makefile 1.70% DIGITAL Command Language 0.01% Smarty 0.03% M4 0.44% Ruby 0.09% Gherkin 0.80% PLpgSQL 0.03% Perl 0.01%
c-plus-plus dns python3

bundy's People

Contributors

aldot avatar ben-han-cn avatar cstrotm avatar cyberdrake avatar dotysan avatar each avatar fxdupont avatar haikuo-zhang avatar jinmei avatar kevin-tes avatar kfujiwara avatar kj7rrv avatar marka63 avatar mat813 avatar msiodelski avatar muks avatar naokikambe avatar samorris avatar shane-kerr avatar sonylover avatar stasic avatar thozza avatar tjeb avatar tmarkwalder avatar tomaszmrugalski avatar vorner avatar wilx avatar wwencel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bundy's Issues

more unittests for bundyctl

BIND 10 trac # 237

The following don’t appear to receive any testing:

src/bin/bindctl/mycollections.py
replacement for OrderedDict?

src/bin/bindctl/bindctl-source.py (.in) This is the tool itself.
I’d like to change the original source file name too.

socket.error: AF_UNIX path too long

BIND 10 trac # 360

bash-3.00$ ./install/libexec/bind10-devel/b10-msgq —verbose
[b10-msgq] MsgQ v20091030 (Paving the DNS Parking Lot)
Traceback (most recent call last):
File “./install/libexec/bind10-devel/b10-msgq”, line 436, in
setup_result = msgq.setup()
File “./install/libexec/bind10-devel/b10-msgq”, line 171, in setup
self.setup_listener()
File “./install/libexec/bind10-devel/b10-msgq”, line 157, in setup_listener
raise e
File “./install/libexec/bind10-devel/b10-msgq”, line 150, in setup_listener
self.listen_socket.bind(self.socket_file)
socket.error: AF_UNIX path too long

(same with gcc or sunstudio build)

reporting versions

Make sure all executables report versions.

And have bind10 report versions for all its managed components when running modules as daemons or justy to get versions without running serbices.

More convenient configuration interface

BIND 10 trac # 385

Currently, config show displays only one item, even if it has subitems. It would be more convenient if some kind of dump command produced a recursive representation of the whole item with descendants (for example in JOSN).

Furthermore, setting up items one by one by commands is inconvenient as well. If there was a command that launched editor on the JOSN representation and let the user edit it. After exiting the editor, it could check syntax, if it was OK, store it, if not, ask him to edit it again.

Compilation failure in bundy::datasrc::SQLite3Accessor on OS X 10.9.2

I'm using latest master (ce5d832) and trying to compile Bundy on Mac OS X 10.9.2 with Xcode 5.1 version and all dependencies installed from homebrew. In particular, I have sqlite3 invalled in version 3.8.4.3.

Configure passes ok, but make -j9 fails after couple minutes with the following error:

Making all in datasrc
/Library/Developer/CommandLineTools/usr/bin/make all-recursive
Making all in memory
/Library/Developer/CommandLineTools/usr/bin/make all-recursive
Making all in .
make[8]: Nothing to be done for all-am'. Making all in benchmarks make[8]: Nothing to be done forall'.
Making all in .
CXXLD sqlite3_ds.la
clang: warning: argument unused during compilation: '-pthread'
Undefined symbols for architecture x86_64:
"_sqlite3_bind_int", referenced from:
bundy::datasrc::SQLite3Accessor::findPreviousName(int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::findPreviousNSEC3Hash(int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::StatementProcessor::bindInt(int, int) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::Context::bindZoneId(int) in sqlite3_accessor.o
"sqlite3_bind_int64", referenced from:
bundy::datasrc::StatementProcessor::bindInt64(int, long long) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::DiffContext::bindInt(int, int, long long) in sqlite3_accessor.o
"sqlite3_bind_text", referenced from:
bundy::datasrc::SQLite3Accessor::getZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::findPreviousName(int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::findPreviousNSEC3Hash(int, std::__1::basic_string<char, std::__1::char_traits, std::_1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::StatementProcessor::bindText(int, char const
, void (
)(void
)) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::Context::bindName(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in sqlite3_accessor.o
"_sqlite3_clear_bindings", referenced from:
bundy::datasrc::SQLite3Accessor::addZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::deleteZone(int) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::startUpdateZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, bool) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::startTransaction() in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::commit() in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::rollback() in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::addRecordToZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const (&) [6]) in sqlite3_accessor.o
...
"_sqlite3_close", referenced from:
bundy::datasrc::SQLite3Accessor::open(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::close() in sqlite3_accessor.o
"_sqlite3_column_int", referenced from:
bundy::datasrc::SQLite3Accessor::getZone(std::__1::basic_string<char, std::__1::char_traits, std::1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::(anonymous namespace)::checkSchemaVersionElement(sqlite3
, char const
) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::DiffContext::getSingleValue(bundy::datasrc::StatementID) in sqlite3_accessor.o
"_sqlite3_column_text", referenced from:
bundy::datasrc::SQLite3Accessor::findPreviousName(int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::findPreviousNSEC3Hash(int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::DiffContext::copyColumn(bundy::datasrc::StatementID, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > (&) [5], int) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::Context::copyColumn(std::__1::basic_string<char, std::__1::char_traits, std::_1::allocator > (&) [5], int) in sqlite3_accessor.o
"sqlite3_errcode", referenced from:
bundy::datasrc::(anonymous namespace)::convertToPlainChar(unsigned char const
, sqlite3
) in sqlite3_accessor.o
"_sqlite3_errmsg", referenced from:
bundy::datasrc::SQLite3Accessor::open(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::getZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::findPreviousName(int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::findPreviousNSEC3Hash(int, std::__1::basic_string<char, std::1::char_traits, std::1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::(anonymous namespace)::prepare(sqlite3
, char const
) in sqlite3_accessor.o
bundy::datasrc::(anonymous namespace)::checkSchemaVersionElement(sqlite3
, char const
) in sqlite3_accessor.o
bundy::datasrc::SQLite3Parameters::getStatement(int) in sqlite3_accessor.o
...
"_sqlite3_exec", referenced from:
bundy::datasrc::SQLite3Accessor::open(std::__1::basic_string<char, std::__1::char_traits, std::_1::allocator > const&) in sqlite3_accessor.o
"sqlite3_finalize", referenced from:
bundy::datasrc::SQLite3Accessor::close() in sqlite3_accessor.o
bundy::datasrc::(anonymous namespace)::checkSchemaVersionElement(sqlite3
, char const
) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::DiffContext::DiffContext(boost::shared_ptr<bundy::datasrc::SQLite3Accessor const> const&, int, unsigned int, unsigned int) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::Context::bindZoneId(int) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::Context::getNext(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > (&) [5]) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::Context::~Context() in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::Context::bindName(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in sqlite3_accessor.o
...
"_sqlite3_open", referenced from:
bundy::datasrc::SQLite3Accessor::open(std::__1::basic_string<char, std::_1::char_traits, std::1::allocator > const&) in sqlite3_accessor.o
"sqlite3_prepare_v2", referenced from:
bundy::datasrc::(anonymous namespace)::prepare(sqlite3
, char const
) in sqlite3_accessor.o
bundy::datasrc::(anonymous namespace)::checkSchemaVersionElement(sqlite3
, char const) in sqlite3_accessor.o
bundy::datasrc::SQLite3Parameters::getStatement(int) in sqlite3_accessor.o
"_sqlite3_reset", referenced from:
bundy::datasrc::SQLite3Accessor::getZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::addZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::deleteZone(int) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::startUpdateZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, bool) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::startTransaction() in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::commit() in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::rollback() in sqlite3_accessor.o
...
"sqlite3_step", referenced from:
bundy::datasrc::SQLite3Accessor::getZone(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::findPreviousName(int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::findPreviousNSEC3Hash(int, std::__1::basic_string<char, std::__1::char_traits, std::1::allocator > const&) const in sqlite3_accessor.o
bundy::datasrc::(anonymous namespace)::checkSchemaVersionElement(sqlite3
, char const
) in sqlite3_accessor.o
bundy::datasrc::StatementProcessor::exec() in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::DiffContext::getNext(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > (&) [5]) in sqlite3_accessor.o
bundy::datasrc::SQLite3Accessor::DiffContext::getSingleValue(bundy::datasrc::StatementID) in sqlite3_accessor.o
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[6]: *
* [sqlite3_ds.la] Error 1
make[5]: *** [all-recursive] Error 1
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

msgq too noisy if missing directory for socket file

BIND 10 trac # 361

[bind10] Started b10-msgq (PID 20052)
Traceback (most recent call last):
File “/home/reed/opt/bind10/libexec/bind10-devel/b10-msgq”, line 436, in
setup_result = msgq.setup()
File “/home/reed/opt/bind10/libexec/bind10-devel/b10-msgq”, line 171, in setup
self.setup_listener()
File “/home/reed/opt/bind10/libexec/bind10-devel/b10-msgq”, line 157, in setup_listener
raise e
File “/home/reed/opt/bind10/libexec/bind10-devel/b10-msgq”, line 150, in setup_listener
self.listen_socket.bind(self.socket_file)
socket.error: [Errno 2] No such file or directory

Traceback (most recent call last):
File “/home/reed/opt/bind10/sbin/bind10”, line 766, in
main()
File “/home/reed/opt/bind10/sbin/bind10”, line 717, in main
startup_result = boss_of_bind.startup()
File “/home/reed/opt/bind10/sbin/bind10”, line 302, in startup
c_channel.process.kill()
File “/usr/pkg/lib/python3.1/subprocess.py”, line 1337, in kill
self.send_signal(signal.SIGKILL)
File “/usr/pkg/lib/python3.1/subprocess.py”, line 1327, in send_signal
os.kill(self.pid, sig)
OSError: [Errno 3] No such process

Maybe msgq should create missing directory if needed. If that is the case maybe the socket file name should be separated into directory name and the basename.

suggested cleanups for the python bindings of libdns++

BIND 10 trac # 317

  • we should use stricter compiler warnings
  • we should use unnamed namespace instead of translation unit (.cc)specific static variables and functions

some method functions can be more “constified”. for simple functions like those in these wrappers this may not be a big deal, but it’s generally a good idea.

Put spec files together in source tree

BIND 10 trac # 243

Originally, the idea of the .spec file was to have one single thing that a new module could simply send to the configuration manager or other interested software pieces, that described what the module expects and can handle in terms of commands an configuration.

The idea was that on startup, it reads in this file, sends it to ConfigurationManager, and all would be fine. However, we’re running into a few snags.

One is that other modules might need a configuration value of another module (e.g. xfrin needs the location of the database_file from auth right now, this example may change in the future but there will probably be others). For that we have the add_remote_config() and get_remote_config_value() functions in CCSession.

However, since the only real fixed pointer to what may be in the config is this spec file, the module wanting data from another must have access to it. Which isn’t necessarily a problem, but the location of the file might be when we run from source tree (in which case all spec files are in different locations, and we now end up with hardcoded src/bin/auth paths etc.).

item descriptions for module specs

BIND 10 trac # 379

Add item_description for self-documenting specification items. We already have command_description and module_description.

BDB style Datasource

BIND 10 trac # 282

Task #9 from Face to Face

BDB style Datasource
including the config file and tests

make error rrl_key.cc

Hello,
I tried to compile bundy on my raspberry pi. But it breaks with this error:

make[5]: Entering directory `/root/bundy/src/lib/auth'
  CXX    rrl_key.lo
rrl_key.cc: In member function 'std::string bundy::auth::detail::RRLKey::getIPText(size_t, size_t) const':
rrl_key.cc:107:14: error: 'struct sockaddr_in6' has no member named 'sin6_len'
rrl_key.cc:114:14: error: 'struct sockaddr_in' has no member named 'sin_len'
make[5]: *** [rrl_key.lo] Fehler 1
make[5]: Leaving directory `/root/bundy/src/lib/auth'
make[4]: *** [all-recursive] Fehler 1
make[4]: Leaving directory `/root/bundy/src/lib/auth'
make[3]: *** [all-recursive] Fehler 1
make[3]: Leaving directory `/root/bundy/src/lib'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/root/bundy/src'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/root/bundy'
make: *** [all] Fehler 2

Sry for my bad english. xD I do not speak English well.
If someone can German, that would be easier. ^^

"bundy" Sequenced Startup

BIND 10 trac ticket # 230

BoB: do not start other processes until specific processes are started (sequenced startup) (3 days) (Task 93)

Bundy fails to build with Python 3.4

Using fresh installation on OS X 10.9.2. Python installed using homebrew.

$ python3.4 --version
Python 3.4.0
configure succeeds, then build fails:

Making all in dns
/Library/Developer/CommandLineTools/usr/bin/make all-recursive
Making all in .
make[6]: Nothing to be done for all-am'. Making all in tests Making all in testdata /Library/Developer/CommandLineTools/usr/bin/make all-am make[8]: Nothing to be done forall-am'.
Making all in .
make[7]: Nothing to be done for `all-am'.
Making all in python
Making all in .
CXX libbundy_pydnspp_la-name_python.lo
name_python.cc:610:1: error: missing field 'tp_finalize' initializer [-Werror,-Wmissing-field-initializers]
};
^
name_python.cc:665:1: error: missing field 'tp_finalize' initializer [-Werror,-Wmissing-field-initializers]
};
^
2 errors generated.
make[7]: *** [libbundy_pydnspp_la-name_python.lo] Error 1

lettuce test failures due to corrupted log output

This is a long-lasting known issue, but presumably since I've migrated to MacOS X Mavericks it seems to happen more frequently.

lettuce tests intermittently fail because log output dumped to stderr is (seemingly) mixed by logs from multiple processes and corrupted as a result:

2014-05-01 20:42:50.679 DEBU2 0[1b4u-n0d5y--0c1m d2c0t:l4.2c:m5d0c.t6l7/91

xfrout: Rename UNIX_SOCKET_FILE and libxfr

BIND 10 trac ticket # 236

This ticket derives from ticket #224. Following is Jelte’s comment.

Only comment is that I think UNIX_SOCKET_FILE is a bad name, since this is specifically for libxfr (which is also a bad name imho). But that may be another ticket (and i want to get the python wrappers merged first, so I suggest we create a separate ticket for this). Oh and while we’re at it, should that be a configurable value or do we consider this ‘core and unchanging’?

allow loadzone/datasrc to support different classes

BIND 10 trac # 295

The python code at src/lib/python/isc/datasrc/master.py has

if rrclass.lower() != ‘in’:
raise MasterFileError(“CH and HS zones not supported”)

Even when commented out, bundy-loadzone will load a CH zone as IN.

Expired zone should not be served

BIND 10 trac # 337

Currently, when zonemgr expires one zone, auth/xfrout module doesn’t know it, so, the expired zone is still served. There should be one way to mark the zone.

Boss more careful shutdown

I had an b10-xfrout running since March 23 (with nothing else using it). I couldn’t kill it except with SIGKILL.

Here is a bind10 shutdown (for a different xfrout):

Sending SIGTERM to b10-xfrout (PID 1267).
Sending SIGTERM to b10-cfgmgr (PID 15979).
Process b10-cfgmgr (PID 15979) died.
Sending SIGKILL to b10-xfrout (PID 1267).
Process b10-xfrout (PID 1267) died.

This ticket is opened to track down why b10-xfrout won’t exit on its own.

msqg report component when problem

BIND 10 trac # 359

[b10-msgq] Closing socket fd 10
[b10-msgq] Receive error: EOF

Please have msgq report what component(s) it has problems with.

libdns++: revisit rdata::compareNames()

BIND 10 trac # 56

we may want to move rdata::compareNames() to the name module (name.{h.cc}),
and may even want to make it a member function of the Name class.

Opinions vary, but not critical, so we’ll revisit this as a post-year1 thing.

frin.publish_xfrin_news is not tested explicitly

BIND 10 trac # 392
According to the coverage tool the case of xfr_result == XFRIN_OK isn’t tested. I also suspect the failure case just happens to be covered as a side effect of other test. We should test this method expliclty.

we should use more specific tests than EXPECT_TRUE

BIND 10 trac # 398

In general, when we do

EXPECT_TRUE(a b);

it’s better to be changed to:

EXPECT_(a, b);

because when the test fails the latter will provide more detailed information (the values of a and b).

ax_bundy_rpath.m4 doesn't work

There are couple nuances here.

  1. ax_bundy_rpath.m4 checks whether linker supports -R flag. It then sets ISC_RPATH_FLAG. It probably should set BUNDY_RPATH_FLAG instead. Later in configure.ac the BUNDY_RPATH_FLAG is checked. As it is never set, -R parameter is never used.
  2. When passed -R to g++ from Xcode 5.1, it just prints out a warning, but continues. When passed the same parameter to linker, an error is reported. The macro assumes that if the compilation finished successfully, then the parameter is supported. That is not true.

Personally, I consider this an inconsistency in Apple implementation. It should either fail everywhere or be accepted everywhere.

I have limited understanding of how that should work. But would passing also -Werror (so warnings are promoted to errors) be the way to go? I did exactly that in Kea (see http://kea.isc.org/ticket/3449 and trac3449 in Kea repo).

revisit cc::Session establish/disconnect mode

BIND 10 trac # 287

We may have to revist the C++ API of how to establish cc::Session:

  • we should clarify who is responsible for establishing the session, especially if the session object is passed to a different module
  • we may want to detect an attempot of doubly establishing a session
  • same for disconnect
  • same for other operations that require an established session: send/receive, etc. should we support automatic session establishment?

Another planned refacotring with a generalized ASIO link may affect the design decision on these.

A backlog item.

build system: use py-compile for the src/bin python programs

BIND 10 trac # 78

I am committing improvements for Makefile.am for the src/lib/python modules so they will use the py-compile. Get that by doing “autoreconf —install”. This makes it so the installation gets the compiled pyc and pyo optimized versions.

Next part is to handle the src/bin/ python programs, but some go to libexec. I am opening this ticket as a reminder to do this sometime later.

introduce the concept of configuration generation ID

This is derived from an original BIND 10 task: https://bind10.isc.org/ticket/2918

We'll need this for completing the shared memory support with memmgr

Note: in principle, we need something like this in general when multiple
modules can refer to a common configuration to avoid consistency of
the timing to apply config updates. So this is a rather generic
issue, but is just more substantial in the case of memmgr and its
users.

make b10 programs runnable standalone

BIND 10 trac # 208

For convenience of development we should:

  • allow individual bundy-xxx programs in a stand alone mode
  • (to do this) add some kind of option to bypass the need for establishing a connection to msgq
  • (also to do this) if/when we develop a separate socket creator process, add some kind of option so that each bundy-xxx program can directly open the necessary sockets (we should provide some abstraction to mimize the work at the client side and to avoid code duplication)

A backlog item.

redesign statistics spec

Ticket #1972 (new task)

Reported by: jinmei
Priority: high
Component: statistics

The current way of defining statistics counters is not really
manageable. See auth.spec: we repeat something like this for 16
times:

      {
        "item_name": "opcode.query",
        "item_type": "integer",
        "item_optional": true,
        "item_default": 0,
        "item_title": "Received query requests",
        "item_description": "The number of total request counts whose opcode is query"
      },

for the 16 per-opcode statistics counters. This approach won't be
feasible for larger scale counters such as per RR-type ones. It's
also not clear how we define the spec of per zone counters.
This is a design task where we revisit the spec design so that it will
be applicable to various types of counters including the above ones.

bundy-auth doesn’t handle mixture of DNAME and NS

BIND 10 trac # 321

Assume a bundy-auth server has authority for the zone “jinmei.org”, which has the following RRs in its data source:

sec.jinmei.org. 600 IN NS ns.sec.jinmei.org.
3600 IN DNAME example.com.

(Note: this is an invalid zone configuration.)

In this case, BIND 9 ignores the NS and exclusively use DNAME for names equal to or under sec.jinmei.org. BIND 10 still returns a NS referral if we ask for sec.jinmei.org/NS.

There are several problems around this symptom:

  • naively accepting such a broken configuration at parse/load time may not be a good thing anyway (in this sense BIND 9 is also not really good)
  • but specifically for BIND 10, since the underlying data source may be non captive, the middle layer of the data source module cannot always assume the data stored in data sources is valid anyway. what should we do?
  • if we decide to accept this type of half-broken configuration, what should b10-auth return? We could add yet another if-block in the data source code to deal with this case, but, personally, I (jinmei) feel the data source code is already messed up with many such case-by-case fixes and has become to complicated to comprehensive and maintain. So I’d rather solve this issue by revisting the whole logic and refactoring the code cleanly (though I’m not sure if it’s a realistic path)

review request: support for faster shmem loading

I'd like to get the shmemfix2 branch reviewed and hopefully integrated.

It enhances the share memory/mmap support so the loading/updating can be faster exploiting the underlying data source:

  • if in-memory SOA seria is identical to that of the data source, load is skipped
  • if these are different but the difference between these two versions can be retrieved from the data source, apply the diff instead of loading the entire zone

To implement the latter, this branch also includes the completion of zone data removing.

The branch roughly corresponds to the following BIND 10 tickets:
https://bind10.isc.org/ticket/2913
https://bind10.isc.org/ticket/2860
https://bind10.isc.org/ticket/2752
https://bind10.isc.org/ticket/2912

and the end of each of the corresponding part is marked in the commit log with the number. For example, [shmemfix2/2860] is the last commit for the part corresponding to ticket #2860. Review can be done incrementally for each part.

Make errors

Im on CentOS 6.5 x86_64. Fresh installation and fully updated.
Im getting this at the end of the make.

zone_data.cc: In member function ‘void bundy::datasrc::memory::ZoneData::removeNode(bundy::util::MemorySegment&, bundy::datasrc::memory::ZoneNode_)’:
zone_data.cc:265: error: no match for ‘operator==’ in ‘node == ((bundy::datasrc::memory::ZoneData_)this)->bundy::datasrc::memory::ZoneData::origin_node_’
make[8]: *** [zone_data.lo] Error 1
make[7]: *** [all-recursive] Error 1
make[6]: *** [all] Error 2
make[5]: *** [all-recursive] Error 1
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Configure command:
[root@dns1 bundy]# ./configure --prefix=/opt/bundy10 --with-pythonpath=/opt/python3/bin/python3 --with-botan-config=/opt/botan/bin/botan-config-1.10 --with-log4cplus=/opt/log4cplus/ --without-shared-memory

RR class for xfrin should be specifiable

BIND 10 trac # 194

Right now we can only specify the zone name via the command channel for xfrin.

At least the RR class (whose default should be IN) should be able to be specified. If/when we support something like views, the view name should also be specifiable.

See also trac #185 and r1889.

I’ll keep this ticket in the backlog.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.