code: plan9front

Download patch

ref: d618223086e32bc26d64eb20bfcb3de31536782f
parent: 9fc38d43d45185c25cf74361b4bb778c611b015d
author: Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net>
date: Fri Jun 10 16:22:39 EDT 2022

ape/bsd/listen.c: Do not try to issue "announce *".

"port >= 0" is always true, because the port always gets filtered
through "htons" which returns "unsigned short", so we can just drop
the "else" branch here.

Anyway "announce 0" works fine with the Plan9 API, there is not need
for "announce *" here.

--- a/sys/src/ape/lib/bsd/listen.c
+++ b/sys/src/ape/lib/bsd/listen.c
@@ -121,7 +121,7 @@
 	int backlog;
 {
 	Rock *r;
-	int n, cfd, port;
+	int n, cfd;
 	char msg[128];
 	struct sockaddr_un *lunix;
 
@@ -139,17 +139,13 @@
 			errno = EBADF;
 			return -1;
 		}
-		port = _sock_inport(&r->addr);
-		if(port >= 0) {
-			if(write(cfd, "bind 0", 6) < 0) {
-				errno = EGREG;
-				close(cfd);
-				return -1;
-			}
-			snprintf(msg, sizeof msg, "announce %d", port);
+		/* FIXME: What is this good for? */
+		if(write(cfd, "bind 0", 6) < 0) {
+			errno = EGREG;
+			close(cfd);
+			return -1;
 		}
-		else
-			strcpy(msg, "announce *");
+		snprintf(msg, sizeof msg, "announce %d", _sock_inport(&r->addr));
 		n = write(cfd, msg, strlen(msg));
 		if(n < 0){
 			errno = EOPNOTSUPP;	/* Improve error reporting!!! */