summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-11-30 00:37:18 +0800
committerruki <[email protected]>2023-11-30 00:37:18 +0800
commitcaac43e35206cbe4f9dedc6935c5adce9c2575f5 (patch)
treebe1c0677d966e9c9d96611051208523ebb9563b3
parentaab8faf2ae1c7a540d7bea88880008245c37c356 (diff)
improve to disconnect remote cache
-rw-r--r--xmake/modules/private/service/remote_cache/client.lua33
-rw-r--r--xmake/modules/private/service/remote_cache/server.lua3
2 files changed, 2 insertions, 34 deletions
diff --git a/xmake/modules/private/service/remote_cache/client.lua b/xmake/modules/private/service/remote_cache/client.lua
index db6525491..2f61ad5ec 100644
--- a/xmake/modules/private/service/remote_cache/client.lua
+++ b/xmake/modules/private/service/remote_cache/client.lua
@@ -136,42 +136,13 @@ function remote_cache_client:disconnect()
print("%s: has been disconnected!", self)
return
end
- local addr = self:addr()
- local port = self:port()
- local sock = socket.connect(addr, port, {timeout = self:connect_timeout()})
- local session_id = self:session_id()
- local errors
- local ok = false
- print("%s: disconnect %s:%d ..", self, addr, port)
- if sock then
- local stream = socket_stream(sock, {send_timeout = self:send_timeout(), recv_timeout = self:recv_timeout()})
- if stream:send_msg(message.new_disconnect(session_id, {token = self:token()})) and stream:flush() then
- local msg = stream:recv_msg()
- if msg then
- vprint(msg:body())
- if msg:success() then
- ok = true
- else
- errors = msg:errors()
- end
- end
- end
- else
- -- server unreachable, but we still disconnect it.
- wprint("%s: server unreachable!", self)
- ok = true
- end
- if ok then
- print("%s: disconnected!", self)
- else
- print("%s: disconnect %s:%d failed, %s", self, addr, port, errors or "unknown")
- end
-- update status
local status = self:status()
status.token = nil
- status.connected = not ok
+ status.connected = false
self:status_save()
+ print("%s: disconnected!", self)
end
-- pull cache file
diff --git a/xmake/modules/private/service/remote_cache/server.lua b/xmake/modules/private/service/remote_cache/server.lua
index defb0992e..d509905a9 100644
--- a/xmake/modules/private/service/remote_cache/server.lua
+++ b/xmake/modules/private/service/remote_cache/server.lua
@@ -84,9 +84,6 @@ function remote_cache_server:_on_handle(stream, msg)
end
if msg:is_connect() then
session:open()
- elseif msg:is_disconnect() then
- session:close()
- self._SESSIONS[session_id] = nil
else
assert(session:is_connected(), "session has not been connected!")
if msg:is_push() then