Class: UDPSocket
- Inherits:
-
Object
- Object
- UDPSocket
- Defined in:
- lib/resolv-replace.rb
Instance Method Summary collapse
- #bind(host, port) ⇒ Object
- #connect(host, port) ⇒ Object
- #original_resolv_bind ⇒ Object
- #original_resolv_connect ⇒ Object
- #original_resolv_send ⇒ Object
- #send(mesg, flags, *rest) ⇒ Object
Instance Method Details
#bind(host, port) ⇒ Object
25 26 27 28 |
# File 'lib/resolv-replace.rb', line 25 def bind(host, port) host = IPSocket.getaddress(host) if host != "" original_resolv_bind(host, port) end |
#connect(host, port) ⇒ Object
31 32 33 |
# File 'lib/resolv-replace.rb', line 31 def connect(host, port) original_resolv_connect(IPSocket.getaddress(host), port) end |
#original_resolv_bind ⇒ Object
24 |
# File 'lib/resolv-replace.rb', line 24 alias original_resolv_bind bind |
#original_resolv_connect ⇒ Object
30 |
# File 'lib/resolv-replace.rb', line 30 alias original_resolv_connect connect |
#original_resolv_send ⇒ Object
35 |
# File 'lib/resolv-replace.rb', line 35 alias original_resolv_send send |
#send(mesg, flags, *rest) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/resolv-replace.rb', line 36 def send(mesg, flags, *rest) if rest.length == 2 host, port = rest begin addrs = Resolv.getaddresses(host) rescue Resolv::ResolvError raise SocketError, "Hostname not known: #{host}" end err = nil addrs[0...-1].each {|addr| begin return original_resolv_send(mesg, flags, addr, port) rescue SystemCallError end } original_resolv_send(mesg, flags, addrs[-1], port) else original_resolv_send(mesg, flags, *rest) end end |