mirror of
https://github.com/TimeCrafters/timecrafters_configuration_tool_desktop.git
synced 2025-12-16 05:42:35 +00:00
Added socket error storage to client, TACNET UI now semi-functional
This commit is contained in:
@@ -7,7 +7,7 @@ module TAC
|
||||
attr_reader :uuid, :read_queue, :write_queue, :socket,
|
||||
:packets_sent, :packets_received,
|
||||
:data_sent, :data_received
|
||||
attr_accessor :sync_interval
|
||||
attr_accessor :sync_interval, :last_socket_error, :socket_error
|
||||
def initialize
|
||||
@uuid = SecureRandom.uuid
|
||||
@read_queue = []
|
||||
@@ -15,6 +15,10 @@ module TAC
|
||||
|
||||
@sync_interval = 100
|
||||
|
||||
@last_socket_error = nil
|
||||
@socket_error = false
|
||||
@bound = false
|
||||
|
||||
@packets_sent, @packets_received = 0, 0
|
||||
@data_sent, @data_received = 0, 0
|
||||
end
|
||||
@@ -25,6 +29,7 @@ module TAC
|
||||
|
||||
def socket=(socket)
|
||||
@socket = socket
|
||||
@bound = true
|
||||
|
||||
listen
|
||||
end
|
||||
@@ -82,12 +87,16 @@ module TAC
|
||||
end
|
||||
end
|
||||
|
||||
def connected?
|
||||
!closed?
|
||||
def socket_error?
|
||||
@socket_error
|
||||
end
|
||||
|
||||
def bound?
|
||||
@socket.bound? if @socket
|
||||
def connected?
|
||||
if closed? == true || closed? == nil
|
||||
false
|
||||
else
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
def closed?
|
||||
@@ -97,7 +106,9 @@ module TAC
|
||||
def write(message)
|
||||
begin
|
||||
@socket.puts("#{message}\r\n\n")
|
||||
rescue Errno::EPIPE, IOError => error
|
||||
rescue => error
|
||||
@last_socket_error = error
|
||||
@socket_error = true
|
||||
log.e(TAG, error.message)
|
||||
close
|
||||
end
|
||||
@@ -109,7 +120,10 @@ module TAC
|
||||
begin
|
||||
data = @socket.readpartial(CHUNK_SIZE)
|
||||
message += data
|
||||
rescue Errno::EPIPE, EOFError
|
||||
rescue => error
|
||||
@last_socket_error = error
|
||||
@socket_error = true
|
||||
|
||||
message = ""
|
||||
break
|
||||
end until message.end_with?("\r\n\n")
|
||||
|
||||
@@ -7,6 +7,8 @@ module TAC
|
||||
@hostname = hostname
|
||||
@port = port
|
||||
|
||||
@client = nil
|
||||
|
||||
@last_sync_time = 0
|
||||
@sync_interval = SYNC_INTERVAL
|
||||
|
||||
@@ -20,7 +22,7 @@ module TAC
|
||||
@packet_handler = PacketHandler.new(host_is_a_connection: true)
|
||||
end
|
||||
|
||||
def connect(error_callback)
|
||||
def connect
|
||||
return if @client
|
||||
|
||||
@client = Client.new
|
||||
@@ -39,8 +41,13 @@ module TAC
|
||||
end
|
||||
|
||||
rescue => error
|
||||
p error
|
||||
error_callback.call(error)
|
||||
log.e(TAG, error)
|
||||
|
||||
if @client
|
||||
@client.close
|
||||
@client.last_socket_error = error
|
||||
@client.socket_error = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -68,12 +75,16 @@ module TAC
|
||||
end
|
||||
|
||||
def connected?
|
||||
!closed?
|
||||
@client.connected? if @client
|
||||
end
|
||||
|
||||
def closed?
|
||||
@client.closed? if @client
|
||||
end
|
||||
|
||||
def close
|
||||
@client.close if @client
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -35,7 +35,7 @@ module TAC
|
||||
begin
|
||||
log.i(TAG, "Starting server...")
|
||||
@socket = TCPServer.new(@port)
|
||||
rescue => error
|
||||
rescue IOError => error
|
||||
log.e(TAG, error)
|
||||
|
||||
@connection_attempts += 1
|
||||
@@ -46,8 +46,8 @@ module TAC
|
||||
while @socket && !@socket.closed?
|
||||
begin
|
||||
run_server
|
||||
rescue => error
|
||||
p error
|
||||
rescue IOError => error
|
||||
log.e(TAG, error)
|
||||
@socket.close if @socket
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user