diff --git a/cmd/labeler.go b/cmd/labeler.go index 0a3af60..b9bfe61 100644 --- a/cmd/labeler.go +++ b/cmd/labeler.go @@ -19,6 +19,7 @@ var labelerCmd = &cobra.Command{ func init() { rootCmd.AddCommand(labelerCmd) // flags + labelerCmd.Flags().String("bind-addr", ":3000", "tcp bind address") labelerCmd.Flags().String("db-username", "postgres", "database username") labelerCmd.Flags().String("db-password", "Me8140@01", "database user password") labelerCmd.Flags().String("db-host", "db", "database host address") diff --git a/labeler/app/app.go b/labeler/app/app.go index 2910f49..9790c3b 100644 --- a/labeler/app/app.go +++ b/labeler/app/app.go @@ -15,6 +15,7 @@ import ( func Run(cmd *cobra.Command, args []string) { // read flags logLevel, _ := cmd.Flags().GetString("log-level") + bindAddr, _ := cmd.Flags().GetString("bind-addr") userName, _ := cmd.Flags().GetString("db-username") userPass, _ := cmd.Flags().GetString("db-password") dbHost, _ := cmd.Flags().GetString("db-host") @@ -51,8 +52,8 @@ func Run(cmd *cobra.Command, args []string) { } defer svc.Close(ctx) // create server - server := server.New("", svc, log) - server.Start() + server := server.New(bindAddr, svc, log) + go server.Start() // info banner log.Info("started cml04-falcon-labeler service", logFields) // wait signal to finish diff --git a/labeler/server/server.go b/labeler/server/server.go index 963c546..1386635 100644 --- a/labeler/server/server.go +++ b/labeler/server/server.go @@ -100,7 +100,7 @@ func (s *Server) handleConnection(conn net.Conn) { break } s.log.Error("reading telegram failed", err, logger.LogFields{}) - continue // Keep reading from the connection + return // Keep reading from the connection } // Check if TelegramID is 6500, if not discard but keep connection @@ -109,13 +109,13 @@ func (s *Server) handleConnection(conn net.Conn) { "id": labelData.Header.TelegramID, "from": conn.RemoteAddr(), }) - continue // Discard the content but keep reading from the connection + return // Discard the content but keep reading from the connection } // Check if MessageLength matches the data received if labelData.Header.MessageLength != int16(bytesRead) { fmt.Printf("MessageLength mismatch: expected %d, got %d bytes from %s\n", labelData.Header.MessageLength, bytesRead, conn.RemoteAddr()) - continue // Discard the content but keep reading from the connection + return // Discard the content but keep reading from the connection } // Locking if necessary when interacting with shared resources (svc, etc.)