end
begin
+ result = false
+
# create client
client = BuildCommClient.create( addr, port, log )
if client.nil? then
log.error( "Creating communication client failed!", Log::LV_USER)
- return false
+ exit(1)
end
# download file
- result = true
file_name = file_path.split("/")[-1]
msg = "DOWNLOAD|#{dock}|#{file_name}"
if client.send( msg ) then
end
begin
+ result = false
+
# create client
client = BuildCommClient.create( addr, port, log )
if client.nil? then
log.error( "Creating communication client failed!", Log::LV_USER)
- return false
+ exit(1)
end
# upload file
# create
# if sec 0 or nil then not set timeout. it's timeout spec
- def self.create(ip, port, log = nil, sec = 5)
- # open socket
- socket = nil
- begin
- timeout(sec) do
- socket = TCPSocket.open( ip, port )
+ def self.create(ip, port, log = nil, sec = 10, retries = 3)
+ # open socket
+ socket = nil
+ for i in 1..retries
+ begin
+ timeout(sec) do
+ socket = TCPSocket.open( ip, port )
+ end
+ rescue Timeout::Error
+ log.warn("Connection Timed Out!") if not log.nil?
+ socket = nil
+ rescue => e # unknown exception
+ log.warn("TCPSocket Error: #{e.message}") if not log.nil?
+ socket = nil
end
- rescue Timeout::Error
- return nil
- rescue
- # unknown exception
- return nil
- end
+ if not socket.nil? then break end
+ log.warn("Retrying...") if not log.nil? and i < retries
+ end
# refused
if socket.nil? then