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