commit cc6fb3938d82d3ea7ce8abe0dfe9029385983b00
parent f74b68a36be462737b8e07e47b7287d341dd8687
Author: mdnrz <mehdeenoroozi@gmail.com>
Date: Tue, 8 Apr 2025 10:59:09 +0330
avoid duplicate usernames
Diffstat:
1 file changed, 14 insertions(+), 0 deletions(-)
diff --git a/gotel.go b/gotel.go
@@ -51,6 +51,13 @@ func addClient(conn net.Conn, Client_q chan Client) {
}
}
+func checkForDuplicateUN(needle string, heystack map[string]Client) bool {
+ for _, client := range heystack {
+ if client.UserName == needle { return true }
+ }
+ return false;
+}
+
func server(Client_q chan Client) {
clientsOnline := make(map[string]Client)
clientsOffline := make(map[string]Client)
@@ -65,6 +72,13 @@ func server(Client_q chan Client) {
clientOffline, ok := clientsOffline[keyString];
if ok {
clientOffline.UserName = strings.TrimRight(client.Text, "\r\n");
+ if checkForDuplicateUN(clientOffline.UserName, clientsOnline) {
+ _, err := clientsOffline[keyString].Conn.Write([]byte("UserName already exists; Try something else\n> "));
+ if err != nil {
+ log.Printf("Could not send message to client %s\n", keyString)
+ }
+ break;
+ }
log.Printf("logging in %s\n", clientOffline.UserName);
clientsOnline[keyString] = clientOffline;
delete(clientsOffline, keyString);