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.
This commit is contained in:
parent
9fc38d43d4
commit
d618223086
1 changed files with 7 additions and 11 deletions
|
@ -121,7 +121,7 @@ listen(fd, backlog)
|
|||
int backlog;
|
||||
{
|
||||
Rock *r;
|
||||
int n, cfd, port;
|
||||
int n, cfd;
|
||||
char msg[128];
|
||||
struct sockaddr_un *lunix;
|
||||
|
||||
|
@ -139,17 +139,13 @@ listen(fd, backlog)
|
|||
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!!! */
|
||||
|
|
Loading…
Reference in a new issue