diff options
| -rw-r--r-- | internal/packet/packet.go | 70 | ||||
| -rw-r--r-- | internal/server/server.go | 7 |
2 files changed, 74 insertions, 3 deletions
diff --git a/internal/packet/packet.go b/internal/packet/packet.go index fb3e7e8..ffda3ef 100644 --- a/internal/packet/packet.go +++ b/internal/packet/packet.go @@ -97,7 +97,75 @@ func Init() { } func (e PacketType) IsSupported() bool { - return e < PacketMax + return 0 <= e && e < PacketMax +} + +func (e PacketType) String() string { + switch e { + case PacketBlockInfo: + return "PacketBlockInfo" + case PacketBlockUser: + return "PacketBlockUser" + case PacketCreateFrequency: + return "PacketCreateFrequency" + case PacketCreateNetwork: + return "PacketCreateNetwork" + case PacketDeleteFrequency: + return "PacketDeleteFrequency" + case PacketDeleteMessage: + return "PacketDeleteMessage" + case PacketDeleteNetwork: + return "PacketDeleteNetwork" + case PacketEditMessage: + return "PacketEditMessage" + case PacketError: + return "PacketError" + case PacketFrequenciesInfo: + return "PacketFrequenciesInfo" + case PacketGetBannedMembers: + return "PacketGetBannedMembers" + case PacketGetUserData: + return "PacketGetUserData" + case PacketGetUsers: + return "PacketGetUsers" + case PacketMax: + return "PacketMax" + case PacketMembersInfo: + return "PacketMembersInfo" + case PacketMessagesInfo: + return "PacketMessagesInfo" + case PacketNetworksInfo: + return "PacketNetworksInfo" + case PacketNotificationsInfo: + return "PacketNotificationsInfo" + case PacketRequestMessages: + return "PacketRequestMessages" + case PacketSendMessage: + return "PacketSendMessage" + case PacketSetLastReadMessages: + return "PacketSetLastReadMessages" + case PacketSetMember: + return "PacketSetMember" + case PacketSetUserData: + return "PacketSetUserData" + case PacketSwapFrequencies: + return "PacketSwapFrequencies" + case PacketTransferNetwork: + return "PacketTransferNetwork" + case PacketTrustInfo: + return "PacketTrustInfo" + case PacketTrustUser: + return "PacketTrustUser" + case PacketUpdateFrequency: + return "PacketUpdateFrequency" + case PacketUpdateNetwork: + return "PacketUpdateNetwork" + case PacketUsersInfo: + return "PacketUsersInfo" + default: + assert.Assert(!e.IsSupported(), "missing string for supported packet type", "type", e) + return fmt.Sprintf("UnsupportedPacket(%d)", e) + } } const ( diff --git a/internal/server/server.go b/internal/server/server.go index aa34a78..64f45f8 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -161,7 +161,7 @@ func (server *server) handleConnection(conn net.Conn) { pubKey, err := handleAuth(conn) if err != nil { initialCancel() - log.Println(addr, err) + log.Println(addr, "auth error:", err) _ = conn.Close() log.Println(addr, "disconnected") return @@ -205,7 +205,7 @@ func (server *server) handleConnection(conn net.Conn) { if sameAddress { server.RemoveSession(sess.ID()) } - log.Println(addr, "disconnected") + log.Println(addr, "disconnected gracefully") }() go func() { @@ -251,6 +251,8 @@ func (server *server) handleConnection(conn net.Conn) { if err != nil { if !errors.Is(err, io.EOF) { log.Println(addr, err) + } else { + log.Println(addr, "disconnecting gracefully...") } break } @@ -264,6 +266,7 @@ func (server *server) handleConnection(conn net.Conn) { payload := packet.Error{Error: err.Error()} pkt := packet.NewPacket(packet.NewMsgPackEncoder(&payload)) sess.Write(ctx, pkt) + log.Println(addr, "received malformed packet:", err) break } } |
