dnssd 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/History.txt +6 -1
- data/Manifest.txt +1 -0
- data/lib/dnssd.rb +1 -1
- data/lib/dnssd/service.rb +3 -3
- data/lib/dnssd/text_record.rb +7 -5
- data/test/test_dnssd_getaddrinfo.rb +23 -0
- metadata +89 -23
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
data/lib/dnssd.rb
CHANGED
data/lib/dnssd/service.rb
CHANGED
@@ -116,7 +116,7 @@ class DNSSD::Service
|
|
116
116
|
# setup your /etc/nsswitch.conf correctly. See
|
117
117
|
# http://avahi.org/wiki/AvahiAndUnicastDotLocal for details
|
118
118
|
|
119
|
-
def getaddrinfo(host, protocol =
|
119
|
+
def getaddrinfo(host, protocol = 0, flags = 0,
|
120
120
|
interface = DNSSD::InterfaceAny, &block)
|
121
121
|
interface = DNSSD.interface_index interface unless Integer === interface
|
122
122
|
|
@@ -137,9 +137,9 @@ class DNSSD::Service
|
|
137
137
|
|
138
138
|
addrinfo = Socket.getaddrinfo host, nil, family
|
139
139
|
|
140
|
-
addrinfo.each do |_, _,
|
140
|
+
addrinfo.each do |_, _, a_host, ip, _|
|
141
141
|
sockaddr = Socket.pack_sockaddr_in 0, ip
|
142
|
-
@replies << DNSSD::Reply::AddrInfo.new(self, 0, 0,
|
142
|
+
@replies << DNSSD::Reply::AddrInfo.new(self, 0, 0, a_host, sockaddr, 0)
|
143
143
|
end
|
144
144
|
end
|
145
145
|
end
|
data/lib/dnssd/text_record.rb
CHANGED
@@ -32,14 +32,16 @@ class DNSSD::TextRecord < DelegateClass(Hash)
|
|
32
32
|
def decode(text_record)
|
33
33
|
record = {}
|
34
34
|
|
35
|
-
|
36
|
-
|
35
|
+
tr = text_record.unpack 'C*'
|
36
|
+
|
37
|
+
until tr.empty? do
|
38
|
+
size = tr.shift
|
39
|
+
|
37
40
|
next if size.zero?
|
38
41
|
|
39
|
-
raise ArgumentError, 'ran out of data in text record' if
|
40
|
-
text_record.length < size
|
42
|
+
raise ArgumentError, 'ran out of data in text record' if tr.length < size
|
41
43
|
|
42
|
-
entry =
|
44
|
+
entry = tr.shift(size).pack('C*')
|
43
45
|
|
44
46
|
raise ArgumentError, 'key not found' unless entry =~ /^[^=]/
|
45
47
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'dnssd'
|
3
|
+
require 'socket'
|
4
|
+
|
5
|
+
class TestDNSSD < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
def test_getaddrinfo
|
8
|
+
service = DNSSD::Service.new
|
9
|
+
|
10
|
+
addresses = []
|
11
|
+
begin
|
12
|
+
service.getaddrinfo 'localhost' do |addrinfo|
|
13
|
+
addresses << addrinfo.address
|
14
|
+
break unless addrinfo.flags.more_coming?
|
15
|
+
end
|
16
|
+
ensure
|
17
|
+
service.stop
|
18
|
+
end
|
19
|
+
assert addresses.index('127.0.0.1')
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dnssd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 31
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 3
|
9
|
+
- 2
|
10
|
+
version: 1.3.2
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Eric Hodel
|
@@ -35,49 +41,102 @@ cert_chain:
|
|
35
41
|
x52qPcexcYZR7w==
|
36
42
|
-----END CERTIFICATE-----
|
37
43
|
|
38
|
-
date:
|
44
|
+
date: 2010-08-28 00:00:00 +09:00
|
39
45
|
default_executable:
|
40
46
|
dependencies:
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
48
|
+
name: rubyforge
|
49
|
+
prerelease: false
|
50
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
hash: 7
|
56
|
+
segments:
|
57
|
+
- 2
|
58
|
+
- 0
|
59
|
+
- 4
|
60
|
+
version: 2.0.4
|
43
61
|
type: :development
|
44
|
-
|
45
|
-
|
62
|
+
version_requirements: *id001
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: minitest
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 1
|
74
|
+
- 5
|
75
|
+
- 0
|
76
|
+
version: 1.5.0
|
77
|
+
type: :development
|
78
|
+
version_requirements: *id002
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: hoe-seattlerb
|
81
|
+
prerelease: false
|
82
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
46
84
|
requirements:
|
47
85
|
- - ~>
|
48
86
|
- !ruby/object:Gem::Version
|
87
|
+
hash: 11
|
88
|
+
segments:
|
89
|
+
- 1
|
90
|
+
- 2
|
49
91
|
version: "1.2"
|
50
|
-
|
92
|
+
type: :development
|
93
|
+
version_requirements: *id003
|
51
94
|
- !ruby/object:Gem::Dependency
|
52
95
|
name: minitest
|
53
|
-
|
54
|
-
|
55
|
-
|
96
|
+
prerelease: false
|
97
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
56
99
|
requirements:
|
57
100
|
- - ~>
|
58
101
|
- !ruby/object:Gem::Version
|
102
|
+
hash: 7
|
103
|
+
segments:
|
104
|
+
- 1
|
105
|
+
- 4
|
59
106
|
version: "1.4"
|
60
|
-
|
107
|
+
type: :development
|
108
|
+
version_requirements: *id004
|
61
109
|
- !ruby/object:Gem::Dependency
|
62
110
|
name: rake-compiler
|
63
|
-
|
64
|
-
|
65
|
-
|
111
|
+
prerelease: false
|
112
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
66
114
|
requirements:
|
67
115
|
- - ~>
|
68
116
|
- !ruby/object:Gem::Version
|
117
|
+
hash: 7
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
- 6
|
69
121
|
version: "0.6"
|
70
|
-
|
122
|
+
type: :development
|
123
|
+
version_requirements: *id005
|
71
124
|
- !ruby/object:Gem::Dependency
|
72
125
|
name: hoe
|
73
|
-
|
74
|
-
|
75
|
-
|
126
|
+
prerelease: false
|
127
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
76
129
|
requirements:
|
77
130
|
- - ">="
|
78
131
|
- !ruby/object:Gem::Version
|
79
|
-
|
80
|
-
|
132
|
+
hash: 21
|
133
|
+
segments:
|
134
|
+
- 2
|
135
|
+
- 6
|
136
|
+
- 1
|
137
|
+
version: 2.6.1
|
138
|
+
type: :development
|
139
|
+
version_requirements: *id006
|
81
140
|
description: |-
|
82
141
|
DNS Service Discovery (aka Bonjour, MDNS) API for Ruby. Implements browsing,
|
83
142
|
resolving, registration and domain enumeration. Supports avahi's DNSSD
|
@@ -134,6 +193,7 @@ files:
|
|
134
193
|
- sample/socket.rb
|
135
194
|
- test/test_dnssd.rb
|
136
195
|
- test/test_dnssd_flags.rb
|
196
|
+
- test/test_dnssd_getaddrinfo.rb
|
137
197
|
- test/test_dnssd_record.rb
|
138
198
|
- test/test_dnssd_reply.rb
|
139
199
|
- test/test_dnssd_reply_browse.rb
|
@@ -151,29 +211,35 @@ rdoc_options:
|
|
151
211
|
- README.txt
|
152
212
|
require_paths:
|
153
213
|
- lib
|
154
|
-
- ext
|
155
214
|
required_ruby_version: !ruby/object:Gem::Requirement
|
215
|
+
none: false
|
156
216
|
requirements:
|
157
217
|
- - ">="
|
158
218
|
- !ruby/object:Gem::Version
|
219
|
+
hash: 3
|
220
|
+
segments:
|
221
|
+
- 0
|
159
222
|
version: "0"
|
160
|
-
version:
|
161
223
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
224
|
+
none: false
|
162
225
|
requirements:
|
163
226
|
- - ">="
|
164
227
|
- !ruby/object:Gem::Version
|
228
|
+
hash: 3
|
229
|
+
segments:
|
230
|
+
- 0
|
165
231
|
version: "0"
|
166
|
-
version:
|
167
232
|
requirements: []
|
168
233
|
|
169
234
|
rubyforge_project: dnssd
|
170
|
-
rubygems_version: 1.3.
|
235
|
+
rubygems_version: 1.3.7
|
171
236
|
signing_key:
|
172
237
|
specification_version: 3
|
173
238
|
summary: DNS Service Discovery (aka Bonjour, MDNS) API for Ruby
|
174
239
|
test_files:
|
175
240
|
- test/test_dnssd.rb
|
176
241
|
- test/test_dnssd_flags.rb
|
242
|
+
- test/test_dnssd_getaddrinfo.rb
|
177
243
|
- test/test_dnssd_record.rb
|
178
244
|
- test/test_dnssd_reply.rb
|
179
245
|
- test/test_dnssd_reply_browse.rb
|
metadata.gz.sig
CHANGED
Binary file
|