diff options
| author | Tomoyuki Sahara <[email protected]> | 2017-02-08 19:04:11 +0900 |
|---|---|---|
| committer | Tomoyuki Sahara <[email protected]> | 2017-02-08 19:04:11 +0900 |
| commit | 3dad125a1cd93e70a1762e9c6a1d5e01554ad71c (patch) | |
| tree | 15a4781b8aa760aadac88566ec97468de64a3f58 | |
| parent | b2a0c9c6bf62273b734d715e6eaab4c1f2c2892c (diff) | |
| download | mruby-3dad125a1cd93e70a1762e9c6a1d5e01554ad71c.tar.gz mruby-3dad125a1cd93e70a1762e9c6a1d5e01554ad71c.zip | |
TCPSocket.new supports "local_host" and "local_service".
| -rw-r--r-- | mrblib/socket.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mrblib/socket.rb b/mrblib/socket.rb index a32a3334d..f7d4ce3a8 100644 --- a/mrblib/socket.rb +++ b/mrblib/socket.rb @@ -236,6 +236,12 @@ class TCPSocket Addrinfo.foreach(host, service) { |ai| begin s = Socket._socket(ai.afamily, Socket::SOCK_STREAM, 0) + if local_host or local_service + local_host ||= (ai.afamily == Socket::AF_INET) ? "0.0.0.0" : "::" + local_service ||= "0" + bi = Addrinfo.getaddrinfo(local_host, local_service, ai.afamily, ai.socktype)[0] + Socket._bind(s, bi.to_sockaddr) + end Socket._connect(s, ai.to_sockaddr) super(s, "r+") return |
