Feature #6617 » net-http_bind_to_local_ip.patch
| lib/net/http.rb | ||
|---|---|---|
|
def initialize(address, port = nil)
|
||
|
@address = address
|
||
|
@port = (port || HTTP.default_port)
|
||
|
@local_host = nil
|
||
|
@local_port = nil
|
||
|
@curr_http_version = HTTPVersion
|
||
|
@keep_alive_timeout = 2
|
||
|
@last_communicated = nil
|
||
| ... | ... | |
|
# The port number to connect to.
|
||
|
attr_reader :port
|
||
|
# The local host used to estabilish the connection.
|
||
|
attr_accessor :local_host
|
||
|
# The local port used to estabilish the connection.
|
||
|
attr_accessor :local_port
|
||
|
# Number of seconds to wait for the connection to open. Any number
|
||
|
# may be used, including Floats for fractional seconds. If the HTTP
|
||
|
# object cannot open a connection in this many seconds, it raises a
|
||
| ... | ... | |
|
def connect
|
||
|
D "opening connection to #{conn_address()}..."
|
||
|
s = Timeout.timeout(@open_timeout, Net::OpenTimeout) {
|
||
|
TCPSocket.open(conn_address(), conn_port())
|
||
|
TCPSocket.open(conn_address(), conn_port(), @local_host, @local_port)
|
||
|
}
|
||
|
D "opened"
|
||
|
if use_ssl?
|
||