- p11-kit -l # ensure it's ok
script:
- ./bootstrap
- - ./configure --with-modules='bind geoip gmysql gpgsql gsqlite3 mydns tinydns remote random opendbx ldap lmdb' --enable-unit-tests --enable-tools --enable-remotebackend-zeromq --enable-experimental-pkcs11
+ - ./configure --with-dynmodules='bind geoip gmysql gpgsql gsqlite3 mydns tinydns remote random opendbx ldap lmdb' --with-modules='' --enable-unit-tests --enable-tools --enable-remotebackend-zeromq --enable-experimental-pkcs11
- make -k dist
- make -k -j 4
- make -k install DESTDIR=/tmp/pdns-install-dir
be = 0;
try {
// setup minimum arguments
- ::arg().set("module-dir")="";
+ ::arg().set("module-dir")="./.libs";
new RemoteLoader();
BackendMakers().launch("remote");
// then get us a instance of it
be = 0;
try {
// setup minimum arguments
- ::arg().set("module-dir")="";
+ ::arg().set("module-dir")="./.libs";
new RemoteLoader();
BackendMakers().launch("remote");
// then get us a instance of it
be = 0;
try {
// setup minimum arguments
- ::arg().set("module-dir")="";
+ ::arg().set("module-dir")="./.libs";
new RemoteLoader();
BackendMakers().launch("remote");
// then get us a instance of it
be = 0;
try {
// setup minimum arguments
- ::arg().set("module-dir")="";
+ ::arg().set("module-dir")="./.libs";
new RemoteLoader();
BackendMakers().launch("remote");
// then get us a instance of it
be = 0;
try {
// setup minimum arguments
- ::arg().set("module-dir")="";
+ ::arg().set("module-dir")="./.libs";
new RemoteLoader();
BackendMakers().launch("remote");
// then get us a instance of it
be = 0;
try {
// setup minimum arguments
- ::arg().set("module-dir")="";
+ ::arg().set("module-dir")="./.libs";
new RemoteLoader();
BackendMakers().launch("remote");
// then get us a instance of it
//! Loads a module and reports it to all UeberBackend threads
bool UeberBackend::loadmodule(const string &name)
{
+ L<<Logger::Warning <<"Loading '"<<name<<"'" << endl;
+
void *dlib=dlopen(name.c_str(), RTLD_NOW);
-
+
if(dlib == NULL) {
- L<<Logger::Error<<"Unable to load module '"<<name<<"': "<<dlerror() << endl;
- if(name.find("gsqlite3")!=string::npos)
- L<<Logger::Warning <<"Trying to load gsqlite3backend? Make sure pdns_server was compiled with sqlite3!" <<endl;
+ L<<Logger::Error <<"Unable to load module '"<<name<<"': "<<dlerror() << endl;
return false;
}
-
+
return true;
}
tf.seek(0, os.SEEK_SET) # rewind
subprocess.check_call(["sqlite3", SQLITE_DB], stdin=tf)
- pdnscmd = ("../pdns/pdns_server --daemon=no --local-port=5300 --socket-dir=./ --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec --send-root-referral --experimental-dnsupdate=yes --cache-ttl=0 --no-config --gsqlite3-dnssec=on --gsqlite3-database="+SQLITE_DB+" --experimental-json-interface=yes --webserver=yes --webserver-port="+WEBPORT+" --webserver-address=127.0.0.1 --webserver-password="+WEBPASSWORD).split()
+ pdnscmd = ("../pdns/pdns_server --daemon=no --local-port=5300 --socket-dir=./ --module-dir=../regression-tests/modules --no-shuffle --launch=gsqlite3 --gsqlite3-dnssec --send-root-referral --experimental-dnsupdate=yes --cache-ttl=0 --no-config --gsqlite3-dnssec=on --gsqlite3-database="+SQLITE_DB+" --experimental-json-interface=yes --webserver=yes --webserver-port="+WEBPORT+" --webserver-address=127.0.0.1 --webserver-password="+WEBPASSWORD).split()
else:
conf_dir = 'rec-conf.d'
../pdns/pdns_server --daemon=no --local-port=$port --socket-dir=./ \
--no-shuffle --launch=bind --bind-config=edns-packet-cache/named.conf \
- --send-root-referral --cache-ttl=60 --no-config &
+ --send-root-referral --cache-ttl=60 --no-config --module-dir=../regression-tests/modules &
bindwait
# prime cache without EDNS
for dir in $PREFIX.*
do
cat > $dir/pdns.conf <<EOF
+module-dir=../../../regression-tests/modules
launch=bind
daemon=no
local-address=$dir
case $context in
bind)
cat > pdns-bind.conf << __EOF__
+module-dir=./modules
launch=bind
bind-config=./named.conf
bind-ignore-broken-records=yes
bind-dnssec | bind-dnssec-nsec3 | bind-hybrid-nsec3 | bind-dnssec-nsec3-optout | bind-dnssec-nsec3-narrow)
rm -f dnssec.sqlite3
cat > pdns-bind.conf << __EOF__
+module-dir=./modules
launch=bind
bind-config=./named.conf
bind-ignore-broken-records=yes
--no-shuffle --launch=bind --bind-config=./named-slave.conf --slave \
--send-root-referral --retrieval-threads=1 --config-name=bind-slave \
--experimental-dnsupdate=yes \
- --cache-ttl=$cachettl --no-config --experimental-dname-processing --bind-dnssec-db=./dnssec-slave.sqlite3 &
+ --cache-ttl=$cachettl --no-config --experimental-dname-processing --bind-dnssec-db=./dnssec-slave.sqlite3 \
+ --module-dir=./modules &
echo 'waiting for zones to be loaded'
bindwait bind-slave
# generate pdns.conf for pdnssec
cat > pdns-geoip.conf <<EOF
+module-dir=./modules
launch=geoip
geoip-zones-file=$testsdir/geo.yaml
EOF
--no-shuffle --launch=geoip \
--cache-ttl=$cachettl --experimental-dname-processing --no-config \
--send-root-referral --distributor-threads=1 \
- --geoip-zones-file=$testsdir/geo.yaml \
+ --geoip-zones-file=$testsdir/geo.yaml --module-dir=./modules \
$geoipkeydir &
;;
"$GMYSQLDB"
cat > pdns-gmysql.conf << __EOF__
+module-dir=./modules
launch=gmysql
gmysql-dbname=$GMYSQLDB
gmysql-user=$GMYSQLUSER
"$GMYSQL2DB" < ../modules/gmysqlbackend/schema.mysql.sql
cat > pdns-gmysql2.conf << __EOF__
+module-dir=./modules
launch=gmysql
gmysql-dbname=$GMYSQL2DB
gmysql-user=$GMYSQL2USER
tosql goracle | sqlplus -S $GORACLEUSER/$GORACLEPASSWD@xe >> goracle.log
cat > pdns-goracle.conf << __EOF__
+module-dir=./modules
launch=goracle
goracle-home=$ORACLE_HOME
goracle-sid=$ORACLE_SID
echo "START ../modules/goraclebackend/schema.goracle.sql;" | sqlplus -S $GORACLE2USER/$GORACLE2PASSWD@xe >> goracle2.log
cat > pdns-goracle2.conf << __EOF__
+module-dir=./modules
launch=goracle
goracle-home=$ORACLE_HOME
goracle-sid=$ORACLE_SID
tosql gpgsql | psql --user="$GPGSQLUSER" "$GPGSQLDB" 2>&1 | uniq -c
cat > pdns-gpgsql.conf << __EOF__
+module-dir=./modules
launch=gpgsql
gpgsql-dbname=$GPGSQLDB
gpgsql-user=$GPGSQLUSER
createdb --user="$GPGSQL2USER" "$GPGSQL2DB" || echo ignoring mysqladmin drop failure
psql --user="$GPGSQL2USER" "$GPGSQL2DB" < ../modules/gpgsqlbackend/schema.pgsql.sql
- cat > pdns-gpgsql2.conf << __EOF__
+ cat > pdns-gpgsql2.conf << __EOF__
+module-dir=./modules
launch=gpgsql
gpgsql-dbname=$GPGSQL2DB
gpgsql-user=$GPGSQL2USER
echo ANALYZE\; | sqlite3 pdns.sqlite3
cat > pdns-gsqlite3.conf << __EOF__
+module-dir=./modules
launch=gsqlite3
gsqlite3-database=pdns.sqlite3
__EOF__
sqlite3 pdns.sqlite32 < ../modules/gsqlite3backend/schema.sqlite3.sql
cat > pdns-gsqlite32.conf << __EOF__
+module-dir=./modules
launch=gsqlite3
gsqlite3-database=pdns.sqlite32
gsqlite3-pragma-synchronous=0
--no-shuffle --launch=lmdb \
--send-root-referral \
--cache-ttl=$cachettl --experimental-dname-processing --no-config \
- --lmdb-datapath=./ --lmdb-experimental-dnssec &
+ --lmdb-datapath=./ --lmdb-experimental-dnssec --module-dir=./modules &
skipreasons="noent nodyndns nometa lmdb"
"$MYDNSDB"
cat > pdns-mydns.conf << __EOF__
+module-dir=./modules
launch=mydns
mydns-dbname=$MYDNSDB
mydns-user=$MYDNSUSER
mydns-host=$MYDNSHOST
mydns-password=$MYDNSPASSWD
__EOF__
- $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
- --no-shuffle --launch=mydns \
- --master --send-root-referral \
- --cache-ttl=0 --experimental-dname-processing --no-config \
- --mydns-rr-active=no --mydns-soa-active=no --mydns-use-minimal-ttl=no \
- --mydns-dbname="$MYDNSDB" \
- --mydns-user="$MYDNSUSER" \
- --mydns-host="$MYDNSHOST" \
- --mydns-password="$MYDNSPASSWD" &
+ $RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
+ --config-dir=. --config-name=mydns \
+ --no-shuffle --master --send-root-referral \
+ --cache-ttl=0 --experimental-dname-processing \
+ --mydns-rr-active=no --mydns-soa-active=no --mydns-use-minimal-ttl=no &
skipreasons="nodnssec noent nodyndns nometa noaxfr"
;;
--send-root-referral \
--cache-ttl=$cachettl --experimental-dname-processing --no-config \
--opendbx-backend=sqlite3 --opendbx-host-read=./ --opendbx-host-write=./ \
- --opendbx-database=pdns-opendbx.sqlite3 &
+ --opendbx-database=pdns-opendbx.sqlite3 --module-dir=./modules &
skipreasons="nodnssec noent nodyndns nometa"
;;
../pdns/zone2sql --oracle | grep " 'SOA', " | sqlplus -S $ORACLEUSER/$ORACLEPASSWD@xe >> oracle.log
cat > pdns-oracle.conf << __EOF__
+module-dir=./modules
launch=oracle
oracle-home=$ORACLE_HOME
oracle-sid=$ORACLE_SID
echo "START ../modules/oraclebackend/schema.oracle.sql;" | sqlplus -S $ORACLE2USER/$ORACLE2PASSWD@xe >> oracle2.log
cat > pdns-oracle2.conf << __EOF__
+module-dir=./modules
launch=oracle
oracle-home=$ORACLE_HOME
oracle-sid=$ORACLE_SID
# generate pdns.conf for pdnssec
cat > pdns-remote.conf <<EOF
+module-dir=./modules
launch=remote
remote-connection-string=$connstr,timeout=10000
EOF
--cache-ttl=$cachettl --experimental-dname-processing --no-config \
--send-root-referral --distributor-threads=1 \
--experimental-dnsupdate=yes \
- --remote-connection-string="$connstr" $remote_add_param &
+ --remote-connection-string="$connstr" $remote_add_param --module-dir=./modules &
;;
*)
--cache-ttl=$cachettl --experimental-dname-processing --no-config \
--send-root-referral \
--experimental-dnsupdate=yes \
- --tinydns-dbfile=../modules/tinydnsbackend/data.cdb &
+ --tinydns-dbfile=../modules/tinydnsbackend/data.cdb --module-dir=./modules &
skipreasons="nodnssec noent nodyndns nometa noaxfr"
;;
--- /dev/null
+../../modules/bindbackend/.libs/libbindbackend.so
\ No newline at end of file
--- /dev/null
+../../modules/geoipbackend/.libs/libgeoipbackend.so
\ No newline at end of file
--- /dev/null
+../../modules/gmysqlbackend/.libs/libgmysqlbackend.so
\ No newline at end of file
--- /dev/null
+../../modules/goraclebackend/.libs/libgoraclebackend.so
\ No newline at end of file
--- /dev/null
+../../modules/gpgsqlbackend/.libs/libgpgsqlbackend.so
\ No newline at end of file
--- /dev/null
+../../modules/gsqlite3backend/.libs/libgsqlite3backend.so
\ No newline at end of file
--- /dev/null
+../../modules/ldapbackend/.libs/libldapbackend.so
\ No newline at end of file
--- /dev/null
+../../modules/lmdbbackend/.libs/liblmdbbackend.so
\ No newline at end of file
--- /dev/null
+../../modules/mydnsbackend/.libs/libmydnsbackend.so
\ No newline at end of file
--- /dev/null
+../../modules/opendbxbackend/.libs/libopendbxbackend.so
\ No newline at end of file
--- /dev/null
+../../modules/oraclebackend/.libs/liboraclebackend.so
\ No newline at end of file
--- /dev/null
+../../modules/remotebackend/.libs/libremotebackend.so
\ No newline at end of file
--- /dev/null
+../../modules/tinydnsbackend/.libs/libtinydnsbackend.so
\ No newline at end of file