dnssd 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/Makefile +149 -0
- data/ext/extconf.rb +19 -3
- data/ext/mkmf.log +266 -0
- data/ext/rdnssd.bundle +0 -0
- data/ext/rdnssd.c +12 -13
- data/ext/rdnssd.h +28 -3
- data/ext/rdnssd.o +0 -0
- data/ext/rdnssd_service.c +420 -223
- data/ext/rdnssd_service.o +0 -0
- data/ext/rdnssd_structs.c +368 -246
- data/ext/rdnssd_structs.o +0 -0
- data/ext/rdnssd_tr.c +16 -11
- data/ext/rdnssd_tr.o +0 -0
- data/ext/run_rdoc +0 -0
- metadata +62 -38
Binary file
|
data/ext/rdnssd_tr.c
CHANGED
@@ -9,12 +9,6 @@
|
|
9
9
|
|
10
10
|
static VALUE cDNSSDTextRecord;
|
11
11
|
|
12
|
-
static void
|
13
|
-
dnssd_tr_decode_error(void)
|
14
|
-
{
|
15
|
-
rb_raise(rb_eArgError, "buffer contains invalid text record");
|
16
|
-
}
|
17
|
-
|
18
12
|
static void
|
19
13
|
dnssd_tr_decode_buffer(VALUE self, long buf_len, const char *buf_ptr)
|
20
14
|
{
|
@@ -24,18 +18,29 @@ dnssd_tr_decode_buffer(VALUE self, long buf_len, const char *buf_ptr)
|
|
24
18
|
VALUE key, value;
|
25
19
|
const char *p;
|
26
20
|
long key_len, len = (long)(uint8_t)buf_ptr[i++];
|
27
|
-
if (i
|
28
|
-
|
21
|
+
if (i + len > buf_len)
|
22
|
+
rb_raise(rb_eArgError, "invalid text record (string longer than buffer)");
|
23
|
+
|
24
|
+
if (len == 0) {
|
25
|
+
/* 0-length key/value, handle this by skipping over it.
|
26
|
+
* Probably the RR should have zero-length, but some services have been
|
27
|
+
* found to advertise a non-zero length TXT record, with a zero-length
|
28
|
+
* key/value string.
|
29
|
+
*/
|
30
|
+
continue;
|
31
|
+
}
|
29
32
|
|
30
|
-
p =
|
33
|
+
p = memchr(buf_ptr + i, '=', buf_len - i);
|
31
34
|
if (p == NULL) {
|
35
|
+
/* key, with no value, this is OK */
|
32
36
|
key_len = len;
|
33
37
|
key = rb_str_new(buf_ptr + i, key_len);
|
34
38
|
value = Qnil;
|
35
39
|
} else {
|
36
40
|
key_len = p - (buf_ptr + i);
|
37
|
-
|
38
|
-
|
41
|
+
if(key_len == 0)
|
42
|
+
rb_raise(rb_eArgError, "invalid text record (zero-length key)");
|
43
|
+
|
39
44
|
key = rb_str_new(buf_ptr + i, key_len);
|
40
45
|
key_len++; /* step over '=' */
|
41
46
|
value = rb_str_new(buf_ptr + i + key_len, len - key_len);
|
data/ext/rdnssd_tr.o
ADDED
Binary file
|
data/ext/run_rdoc
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,47 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.8.1
|
3
|
-
specification_version: 1
|
4
2
|
name: dnssd
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
- lib
|
11
|
-
- ext
|
12
|
-
author: Charlie Mills
|
13
|
-
email: cmills@freeshell.org
|
14
|
-
homepage: http://dnssd.rubyforge.org
|
15
|
-
rubyforge_project:
|
16
|
-
description:
|
4
|
+
version: 0.7.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Charlie Mills
|
17
8
|
autorequire: dnssd
|
18
|
-
default_executable:
|
19
9
|
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2008-08-05 00:00:00 -06:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description:
|
17
|
+
email: cmills@freeshell.org
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions:
|
21
|
+
- ext/extconf.rb
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- lib/dnssd
|
26
|
+
- lib/dnssd.rb
|
27
|
+
- ext/dns_sd.h
|
28
|
+
- ext/extconf.rb
|
29
|
+
- ext/Makefile
|
30
|
+
- ext/MANIFEST
|
31
|
+
- ext/mkmf.log
|
32
|
+
- ext/rdnssd.bundle
|
33
|
+
- ext/rdnssd.c
|
34
|
+
- ext/rdnssd.h
|
35
|
+
- ext/rdnssd.o
|
36
|
+
- ext/rdnssd_service.c
|
37
|
+
- ext/rdnssd_service.o
|
38
|
+
- ext/rdnssd_structs.c
|
39
|
+
- ext/rdnssd_structs.o
|
40
|
+
- ext/rdnssd_tr.c
|
41
|
+
- ext/rdnssd_tr.o
|
42
|
+
- ext/run_rdoc
|
20
43
|
has_rdoc: false
|
21
|
-
|
44
|
+
homepage: http://dnssd.rubyforge.org
|
45
|
+
post_install_message:
|
46
|
+
rdoc_options: []
|
47
|
+
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
- ext
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
22
52
|
requirements:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
|
+
version:
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: "0"
|
27
62
|
version:
|
28
|
-
platform: ruby
|
29
|
-
files:
|
30
|
-
- lib/dnssd.rb
|
31
|
-
- ext/dns_sd.h
|
32
|
-
- ext/extconf.rb
|
33
|
-
- ext/MANIFEST
|
34
|
-
- ext/rdnssd.c
|
35
|
-
- ext/rdnssd.h
|
36
|
-
- ext/rdnssd_service.c
|
37
|
-
- ext/rdnssd_structs.c
|
38
|
-
- ext/rdnssd_tr.c
|
39
|
-
- ext/run_rdoc
|
40
|
-
test_files: []
|
41
|
-
rdoc_options: []
|
42
|
-
extra_rdoc_files: []
|
43
|
-
executables: []
|
44
|
-
extensions:
|
45
|
-
- ext/extconf.rb
|
46
63
|
requirements: []
|
47
|
-
|
64
|
+
|
65
|
+
rubyforge_project:
|
66
|
+
rubygems_version: 1.2.0
|
67
|
+
signing_key:
|
68
|
+
specification_version: 2
|
69
|
+
summary: DNS Service Discovery (aka Rendezvous) API for Ruby
|
70
|
+
test_files: []
|
71
|
+
|