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 |
# File 'lib/resolv-replace.rb', line 25 def bind(host, port) original_resolv_bind(IPSocket.getaddress(host), port) end |
#connect(host, port) ⇒ Object
30 31 32 |
# File 'lib/resolv-replace.rb', line 30 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
29 |
# File 'lib/resolv-replace.rb', line 29 alias original_resolv_connect connect |
#original_resolv_send ⇒ Object
34 |
# File 'lib/resolv-replace.rb', line 34 alias original_resolv_send send |
#send(mesg, flags, *rest) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/resolv-replace.rb', line 35 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 |