net-proto 1.0.3-x86-mswin32-60 → 1.0.4-x86-mswin32-60
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/CHANGES +9 -0
- data/MANIFEST +1 -1
- data/ext/windows/windows.c +14 -1
- data/lib/net/proto.so +0 -0
- data/test/test_net_proto.rb +126 -0
- metadata +17 -9
- data/test/tc_netproto.rb +0 -71
data/CHANGES
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 1.0.4 - 6-Jan-2008
|
2
|
+
* The struct returned by Net::Proto.getprotoent is now frozen. This is
|
3
|
+
strictly read-only data.
|
4
|
+
* It is now explicitly illegal to call Net::Proto.new.
|
5
|
+
* Some minor modifications to extconf.rb in terms of how and where the
|
6
|
+
the source is built in order to be potentially more friendly to Rubygems.
|
7
|
+
* Renamed and refactored the test suite. This library now requires test-unit
|
8
|
+
version 2.0.2 or later.
|
9
|
+
|
1
10
|
== 1.0.3 - 13-Aug-2007
|
2
11
|
* Fix for OS X (whining about malloced pointer).
|
3
12
|
* Added a Rakefile along with tasks for installation and testing.
|
data/MANIFEST
CHANGED
data/ext/windows/windows.c
CHANGED
@@ -16,6 +16,11 @@ extern "C"
|
|
16
16
|
*
|
17
17
|
* Given a protocol string, returns the corresponding number, or nil if not
|
18
18
|
* found.
|
19
|
+
*
|
20
|
+
* Examples:
|
21
|
+
*
|
22
|
+
* Net::Proto.getprotobyname("tcp") # => 6
|
23
|
+
* Net::Proto.getprotobyname("bogus") # => nil
|
19
24
|
*/
|
20
25
|
static VALUE np_getprotobyname(VALUE klass, VALUE rbProtoName){
|
21
26
|
struct protoent* p;
|
@@ -36,6 +41,11 @@ static VALUE np_getprotobyname(VALUE klass, VALUE rbProtoName){
|
|
36
41
|
*
|
37
42
|
* Given a protocol number, returns the corresponding string, or nil if not
|
38
43
|
* found.
|
44
|
+
*
|
45
|
+
* Examples:
|
46
|
+
*
|
47
|
+
* Net::Proto.getprotobynumber(6) # => "tcp"
|
48
|
+
* Net::Proto.getprotobynumber(999) # => nil
|
39
49
|
*/
|
40
50
|
static VALUE np_getprotobynumber(VALUE klass, VALUE v_proto_num)
|
41
51
|
{
|
@@ -64,7 +74,10 @@ void Init_proto()
|
|
64
74
|
rb_define_singleton_method(cProto,"getprotobyname",np_getprotobyname,1);
|
65
75
|
rb_define_singleton_method(cProto,"getprotobynumber",np_getprotobynumber,1);
|
66
76
|
|
67
|
-
/*
|
77
|
+
/* There is no constructor */
|
78
|
+
rb_funcall(cProto, rb_intern("private_class_method"), 1, ID2SYM(rb_intern("new")));
|
79
|
+
|
80
|
+
/* 1.0.4: The version of this library. This is a string, not a number */
|
68
81
|
rb_define_const(cProto, "VERSION", rb_str_new2(NET_PROTO_VERSION));
|
69
82
|
}
|
70
83
|
|
data/lib/net/proto.so
CHANGED
Binary file
|
@@ -0,0 +1,126 @@
|
|
1
|
+
###########################################################################
|
2
|
+
# test_net_netproto.rb
|
3
|
+
#
|
4
|
+
# Test suite for net-proto - all platforms. This test suite should be run
|
5
|
+
# via the 'rake test' task.
|
6
|
+
###########################################################################
|
7
|
+
require 'rubygems'
|
8
|
+
gem 'test-unit'
|
9
|
+
|
10
|
+
require 'net/proto'
|
11
|
+
require 'test/unit'
|
12
|
+
|
13
|
+
class TC_Net_Proto < Test::Unit::TestCase
|
14
|
+
|
15
|
+
# These were the protocols listed in my own /etc/protocols file on Solaris 9
|
16
|
+
def self.startup
|
17
|
+
@@protocols = %w/
|
18
|
+
ip icmp igmp ggp ipip tcp cbt egp igp pup udp mux hmp
|
19
|
+
xns-idp rdp idpr idpr-cmtp sdrp idrp rsvp gre
|
20
|
+
mobile ospf pim ipcomp vrrp sctp hopopt ipv6
|
21
|
+
ipv6-route ipv6-frag esp ah ipv6-icmp ipv6-nonxt ipv6-opts
|
22
|
+
/
|
23
|
+
end
|
24
|
+
|
25
|
+
def setup
|
26
|
+
@protoent = nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_version
|
30
|
+
assert_equal('1.0.4', Net::Proto::VERSION)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_getprotobynumber_basic
|
34
|
+
assert_respond_to(Net::Proto, :getprotobynumber)
|
35
|
+
assert_nothing_raised{ 0.upto(132){ |n| Net::Proto.getprotobynumber(n) } }
|
36
|
+
assert_kind_of(String, Net::Proto.getprotobynumber(1))
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_getprotobynumber_result_expected
|
40
|
+
assert_equal('icmp', Net::Proto.getprotobynumber(1))
|
41
|
+
assert_equal('tcp', Net::Proto.getprotobynumber(6))
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_getprotbynumber_result_not_expected
|
45
|
+
assert_equal(nil, Net::Proto.getprotobynumber(9999999))
|
46
|
+
assert_equal(nil, Net::Proto.getprotobynumber(-1))
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_getprotobynumber_expected_errors
|
50
|
+
assert_raise(TypeError){ Net::Proto.getprotobynumber('foo') }
|
51
|
+
assert_raise(TypeError){ Net::Proto.getprotobynumber(nil) }
|
52
|
+
assert_raise(RangeError){ Net::Proto.getprotobynumber(999999999999) }
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_getprotobyname_basic
|
56
|
+
assert_respond_to(Net::Proto, :getprotobyname)
|
57
|
+
@@protocols.each{ |n| assert_nothing_raised{ Net::Proto.getprotobyname(n) } }
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_getprotobyname_result_expected
|
61
|
+
assert_equal(1, Net::Proto.getprotobyname('icmp'))
|
62
|
+
assert_equal(6, Net::Proto.getprotobyname('tcp'))
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_getprotobyname_result_not_expected
|
66
|
+
assert_equal(nil, Net::Proto.getprotobyname('foo'))
|
67
|
+
assert_equal(nil, Net::Proto.getprotobyname('tcpx'))
|
68
|
+
assert_equal(nil, Net::Proto.getprotobyname(''))
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_getprotobyname_expected_errors
|
72
|
+
assert_raises(TypeError){ Net::Proto.getprotobyname(1) }
|
73
|
+
assert_raises(TypeError){ Net::Proto.getprotobyname(nil) }
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_getprotoent_basic
|
77
|
+
omit_if(Config::CONFIG['host_os'].match('mswin'), 'Skipped on MS Windows')
|
78
|
+
|
79
|
+
assert_respond_to(Net::Proto, :getprotoent)
|
80
|
+
assert_nothing_raised{ Net::Proto.getprotoent }
|
81
|
+
assert_kind_of(Array, Net::Proto.getprotoent)
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_getprotoent
|
85
|
+
omit_if(Config::CONFIG['host_os'].match('mswin'), 'Skipped on MS Windows')
|
86
|
+
|
87
|
+
assert_kind_of(Struct::ProtoStruct, Net::Proto.getprotoent.first)
|
88
|
+
assert_nil(Net::Proto.getprotoent{})
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_getprotoent_struct
|
92
|
+
omit_if(Config::CONFIG['host_os'].match('mswin'), 'Skipped on MS Windows')
|
93
|
+
|
94
|
+
@protoent = Net::Proto.getprotoent.first
|
95
|
+
assert_equal(['name', 'aliases', 'proto'], @protoent.members)
|
96
|
+
assert_kind_of(String, @protoent.name)
|
97
|
+
assert_kind_of(Array, @protoent.aliases)
|
98
|
+
assert_kind_of(Integer, @protoent.proto)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_getprotoent_struct_aliases_member
|
102
|
+
omit_if(Config::CONFIG['host_os'].match('mswin'), 'Skipped on MS Windows')
|
103
|
+
|
104
|
+
@protoent = Net::Proto.getprotoent.first
|
105
|
+
assert_true(@protoent.aliases.all?{ |e| e.is_a?(String) })
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_getprotoent_struct_frozen
|
109
|
+
omit_if(Config::CONFIG['host_os'].match('mswin'), 'Skipped on MS Windows')
|
110
|
+
|
111
|
+
@protoent = Net::Proto.getprotoent.first
|
112
|
+
assert_true(@protoent.frozen?)
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_constructor_illegal
|
116
|
+
assert_raise(NoMethodError){ Net::Proto.new }
|
117
|
+
end
|
118
|
+
|
119
|
+
def teardown
|
120
|
+
@protoent = nil
|
121
|
+
end
|
122
|
+
|
123
|
+
def self.shutdown
|
124
|
+
@@protocols = nil
|
125
|
+
end
|
126
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-proto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: x86-mswin32-60
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -9,10 +9,19 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-01-07 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: test-unit
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 2.0.2
|
24
|
+
version:
|
16
25
|
description: The net-proto package provides the getprotobyname(), getprotobynumber() and the getprotoent() methods for Ruby.
|
17
26
|
email: djberg96@gmail.com
|
18
27
|
executables: []
|
@@ -27,13 +36,12 @@ extra_rdoc_files:
|
|
27
36
|
- ext/windows/windows.c
|
28
37
|
files:
|
29
38
|
- doc/netproto.txt
|
30
|
-
- test/
|
31
|
-
- lib/net
|
39
|
+
- test/test_net_proto.rb
|
32
40
|
- lib/net/proto.so
|
33
|
-
- ext/windows/windows.c
|
34
41
|
- CHANGES
|
35
42
|
- README
|
36
43
|
- MANIFEST
|
44
|
+
- ext/windows/windows.c
|
37
45
|
has_rdoc: true
|
38
46
|
homepage: http://www.rubyforge.org/projects/sysutils
|
39
47
|
post_install_message:
|
@@ -56,9 +64,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
64
|
requirements: []
|
57
65
|
|
58
66
|
rubyforge_project: sysutils
|
59
|
-
rubygems_version: 1.
|
67
|
+
rubygems_version: 1.3.1
|
60
68
|
signing_key:
|
61
69
|
specification_version: 2
|
62
70
|
summary: The net-proto package provides the getprotobyname(), getprotobynumber() and the getprotoent() methods for Ruby.
|
63
71
|
test_files:
|
64
|
-
- test/
|
72
|
+
- test/test_net_proto.rb
|
data/test/tc_netproto.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
###########################################################################
|
2
|
-
# tc_netproto.rb
|
3
|
-
#
|
4
|
-
# Test suite for net-proto - all platforms. This test suite should be run
|
5
|
-
# via the 'rake test' task.
|
6
|
-
###########################################################################
|
7
|
-
require "net/proto"
|
8
|
-
require "test/unit"
|
9
|
-
include Net
|
10
|
-
|
11
|
-
class TC_Net_Proto < Test::Unit::TestCase
|
12
|
-
# These were the protocols listed in my
|
13
|
-
# own /etc/protocols file on Solaris 9.
|
14
|
-
def setup
|
15
|
-
@protocols = %w/
|
16
|
-
ip icmp igmp ggp ipip tcp cbt egp igp pup udp mux hmp
|
17
|
-
xns-idp rdp idpr idpr-cmtp sdrp idrp rsvp gre
|
18
|
-
mobile ospf pim ipcomp vrrp sctp hopopt ipv6
|
19
|
-
ipv6-route ipv6-frag esp ah ipv6-icmp ipv6-nonxt ipv6-opts
|
20
|
-
/
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_version
|
24
|
-
assert_equal("1.0.3", Proto::VERSION)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_getprotobynumber
|
28
|
-
assert_respond_to(Proto, :getprotobynumber)
|
29
|
-
assert_raises(TypeError){ Proto.getprotobynumber("foo") }
|
30
|
-
assert_raises(TypeError){ Proto.getprotobynumber(nil) }
|
31
|
-
assert_equal(nil, Proto.getprotobynumber(9999999))
|
32
|
-
assert_equal("tcp", Proto.getprotobynumber(6))
|
33
|
-
assert_nothing_raised{
|
34
|
-
0.upto(132){ |n| Proto.getprotobynumber(n) }
|
35
|
-
}
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_getprotobyname
|
39
|
-
assert_respond_to(Proto, :getprotobyname)
|
40
|
-
assert_raises(TypeError){ Proto.getprotobyname(1) }
|
41
|
-
assert_raises(TypeError){ Proto.getprotobyname(nil) }
|
42
|
-
assert_equal(nil, Proto.getprotobyname("foo"))
|
43
|
-
assert_equal(6, Proto.getprotobyname("tcp"))
|
44
|
-
@protocols.each{ |prot|
|
45
|
-
assert_nothing_raised{ Proto.getprotobyname(prot) }
|
46
|
-
}
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_getprotoent
|
50
|
-
if File::ALT_SEPARATOR
|
51
|
-
msg = "The getprotoent() function is not supported on this "
|
52
|
-
msg += "platform - test skipped"
|
53
|
-
STDERR.puts msg
|
54
|
-
else
|
55
|
-
assert_respond_to(Proto, :getprotoent)
|
56
|
-
p = Proto.getprotoent.first
|
57
|
-
assert_kind_of(Struct::ProtoStruct, p)
|
58
|
-
assert_equal(%w/name aliases proto/,p.members)
|
59
|
-
assert_kind_of(String, p.name, "Bad type for name")
|
60
|
-
assert_kind_of(Array, p.aliases, "Bad type for aliases")
|
61
|
-
assert_kind_of(Integer, p.proto, "Bad type for proto")
|
62
|
-
p.aliases.each{ |a|
|
63
|
-
assert_kind_of(String, a, "Bad type for aliases member")
|
64
|
-
}
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def teardown
|
69
|
-
@protocols = nil
|
70
|
-
end
|
71
|
-
end
|