1
0
mirror of https://github.com/cmur2/dyndnsd.git synced 2025-08-08 08:33:56 +02:00

Compare commits

...

8 Commits

Author SHA1 Message Date
cn
cfce5be361 Bump version 2016-11-27 22:21:16 +01:00
cn
9ae2a63af2 Pin rack gem in Gemfile to ~> 1.6 for ruby < 2.2.2 support 2016-11-27 22:21:08 +01:00
Christian Nicolai
567f252cad Merge pull request #2 from haasn/ipv6
Support IPv6 addresses
2015-06-18 14:11:37 +02:00
Niklas Haas
d2747549fe Support IPv6 addresses
This also checks for IPv6-mapped IPv4 addresses.

Closes #1.
2015-06-18 06:09:46 +02:00
cn
c3331d19ca Bump version 2013-10-08 13:25:53 +02:00
cn
d7b2250923 Stop on SIGTERM 2013-10-08 13:25:35 +02:00
cn
b2a408acba Bump version 2013-06-08 10:00:13 +02:00
cn
c6c10a5a69 Improve init script 2013-06-08 09:59:32 +02:00
6 changed files with 20 additions and 11 deletions

View File

@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
s.executables = ['dyndnsd']
s.add_runtime_dependency 'rack'
s.add_runtime_dependency 'rack', '~> 1.6'
s.add_runtime_dependency 'json'
s.add_runtime_dependency 'metriks'

View File

@@ -23,18 +23,21 @@ case "$1" in
start)
log_daemon_msg "Starting dyndnsd.rb" "dyndnsd"
start-stop-daemon --start --quiet --oknodo --make-pidfile --pidfile "/var/run/dyndnsd.pid" --background --exec $DAEMON -- $DAEMON_OPTS
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping dyndnsd.rb" "dyndnsd"
start-stop-daemon --stop --quiet --oknodo --pidfile "/var/run/dyndnsd.pid"
log_end_msg $?
;;
restart|force-reload)
log_daemon_msg "Restarting dyndnsd.rb" "dyndnsd"
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile "/var/run/dyndsd.pid"
start-stop-daemon --start --quiet --oknodo --make-pidfile --pidfile "/var/run/dyndnsd.pid" --background --exec $DAEMON -- $DAEMON_OPTS
log_end_msg $?
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
exit 1
log_action_msg "Usage: $0 {start|stop|restart|force-reload}"
exit 2
;;
esac

View File

@@ -85,7 +85,7 @@ module Dyndnsd
# malformed myip?
begin
IPAddr.new(params["myip"], Socket::AF_INET)
IPAddr.new(params["myip"])
rescue ArgumentError
params["myip"] = env["REMOTE_ADDR"]
end
@@ -190,6 +190,10 @@ module Dyndnsd
Dyndnsd.logger.info "Quitting..."
Rack::Handler::WEBrick.shutdown
end
Signal.trap('TERM') do
Dyndnsd.logger.info "Quitting..."
Rack::Handler::WEBrick.shutdown
end
Rack::Handler::WEBrick.run app, :Host => config['host'], :Port => config['port']
end

View File

@@ -19,8 +19,10 @@ module Dyndnsd
out << "@ IN NS #{@dns}"
out << ""
zone['hosts'].each do |hostname,ip|
ip = IPAddr.new(ip).native
type = ip.ipv6? ? "AAAA" : "A"
name = hostname.chomp('.' + @domain)
out << "#{name} IN A #{ip}"
out << "#{name} IN #{type} #{ip}"
end
out << ""
out << @additional_zone_content

View File

@@ -1,4 +1,4 @@
module Dyndnsd
VERSION = "1.2.1"
VERSION = "1.4.0"
end

View File

@@ -40,7 +40,7 @@ describe Dyndnsd::Daemon do
last_response.status.should == 405
end
it 'provides only the /nic/update' do
it 'provides only the /nic/update URL' do
authorize 'test', 'secret'
get '/other/url'
last_response.status.should == 404
@@ -99,7 +99,7 @@ describe Dyndnsd::Daemon do
last_response.body.should == 'nohost'
end
it 'updates a host on change' do
it 'updates a host on IPv4 change' do
authorize 'test', 'secret'
get '/nic/update?hostname=foo.example.org&myip=1.2.3.4'
@@ -110,7 +110,7 @@ describe Dyndnsd::Daemon do
last_response.body.should == 'good 1.2.3.40'
end
it 'returns no change' do
it 'returns IPv4 no change' do
authorize 'test', 'secret'
get '/nic/update?hostname=foo.example.org&myip=1.2.3.4'
@@ -121,7 +121,7 @@ describe Dyndnsd::Daemon do
last_response.body.should == 'nochg 1.2.3.4'
end
it 'outputs status per hostname' do
it 'outputs IPv4 status per hostname' do
authorize 'test', 'secret'
get '/nic/update?hostname=foo.example.org&myip=1.2.3.4'
@@ -133,7 +133,7 @@ describe Dyndnsd::Daemon do
last_response.body.should == "nochg 1.2.3.4\ngood 1.2.3.4"
end
it 'uses clients remote address if myip not specified' do
it 'uses clients remote IPv4 address if myip not specified' do
authorize 'test', 'secret'
get '/nic/update?hostname=foo.example.org'
last_response.should be_ok