package conn import ( "angel_server/consts" "angel_server/db" "bytes" "log/slog" "net" "strconv" ) func handleConnection(conn net.Conn) { defer conn.Close() consts.Logger.Info("Received conn", slog.String("remote", conn.RemoteAddr().String())) role := make([]byte, 8) n, err := conn.Read(role) if err != nil { consts.Logger.Error("Failed to read role", slog.String("error", err.Error())) return } layer_id := string(bytes.TrimSpace(role[:n])) consts.Logger.Debug(layer_id) int_meow, _ := strconv.Atoi(layer_id) if (int_meow == 0) { controller_impl(conn) } else if (db.CheckLayer(consts.Db, int_meow)) { agent_impl(conn, int_meow) } else { conn.Close() } consts.Logger.Info("Lost conn", slog.String("remote", conn.RemoteAddr().String())) }