rubysl-socket 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +0 -1
- data/.travis.yml +7 -0
- data/README.md +2 -2
- data/Rakefile +0 -1
- data/lib/rubysl/socket.rb +2 -0
- data/lib/rubysl/socket/socket.rb +1210 -0
- data/lib/{rubysl-socket → rubysl/socket}/version.rb +1 -1
- data/lib/socket.rb +1 -0
- data/rubysl-socket.gemspec +17 -18
- data/spec/addrinfo/afamily_spec.rb +5 -0
- data/spec/addrinfo/bind_spec.rb +5 -0
- data/spec/addrinfo/canonname_spec.rb +5 -0
- data/spec/addrinfo/connect_from_spec.rb +5 -0
- data/spec/addrinfo/connect_spec.rb +5 -0
- data/spec/addrinfo/connect_to_spec.rb +5 -0
- data/spec/addrinfo/family_addrinfo_spec.rb +5 -0
- data/spec/addrinfo/foreach_spec.rb +5 -0
- data/spec/addrinfo/getaddrinfo_spec.rb +5 -0
- data/spec/addrinfo/getnameinfo_spec.rb +5 -0
- data/spec/addrinfo/inspect_sockaddr_spec.rb +5 -0
- data/spec/addrinfo/inspect_spec.rb +5 -0
- data/spec/addrinfo/ip_address_spec.rb +5 -0
- data/spec/addrinfo/ip_port_spec.rb +5 -0
- data/spec/addrinfo/ip_spec.rb +9 -0
- data/spec/addrinfo/ip_unpack_spec.rb +5 -0
- data/spec/addrinfo/ipv4_loopback_spec.rb +5 -0
- data/spec/addrinfo/ipv4_multicast_spec.rb +5 -0
- data/spec/addrinfo/ipv4_private_spec.rb +5 -0
- data/spec/addrinfo/ipv4_spec.rb +5 -0
- data/spec/addrinfo/ipv6_linklocal_spec.rb +5 -0
- data/spec/addrinfo/ipv6_loopback_spec.rb +5 -0
- data/spec/addrinfo/ipv6_mc_global_spec.rb +5 -0
- data/spec/addrinfo/ipv6_mc_linklocal_spec.rb +5 -0
- data/spec/addrinfo/ipv6_mc_nodelocal_spec.rb +5 -0
- data/spec/addrinfo/ipv6_mc_orglocal_spec.rb +5 -0
- data/spec/addrinfo/ipv6_mc_sitelocal_spec.rb +5 -0
- data/spec/addrinfo/ipv6_multicast_spec.rb +5 -0
- data/spec/addrinfo/ipv6_sitelocal_spec.rb +5 -0
- data/spec/addrinfo/ipv6_spec.rb +5 -0
- data/spec/addrinfo/ipv6_to_ipv4_spec.rb +5 -0
- data/spec/addrinfo/ipv6_unspecified_spec.rb +5 -0
- data/spec/addrinfo/ipv6_v4compat_spec.rb +5 -0
- data/spec/addrinfo/ipv6_v4mapped_spec.rb +5 -0
- data/spec/addrinfo/listen_spec.rb +5 -0
- data/spec/addrinfo/marshal_dump_spec.rb +5 -0
- data/spec/addrinfo/marshal_load_spec.rb +5 -0
- data/spec/addrinfo/pfamily_spec.rb +5 -0
- data/spec/addrinfo/protocol_spec.rb +5 -0
- data/spec/addrinfo/socktype_spec.rb +5 -0
- data/spec/addrinfo/tcp_spec.rb +5 -0
- data/spec/addrinfo/to_s_spec.rb +5 -0
- data/spec/addrinfo/to_sockaddr_spec.rb +5 -0
- data/spec/addrinfo/udp_spec.rb +5 -0
- data/spec/addrinfo/unix_path_spec.rb +5 -0
- data/spec/addrinfo/unix_spec.rb +9 -0
- data/spec/basicsocket/close_read_spec.rb +42 -0
- data/spec/basicsocket/close_write_spec.rb +42 -0
- data/spec/basicsocket/do_not_reverse_lookup_spec.rb +78 -0
- data/spec/basicsocket/for_fd_spec.rb +37 -0
- data/spec/basicsocket/getpeername_spec.rb +24 -0
- data/spec/basicsocket/getsockname_spec.rb +27 -0
- data/spec/basicsocket/getsockopt_spec.rb +54 -0
- data/spec/basicsocket/ioctl_spec.rb +22 -0
- data/spec/basicsocket/recv_nonblock_spec.rb +6 -0
- data/spec/basicsocket/recv_spec.rb +76 -0
- data/spec/basicsocket/send_spec.rb +81 -0
- data/spec/basicsocket/setsockopt_spec.rb +333 -0
- data/spec/basicsocket/shutdown_spec.rb +5 -0
- data/spec/constants/constants_spec.rb +63 -0
- data/spec/fixtures/classes.rb +174 -0
- data/spec/fixtures/send_io.txt +1 -0
- data/spec/ipsocket/addr_spec.rb +72 -0
- data/spec/ipsocket/getaddress_spec.rb +26 -0
- data/spec/ipsocket/peeraddr_spec.rb +79 -0
- data/spec/ipsocket/recvfrom_spec.rb +64 -0
- data/spec/option/int_spec.rb +27 -0
- data/spec/option/linger_spec.rb +52 -0
- data/spec/option/new_spec.rb +32 -0
- data/spec/shared/pack_sockaddr.rb +26 -0
- data/spec/shared/partially_closable_sockets.rb +13 -0
- data/spec/shared/recv_nonblock.rb +33 -0
- data/spec/shared/socketpair.rb +35 -0
- data/spec/socket/accept_nonblock_spec.rb +27 -0
- data/spec/socket/accept_spec.rb +1 -0
- data/spec/socket/bind_spec.rb +80 -0
- data/spec/socket/connect_nonblock_spec.rb +62 -0
- data/spec/socket/connect_spec.rb +1 -0
- data/spec/socket/for_fd_spec.rb +29 -0
- data/spec/socket/getaddrinfo_spec.rb +120 -0
- data/spec/socket/gethostbyaddr_spec.rb +1 -0
- data/spec/socket/gethostbyname_spec.rb +26 -0
- data/spec/socket/gethostname_spec.rb +9 -0
- data/spec/socket/getnameinfo_spec.rb +57 -0
- data/spec/socket/getservbyname_spec.rb +24 -0
- data/spec/socket/listen_spec.rb +21 -0
- data/spec/socket/new_spec.rb +109 -0
- data/spec/socket/pack_sockaddr_in_spec.rb +6 -0
- data/spec/socket/pack_sockaddr_un_spec.rb +6 -0
- data/spec/socket/pair_spec.rb +6 -0
- data/spec/socket/recvfrom_nonblock_spec.rb +1 -0
- data/spec/socket/recvfrom_spec.rb +1 -0
- data/spec/socket/sockaddr_in_spec.rb +6 -0
- data/spec/socket/sockaddr_un_spec.rb +6 -0
- data/spec/socket/socket_spec.rb +37 -0
- data/spec/socket/socketpair_spec.rb +6 -0
- data/spec/socket/sysaccept_spec.rb +1 -0
- data/spec/socket/unpack_sockaddr_in_spec.rb +16 -0
- data/spec/socket/unpack_sockaddr_un_spec.rb +2 -0
- data/spec/tcpserver/accept_nonblock_spec.rb +30 -0
- data/spec/tcpserver/accept_spec.rb +60 -0
- data/spec/tcpserver/gets_spec.rb +17 -0
- data/spec/tcpserver/listen_spec.rb +1 -0
- data/spec/tcpserver/new_spec.rb +88 -0
- data/spec/tcpserver/output_spec.rb +8 -0
- data/spec/tcpserver/readpartial_spec.rb +8 -0
- data/spec/tcpserver/sysaccept_spec.rb +1 -0
- data/spec/tcpsocket/gethostbyname_spec.rb +62 -0
- data/spec/tcpsocket/new_spec.rb +5 -0
- data/spec/tcpsocket/open_spec.rb +5 -0
- data/spec/tcpsocket/partially_closable_spec.rb +20 -0
- data/spec/tcpsocket/recv_nonblock_spec.rb +31 -0
- data/spec/tcpsocket/setsockopt_spec.rb +49 -0
- data/spec/tcpsocket/shared/new.rb +85 -0
- data/spec/udpsocket/bind_spec.rb +33 -0
- data/spec/udpsocket/connect_spec.rb +1 -0
- data/spec/udpsocket/new_spec.rb +1 -0
- data/spec/udpsocket/open_spec.rb +12 -0
- data/spec/udpsocket/recvfrom_nonblock_spec.rb +1 -0
- data/spec/udpsocket/send_spec.rb +57 -0
- data/spec/unixserver/accept_nonblock_spec.rb +33 -0
- data/spec/unixserver/accept_spec.rb +64 -0
- data/spec/unixserver/for_fd_spec.rb +32 -0
- data/spec/unixserver/new_spec.rb +5 -0
- data/spec/unixserver/open_spec.rb +25 -0
- data/spec/unixserver/shared/new.rb +23 -0
- data/spec/unixsocket/addr_spec.rb +37 -0
- data/spec/unixsocket/new_spec.rb +5 -0
- data/spec/unixsocket/open_spec.rb +26 -0
- data/spec/unixsocket/pair_spec.rb +38 -0
- data/spec/unixsocket/partially_closable_spec.rb +25 -0
- data/spec/unixsocket/path_spec.rb +29 -0
- data/spec/unixsocket/peeraddr_spec.rb +29 -0
- data/spec/unixsocket/recv_io_spec.rb +40 -0
- data/spec/unixsocket/recvfrom_spec.rb +48 -0
- data/spec/unixsocket/send_io_spec.rb +30 -0
- data/spec/unixsocket/shared/new.rb +25 -0
- metadata +328 -89
- data/lib/rubysl-socket.rb +0 -7
data/lib/socket.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "rubysl/socket"
|
data/rubysl-socket.gemspec
CHANGED
@@ -1,22 +1,21 @@
|
|
1
|
-
#
|
2
|
-
require
|
1
|
+
# coding: utf-8
|
2
|
+
require './lib/rubysl/socket/version'
|
3
3
|
|
4
|
-
Gem::Specification.new do |
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
Gem::Specification.new do |spec|
|
5
|
+
spec.name = "rubysl-socket"
|
6
|
+
spec.version = RubySL::Socket::VERSION
|
7
|
+
spec.authors = ["Brian Shirai"]
|
8
|
+
spec.email = ["brixen@gmail.com"]
|
9
|
+
spec.description = %q{Ruby standard library socket.}
|
10
|
+
spec.summary = %q{Ruby standard library socket.}
|
11
|
+
spec.homepage = "https://github.com/rubysl/rubysl-socket"
|
12
|
+
spec.license = "BSD"
|
10
13
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
gem.require_paths = ["lib"]
|
16
|
-
gem.version = RubySL::Socket::VERSION
|
14
|
+
spec.files = `git ls-files`.split($/)
|
15
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
|
+
spec.require_paths = ["lib"]
|
17
18
|
|
18
|
-
|
19
|
-
|
20
|
-
gem.add_development_dependency "rake", "~> 10.0"
|
21
|
-
gem.add_development_dependency "mspec", "~> 1.5"
|
19
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
20
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
22
21
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.expand_path('../../fixtures/classes', __FILE__)
|
2
|
+
|
3
|
+
describe "Socket::BasicSocket#close_read" do
|
4
|
+
before :each do
|
5
|
+
@server = TCPServer.new(SocketSpecs.port)
|
6
|
+
end
|
7
|
+
|
8
|
+
after :each do
|
9
|
+
@server.close unless @server.closed?
|
10
|
+
end
|
11
|
+
|
12
|
+
it "closes the reading end of the socket" do
|
13
|
+
@server.close_read
|
14
|
+
lambda { @server.read }.should raise_error(IOError)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "it works on sockets with closed ends" do
|
18
|
+
@server.close_read
|
19
|
+
lambda { @server.close_read }.should_not raise_error(Exception)
|
20
|
+
lambda { @server.read }.should raise_error(IOError)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "does not close the socket" do
|
24
|
+
@server.close_read
|
25
|
+
@server.closed?.should be_false
|
26
|
+
end
|
27
|
+
|
28
|
+
it "fully closes the socket if it was already closed for writing" do
|
29
|
+
@server.close_write
|
30
|
+
@server.close_read
|
31
|
+
@server.closed?.should be_true
|
32
|
+
end
|
33
|
+
|
34
|
+
it "raises IOError on closed socket" do
|
35
|
+
@server.close
|
36
|
+
lambda { @server.close_read }.should raise_error(IOError)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "returns nil" do
|
40
|
+
@server.close_read.should be_nil
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.expand_path('../../fixtures/classes', __FILE__)
|
2
|
+
|
3
|
+
describe "Socket::BasicSocket#close_write" do
|
4
|
+
before :each do
|
5
|
+
@server = TCPServer.new(SocketSpecs.port)
|
6
|
+
end
|
7
|
+
|
8
|
+
after :each do
|
9
|
+
@server.close unless @server.closed?
|
10
|
+
end
|
11
|
+
|
12
|
+
it "closes the writing end of the socket" do
|
13
|
+
@server.close_write
|
14
|
+
lambda { @server.write("foo") }.should raise_error(IOError)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "works on sockets with closed write ends" do
|
18
|
+
@server.close_write
|
19
|
+
lambda { @server.close_write }.should_not raise_error(Exception)
|
20
|
+
lambda { @server.write("foo") }.should raise_error(IOError)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "does not close the socket" do
|
24
|
+
@server.close_write
|
25
|
+
@server.closed?.should be_false
|
26
|
+
end
|
27
|
+
|
28
|
+
it "fully closes the socket if it was already closed for reading" do
|
29
|
+
@server.close_read
|
30
|
+
@server.close_write
|
31
|
+
@server.closed?.should be_true
|
32
|
+
end
|
33
|
+
|
34
|
+
it "raises IOError on closed socket" do
|
35
|
+
@server.close
|
36
|
+
lambda { @server.close_write }.should raise_error(IOError)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "returns nil" do
|
40
|
+
@server.close_write.should be_nil
|
41
|
+
end
|
42
|
+
end
|