1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-23 00:43:28 +00:00

gdnsd is an Authoritative-only DNS server.

The initial g stands for Geographic, as gdnsd offers a plugin system for
geographic (or other sorts of) balancing, redirection, and service-state-conscious
failover. If you don't care about that feature, it's still quite good at being
a very fast, lean, and resilient authoritative-only server for static DNS data.

gdnsd is written in C using libev and pthreads with a focus on highi performance,
low latency service. It does not offer any form of caching or recursive service,
and does not support DNSSEC.

WWW: http://code.google.com/p/gdnsd/

PR:		ports/167946
Submitted by:	Stefan Caunter <stef@scaleengine.com>
This commit is contained in:
Martin Wilke 2012-06-09 15:47:57 +00:00
parent 0c26a8d56c
commit 6b98655af2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=298870
7 changed files with 210 additions and 0 deletions

View File

@ -51,6 +51,7 @@
SUBDIR += fastresolve
SUBDIR += firedns
SUBDIR += fpdns
SUBDIR += gdnsd
SUBDIR += geta
SUBDIR += ghtool
SUBDIR += gresolver

50
dns/gdnsd/Makefile Normal file
View File

@ -0,0 +1,50 @@
# New ports collection makefile for: gdnsd
# Date created: Tue May 15, 2012
# Whom: Stefan Caunter <stef@scaleengine.com>
#
# $FreeBSD$
#
PORTNAME= gdnsd
PORTVERSION= 1.6.7
CATEGORIES= dns
MASTER_SITES= ${MASTER_SITE_GOOGLE_CODE}
MASTER_SITES+= http://gdnsd.scaleengine.net/gdnsd/
MAINTAINER= ports@scaleengine.com
COMMENT= Authoritative-only GeoIP-aware DNS server
LICENSE= GPLv3
OPTIONS_DEFINE= GEOIP
HAS_CONFIGURE= yes
MAKE_JOBS_SAFE= yes
USE_LDCONFIG= yes
MAN1= gdnsd_geoip_test.1
MAN3= gdnsd-plugin-api.3
MAN5= gdnsd.config.5 gdnsd.zonefile.5
MAN8= gdnsd.8 gdnsd-plugin-simplefo.8 gdnsd-plugin-multifo.8 \
gdnsd-plugin-metafo.8 gdnsd-plugin-geoip.8 \
gdnsd-plugin-weighted.8
MANCOMPRESSED= no
USE_RC_SUBR= gdnsd
CONFIGURE_ARGS+= --mandir=${PREFIX}/man
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MWITH_GEOIP}
RUN_DEPENDS+= ${LOCALBASE}/share/GeoIP/GeoIP.dat:${PORTSDIR}/net/GeoIP
.endif
post-install:
${CP} ${WRKDIR}/${DISTNAME}/docs/config.example ${ETCDIR}/config-dist
@if [ ! -f ${ETCDIR}/config ]; then \
${CP} -p ${WRKDIR}/${DISTNAME}/docs/config.example ${ETCDIR}/config ; \
fi
${CP} ${WRKDIR}/${DISTNAME}/docs/example.com ${ETCDIR}/example.com
.include <bsd.port.mk>

2
dns/gdnsd/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (gdnsd-1.6.7.tar.gz) = 39bf9849a586564f60319e4012edc037633077780060a4f925c418871d6d8672
SIZE (gdnsd-1.6.7.tar.gz) = 942433

49
dns/gdnsd/files/gdnsd.in Normal file
View File

@ -0,0 +1,49 @@
#!/bin/sh
# $FreeBSD$
#
# PROVIDE: gdnsd
# REQUIRE: DAEMON
# REQUIRE: LOGIN
# KEYWORD: FreeBSD shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# gdnsd_enable (bool): Set to NO by default.
# Set it to YES to enable gdnsd.
# gdnsd_config (path): Set to %%PREFIX%%/etc/gdnsd/config
# by default.
. /etc/rc.subr
name="gdnsd"
rcvar=`set_rcvar`
command="%%PREFIX%%/sbin/gdnsd"
# set defaults
load_rc_config $name
: ${gdnsd_enable:="NO"}
: ${gdnsd_config="%%PREFIX%%/etc/gdnsd/config"}
: ${gdnsd_pidfile="%%PREFIX%%/var/run/gdnsd.pid"}
required_files=${gdnsd_config}
command_args="-c ${gdnsd_config} start"
procname=${command}
extra_commands="checkconf"
checkconf_cmd="gdnsd_checkconf"
stop_postcmd=stop_postcmd
stop_postcmd()
{
rm -f ${gdnsd_pidfile}
}
gdnsd_checkconf()
{
${command} -c ${gdnsd_config} checkconf
}
run_rc_command "$1"

View File

