Class: UDPSocket
Instance Method Summary collapse
-
#bind(host, port) ⇒ Object
:startdoc:.
-
#connect(host, port) ⇒ Object
:startdoc:.
-
#original_resolv_bind ⇒ Object
:stopdoc:.
-
#original_resolv_connect ⇒ Object
:stopdoc:.
-
#original_resolv_send ⇒ Object
:stopdoc:.
-
#send(mesg, flags, *rest) ⇒ Object
:startdoc:.
Methods inherited from IPSocket
getaddress, original_resolv_getaddress
Instance Method Details
#bind(host, port) ⇒ Object
:startdoc:
33 34 35 36 |
# File 'lib/resolv-replace.rb', line 33 def bind(host, port) host = IPSocket.getaddress(host) if host != "" original_resolv_bind(host, port) end |
#connect(host, port) ⇒ Object
:startdoc:
41 42 43 |
# File 'lib/resolv-replace.rb', line 41 def connect(host, port) original_resolv_connect(IPSocket.getaddress(host), port) end |
#original_resolv_bind ⇒ Object
:stopdoc:
31 |
# File 'lib/resolv-replace.rb', line 31 alias original_resolv_bind bind |
#original_resolv_connect ⇒ Object
:stopdoc:
39 |
# File 'lib/resolv-replace.rb', line 39 alias original_resolv_connect connect |
#original_resolv_send ⇒ Object
:stopdoc:
46 |
# File 'lib/resolv-replace.rb', line 46 alias original_resolv_send send |
#send(mesg, flags, *rest) ⇒ Object
:startdoc:
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/resolv-replace.rb', line 48 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 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 |