diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-10-20 09:16:51 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-10-20 09:16:51 +0000 |
commit | 582463d9826b8b07d01846d8fdcf2beba45df1f9 (patch) | |
tree | a8b228ec728a280466b9f20331a44f7920122757 | |
parent | 0d7f4e94223bb7413b98f39ac03ddc2970f2bbb3 (diff) | |
download | mogilefs-client-582463d9826b8b07d01846d8fdcf2beba45df1f9.tar.gz |
-rw-r--r-- | lib/mogilefs/util.rb | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/mogilefs/util.rb b/lib/mogilefs/util.rb index d621cc1..bca502a 100644 --- a/lib/mogilefs/util.rb +++ b/lib/mogilefs/util.rb @@ -111,20 +111,16 @@ require 'timeout' class MogileFS::Timeout < Timeout::Error; end class Socket - attr_accessor :mogilefs_addr, :mogilefs_connected, :mogilefs_size + attr_accessor :mogilefs_size def mogilefs_init(host = nil, port = nil) - return true if defined?(@mogilefs_connected) - - @mogilefs_addr = Socket.sockaddr_in(port, host).freeze if port && host + mogilefs_addr = Socket.sockaddr_in(port, host) begin - connect_nonblock(@mogilefs_addr) - @mogilefs_connected = true + connect_nonblock(mogilefs_addr) rescue Errno::EINPROGRESS - nil rescue Errno::EISCONN - @mogilefs_connected = true + true end end @@ -150,7 +146,7 @@ class Socket while timeout > 0 t0 = Time.now r = IO.select(nil, [sock], nil, timeout) - return sock if r && r[1] && sock.mogilefs_init + return sock if r && r[1] && sock.mogilefs_init(host, port) timeout -= (Time.now - t0) end |