Echo: Use DODO_PORT_ECHO env variable when present
Change-Id: I2fa0b148dcfa8d4a2d52a989b6172d8c38baf37b
diff --git a/apps/echo/main.go b/apps/echo/main.go
index 9c46de6..81b5eb8 100644
--- a/apps/echo/main.go
+++ b/apps/echo/main.go
@@ -6,6 +6,8 @@
"io"
"log"
"net"
+ "os"
+ "strconv"
)
var port = flag.Int("port", 8080, "port to listen on")
@@ -22,10 +24,19 @@
func main() {
flag.Parse()
+ // Check for environment variable first
+ if envPort := os.Getenv("DODO_PORT_ECHO"); envPort != "" {
+ p, err := strconv.Atoi(envPort)
+ if err != nil {
+ log.Fatalf("Invalid DODO_PORT_ECHO value %s: %s", envPort, err)
+ }
+ *port = p
+ }
+
// Listen on TCP port from flag
listener, err := net.Listen("tcp", fmt.Sprintf(":%d", *port))
if err != nil {
- log.Fatalf("Failed to start server: %v", err)
+ log.Fatalf("Failed to start server: %s", err)
}
defer listener.Close()
fmt.Printf("Echo server listening on :%d\n", *port)
@@ -34,7 +45,7 @@
// Accept incoming connections
conn, err := listener.Accept()
if err != nil {
- log.Printf("Failed to accept connection: %v", err)
+ log.Printf("Failed to accept connection: %s", err)
continue
}
// Handle each connection in a separate goroutine
@@ -42,7 +53,7 @@
remoteAddr := c.RemoteAddr().String()
log.Printf("New connection from %s", remoteAddr)
if err := handleConnection(c); err != nil && err != io.EOF {
- log.Printf("Error handling connection from %s: %v", remoteAddr, err)
+ log.Printf("Error handling connection from %s: %s", remoteAddr, err)
}
log.Printf("Connection closed from %s", remoteAddr)
}(conn)
@@ -54,7 +65,7 @@
// Send welcome message
if _, err := conn.Write([]byte(welcomeMessage)); err != nil {
- return fmt.Errorf("sending welcome message: %w", err)
+ return fmt.Errorf("sending welcome message: %s", err)
}
// Create a buffer for reading data
@@ -68,7 +79,7 @@
}
// Echo the data back to the client
if _, err = conn.Write(buffer[:n]); err != nil {
- return fmt.Errorf("writing to connection: %w", err)
+ return fmt.Errorf("writing to connection: %s", err)
}
}
}
\ No newline at end of file