Commit 03452154 authored by Tomoyuki Sahara's avatar Tomoyuki Sahara

fix a possible address family mismatch.

parent a9593e1f
...@@ -283,16 +283,17 @@ class UDPSocket ...@@ -283,16 +283,17 @@ class UDPSocket
def initialize(af=Socket::AF_INET) def initialize(af=Socket::AF_INET)
self._bless self._bless
super(Socket._socket(af, Socket::SOCK_DGRAM, 0), "r+") super(Socket._socket(af, Socket::SOCK_DGRAM, 0), "r+")
@af = af
self self
end end
def bind(host, port) def bind(host, port)
Socket._bind(self.fileno, Socket.sockaddr_in(port, host)) Socket._bind(self.fileno, _sockaddr_in(port, host))
0 0
end end
def connect(host, port) def connect(host, port)
Socket._connect(self.fileno, Socket.sockaddr_in(port, host)) Socket._connect(self.fileno, _sockaddr_in(port, host))
0 0
end end
...@@ -309,13 +310,18 @@ class UDPSocket ...@@ -309,13 +310,18 @@ class UDPSocket
def send(mesg, flags, host=nil, port=nil) def send(mesg, flags, host=nil, port=nil)
if port if port
super(mesg, flags, Socket.sockaddr_in(port, host)) super(mesg, flags, _sockaddr_in(port, host))
elsif host elsif host
super(mesg, flags, host) super(mesg, flags, host)
else else
super(mesg, flags) super(mesg, flags)
end end
end end
def _sockaddr_in(port, host)
ai = Addrinfo.getaddrinfo(host, port, @af, Socket::SOCK_DGRAM)[0]
ai.to_sockaddr
end
end end
class Socket class Socket
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment