ddns 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bin/ddns +4 -0
  2. data/lib/ddns-server.rb +8 -3
  3. metadata +9 -11
data/bin/ddns CHANGED
@@ -4,6 +4,7 @@ require 'fileutils'
4
4
  require 'drb/drb'
5
5
  require 'ddns-server'
6
6
  require 'optparse'
7
+ require 'resolv'
7
8
  require 'socket'
8
9
 
9
10
  LOGGER = Logger.new($stderr)
@@ -15,6 +16,7 @@ options = {
15
16
  :gaddress => IPSocket.getaddress(Socket.gethostname),
16
17
  :gport => 10870,
17
18
  :sock => '/tmp/ddns.sock',
19
+ :resolver => Resolv::DNS.new,
18
20
  :daemon => false,
19
21
  :logger => LOGGER,
20
22
  :loglevel => Logger::INFO
@@ -28,6 +30,8 @@ opts.on('-a', '--gaddress ADDRESS' "Gossip service ip address (default #{opt
28
30
  opts.on('-p', '--gport PORT', Integer, "Gossip service port (default #{options[:gport]})") {|v| options[:gport] = v }
29
31
  opts.on('-S', '--socket SOCK', "Socket file path (default #{options[:sock]})") {|v| options[:sock] = v }
30
32
  opts.on('-d', '--daemon COMMAND', "Directive of daemonize (start|stop|restart|status)") {|v| options[:daemon] = v }
33
+ opts.on('-r', '--resolver CONF', "Default resolver (default /etc/resolv.conf)") {|v| options[:resolver] = Resolv::DNS.new(v) }
34
+ opts.on('-N', '--no-resolver', "Not use default resolver") {|v| options[:resolver] = nil }
31
35
 
32
36
  opts.on('-L', '--loglevel LEVEL',
33
37
  [:fatal, :error, :warn, :info, :debug], "Log level (default info)") {|v| options[:loglevel] = Logger.const_get(v.to_s.upcase) }
@@ -27,7 +27,7 @@ class DDNS < RExec::Daemon::Base
27
27
  @gaddress = options[:gaddress] || IPSocket.getaddress(Socket.gethostname)
28
28
  @sock = options[:sock]
29
29
  @daemon = options[:daemon]
30
- @resolver = options[:resolver] || Resolv::DNS.new
30
+ @resolver = options[:resolver]
31
31
  @logger = options[:logger] || Logger.new($stderr)
32
32
  @loglevel = options[:loglevel] || Logger::INFO
33
33
  @logger.level = @loglevel
@@ -69,6 +69,9 @@ class DDNS < RExec::Daemon::Base
69
69
 
70
70
  RubyDNS.run_server(:listen => [[:udp, $DDNS_ATTR.address, $DDNS_ATTR.port]]) do
71
71
  on(:start) do
72
+ $stdout.sync = true
73
+ $stderr.sync = true
74
+
72
75
  logger.level = $DDNS_ATTR.loglevel
73
76
 
74
77
  if $DDNS_ATTR.daemon and $DDNS_ATTR.sock
@@ -87,8 +90,10 @@ class DDNS < RExec::Daemon::Base
87
90
  transaction.respond!(Resolv::DNS::Name.create("#{data}."))
88
91
  end
89
92
 
90
- otherwise do |transaction|
91
- transaction.passthrough!($DDNS_ATTR.resolver)
93
+ if $DDNS_ATTR.resolver
94
+ otherwise do |transaction|
95
+ transaction.passthrough!($DDNS_ATTR.resolver)
96
+ end
92
97
  end
93
98
  end
94
99
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddns
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - winebarrel
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-24 00:00:00 +09:00
19
- default_executable:
18
+ date: 2011-05-23 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: rubydns
@@ -42,12 +41,12 @@ dependencies:
42
41
  requirements:
43
42
  - - ">="
44
43
  - !ruby/object:Gem::Version
45
- hash: 11
44
+ hash: 9
46
45
  segments:
47
46
  - 0
48
47
  - 1
49
- - 8
50
- version: 0.1.8
48
+ - 9
49
+ version: 0.1.9
51
50
  type: :runtime
52
51
  version_requirements: *id002
53
52
  description:
@@ -61,10 +60,9 @@ extra_rdoc_files: []
61
60
 
62
61
  files:
63
62
  - README
64
- - bin/ddns
65
63
  - bin/ddnsctl
64
+ - bin/ddns
66
65
  - lib/ddns-server.rb
67
- has_rdoc: true
68
66
  homepage: https://bitbucket.org/winebarrel/ddns
69
67
  licenses: []
70
68
 
@@ -94,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
92
  requirements: []
95
93
 
96
94
  rubyforge_project:
97
- rubygems_version: 1.4.2
95
+ rubygems_version: 1.8.1
98
96
  signing_key:
99
97
  specification_version: 3
100
98
  summary: Distributed name server