@ -0,0 +1,19 @@
--- config.example.orig 2012-05-06 20:26:34.000000000 +0000
+++ docs/config.example 2012-05-25 20:13:28.000000000 +0000
@@ -1,4 +1,14 @@
-
# For more information on configuration, see "man gdnsd.config"
-options => { zones_default_ttl = 43200 }
+
+options => {
+ username = gdnsd
+ zones_default_ttl = 3600
+ http_port = 13506
+ tcp_clients_per_socket = 256
+ tcp_timeout = 8
+ max_http_clients = 32
+ priority = 0
+ listen = 127.0.0.1
+ http_listen = 127.0.0.1
+}
zones => { example.com => { default_ttl = 86400 } }

12
dns/gdnsd/pkg-descr Normal file
View File

@ -0,0 +1,12 @@
gdnsd is an Authoritative-only DNS server.
The initial g stands for Geographic, as gdnsd offers a plugin system for
geographic (or other sorts of) balancing, redirection, and service-state-conscious
failover. If you don't care about that feature, it's still quite good at being
a very fast, lean, and resilient authoritative-only server for static DNS data.
gdnsd is written in C using libev and pthreads with a focus on highi performance,
low latency service. It does not offer any form of caching or recursive service,
and does not support DNSSEC.
WWW: http://code.google.com/p/gdnsd/

77
dns/gdnsd/pkg-plist Normal file
View File

@ -0,0 +1,77 @@
bin/gdnsd_geoip_test
@unexec if cmp -s %D/%%ETCDIR%%/config-dist %D/%%ETCDIR%%/config; then rm -f %D/%%ETCDIR%%/config; fi
%%ETCDIR%%/config-dist
@exec if [ ! -f %D/%%ETCDIR%%/config ] ; then cp -p %D/%F %B/config; fi
%%ETCDIR%%/example.com
@dirrmtry %%ETCDIR%%
include/gdnsd-compiler.h
include/gdnsd-dmn.h
include/gdnsd-dname.h
include/gdnsd-ev.h
include/gdnsd-log.h
include/gdnsd-misc.h
include/gdnsd-monio.h
include/gdnsd-net.h
include/gdnsd-plugapi.h
include/gdnsd-plugin.h
include/gdnsd-satom.h
include/gdnsd-vscf.h
%%DOCSDIR%%/gdnsd-plugin-multifo.pod
%%DOCSDIR%%/gdnsd-plugin-geoip.pod
%%DOCSDIR%%/gdnsd-plugin-metafo.txt
%%DOCSDIR%%/gdnsd_geoip_test.pod
%%DOCSDIR%%/gdnsd-plugin-simplefo.txt
%%DOCSDIR%%/gdnsd.zonefile.pod
%%DOCSDIR%%/COPYING
%%DOCSDIR%%/gdnsd.config.pod
%%DOCSDIR%%/gdnsd_manual.pod
%%DOCSDIR%%/gdnsd.txt
%%DOCSDIR%%/gdnsd-plugin-api.pod
%%DOCSDIR%%/gdnsd-plugin-weighted.txt
%%DOCSDIR%%/AUTHORS
%%DOCSDIR%%/gdnsd-plugin-simplefo.pod
%%DOCSDIR%%/README
%%DOCSDIR%%/gdnsd_geoip_test.txt
%%DOCSDIR%%/gdnsd-plugin-metafo.pod
%%DOCSDIR%%/gdnsd-plugin-geoip.txt
%%DOCSDIR%%/gdnsd-plugin-multifo.txt
%%DOCSDIR%%/config.example
%%DOCSDIR%%/gdnsd.zonefile.txt
%%DOCSDIR%%/gdnsd_manual.txt
%%DOCSDIR%%/gdnsd.config.txt
%%DOCSDIR%%/example.com
%%DOCSDIR%%/gdnsd-plugin-api.txt
%%DOCSDIR%%/ChangeLog
%%DOCSDIR%%/gdnsd-plugin-weighted.pod
%%DOCSDIR%%/gdnsd.pod
%%DOCSDIR%%/INSTALL
lib/gdnsd/libgdnsd.la
lib/gdnsd/libgdnsd.so
lib/gdnsd/plugin_geoip.la
lib/gdnsd/plugin_geoip.so
lib/gdnsd/plugin_http_status.la
lib/gdnsd/plugin_http_status.so
lib/gdnsd/plugin_metafo.la
lib/gdnsd/plugin_metafo.so
lib/gdnsd/plugin_multifo.la
lib/gdnsd/plugin_multifo.so
lib/gdnsd/plugin_null.la
lib/gdnsd/plugin_null.so
lib/gdnsd/plugin_reflect.la
lib/gdnsd/plugin_reflect.so
lib/gdnsd/plugin_simplefo.la
lib/gdnsd/plugin_simplefo.so
lib/gdnsd/plugin_static.la
lib/gdnsd/plugin_static.so
lib/gdnsd/plugin_tcp_connect.la
lib/gdnsd/plugin_tcp_connect.so
lib/gdnsd/plugin_weighted.la
lib/gdnsd/plugin_weighted.so
@dirrm %%DOCSDIR%%/
@dirrm lib/gdnsd
sbin/gdnsd
@exec mkdir -p %D/var/gdnsd
@dirrm var/gdnsd
@exec mkdir -p %D/etc/gdnsd
@dirrmtry etc/gdnsd
@stopdaemon gdnsd