From 7ded7f304a134a94a5f2e9e80543ca3a765580d9 Mon Sep 17 00:00:00 2001 From: John Kohl Date: Wed, 22 Jun 1988 10:05:58 +0000 Subject: cleanup auto-port assignment. lint fix (bug fix: pass addr of buffer, not addr of addr of buffer) --- server/bdump.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'server') 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 */ -- cgit v1.2.3