diff options
author | Robert S. French <rfrench@mit.edu> | 1988-05-17 17:21:01 +0000 |
---|---|---|
committer | Robert S. French <rfrench@mit.edu> | 1988-05-17 17:21:01 +0000 |
commit | 031ec0f258f152c1e20905b381aa7f5974db1f3d (patch) | |
tree | 1c15619ec8a5192e2d5095c6efde5e9a47ddc7ce /lib/ZOpenPort.c | |
parent | 4d21b4b5da809cdf4499190a1e27bff679a90422 (diff) |
All sorts of changes for ver 0.2
Diffstat (limited to 'lib/ZOpenPort.c')
-rw-r--r-- | lib/ZOpenPort.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/ZOpenPort.c b/lib/ZOpenPort.c index 3cc2bd3..54e0ae8 100644 --- a/lib/ZOpenPort.c +++ b/lib/ZOpenPort.c @@ -24,9 +24,9 @@ static char rcsid_ZOpenPort_c[] = "$Header$"; Code_t ZOpenPort(port) u_short *port; { - int retval; struct sockaddr_in bindin; - + int len; + (void) ZClosePort(); if ((__Zephyr_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { @@ -43,16 +43,18 @@ Code_t ZOpenPort(port) bindin.sin_addr.s_addr = INADDR_ANY; - if ((retval = bind(__Zephyr_fd, &bindin, sizeof(bindin))) < 0) { + if (bind(__Zephyr_fd, &bindin, sizeof(bindin)) < 0) { if (errno == EADDRINUSE && port && *port) return (ZERR_PORTINUSE); else return (errno); } - if (!bindin.sin_port) - if (getsockname(__Zephyr_fd, &bindin, sizeof(bindin))) + if (!bindin.sin_port) { + len = sizeof(bindin); + if (getsockname(__Zephyr_fd, &bindin, &len)) return (errno); + } __Zephyr_port = bindin.sin_port; __Zephyr_open = 1; |