diff options
author | 1988-06-22 10:05:58 +0000 | |
---|---|---|
committer | 1988-06-22 10:05:58 +0000 | |
commit | 7ded7f304a134a94a5f2e9e80543ca3a765580d9 (patch) | |
tree | 236db82be0f013b0c3cacc0e6dddb1eb480b7dec /server | |
parent | c630d5d5608114cf9cd1acb6462780829caa7b53 (diff) |
cleanup auto-port assignment.
lint fix (bug fix: pass addr of buffer, not addr of addr of buffer)
Diffstat (limited to 'server')
-rw-r--r-- | server/bdump.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/server/bdump.c b/server/bdump.c index b89d9af..5a27bfc 100644 --- a/server/bdump.c +++ b/server/bdump.c @@ -96,11 +96,21 @@ struct sockaddr_in *who; bdump_sin.sin_addr.s_addr = INADDR_ANY; bdump_sin.sin_family = AF_INET; if ((retval = bind(bdump_socket, (struct sockaddr *) &bdump_sin, sizeof(bdump_sin))) < 0) { - syslog(LOG_ERR, "bdump bind %d: %m", htons(bdump_sin.sin_port)); + syslog(LOG_ERR, "bdump bind: %m"); (void) close(bdump_socket); bdump_socket = -1; return; } + if (!bdump_sin.sin_port) { + int len = sizeof(bdump_sin); + if (getsockname(bdump_socket, + (struct sockaddr *)&bdump_sin, &len)) { + syslog(LOG_ERR, "bdump getsockname: %m"); + (void) close(bdump_socket); + bdump_socket = -1; + return; + } + } #else int bdump_port = IPPORT_RESERVED - 1; /* @@ -1068,7 +1078,7 @@ int len; return(ZSRV_LEN); } } - if ((count = net_write(live_socket, *pack, packlen)) != packlen) + if ((count = net_write(live_socket, pack, packlen)) != packlen) if (count < 0) { syslog(LOG_WARNING, "snt xmit: %m"); xfree(pack); /* free allocated storage */ |