diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2021-08-28 14:18:56 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2021-08-28 14:18:56 +0200 |
commit | 2f9a8ca29b36a753d004aa9e111f18f7fc87c1fe (patch) | |
tree | 36c5b49e8e7159c3053cf26e09b2982a9cbb8fbd | |
parent | eab858ba6b6e1d319c2d02cd0a7a13974746e7ef (diff) |
Differentiate between timeouts and disconnects
-rw-r--r-- | client_conn.go | 8 | ||||
-rw-r--r-- | connect.go | 5 | ||||
-rw-r--r-- | content.go | 7 | ||||
-rw-r--r-- | main.go | 5 | ||||
-rw-r--r-- | server_conn.go | 7 |
5 files changed, 24 insertions, 8 deletions
diff --git a/client_conn.go b/client_conn.go index 4be45ba..d665cc5 100644 --- a/client_conn.go +++ b/client_conn.go @@ -10,6 +10,7 @@ import ( "github.com/HimbeerserverDE/srp" "github.com/anon55555/mt" + "github.com/anon55555/mt/rudp" ) type clientState uint8 @@ -63,7 +64,12 @@ func handleClt(cc *clientConn) { pkt, err := cc.Recv() if err != nil { if errors.Is(err, net.ErrClosed) { - cc.log("<->", "disconnect") + if errors.Is(cc.WhyClosed(), rudp.ErrTimedOut) { + cc.log("<->", "timeout") + } else { + cc.log("<->", "disconnect") + } + if cc.name != "" { playersMu.Lock() delete(players, cc.name) @@ -6,10 +6,13 @@ import ( "github.com/anon55555/mt" ) -func connect(conn net.Conn) *serverConn { +func connect(conn net.Conn, cc *clientConn) *serverConn { sc := &serverConn{ Peer: mt.Connect(conn), + clt: cc, } + sc.log("-->", "connect") + cc.srv = sc go handleSrv(sc) return sc @@ -10,6 +10,7 @@ import ( "github.com/HimbeerserverDE/srp" "github.com/anon55555/mt" + "github.com/anon55555/mt/rudp" ) type mediaFile struct { @@ -63,7 +64,11 @@ func handleContent(cc *contentConn) { pkt, err := cc.Recv() if err != nil { if errors.Is(err, net.ErrClosed) { - cc.log("<->", "disconnect") + if errors.Is(cc.WhyClosed(), rudp.ErrTimedOut) { + cc.log("<->", "timeout") + } else { + cc.log("<->", "disconnect") + } break } @@ -123,10 +123,7 @@ func main() { return } - sc := connect(conn) - sc.clt = cc - cc.srv = sc - sc.log("-->", "connect") + connect(conn, cc) }() } } diff --git a/server_conn.go b/server_conn.go index 5b74b5d..5cd58bf 100644 --- a/server_conn.go +++ b/server_conn.go @@ -9,6 +9,7 @@ import ( "github.com/HimbeerserverDE/srp" "github.com/anon55555/mt" + "github.com/anon55555/mt/rudp" ) type serverConn struct { @@ -54,7 +55,11 @@ func handleSrv(sc *serverConn) { pkt, err := sc.Recv() if err != nil { if errors.Is(err, net.ErrClosed) { - sc.log("<->", "disconnect") + if errors.Is(sc.WhyClosed(), rudp.ErrTimedOut) { + sc.log("<->", "timeout") + } else { + sc.log("<->", "disconnect") + } break } |