diff options
Diffstat (limited to 'src/lib/libc/net/rcmd.c')
-rw-r--r-- | src/lib/libc/net/rcmd.c | 34 |
1 files changed, 1 insertions, 33 deletions
diff --git a/src/lib/libc/net/rcmd.c b/src/lib/libc/net/rcmd.c index c933f5b447..bd920faadb 100644 --- a/src/lib/libc/net/rcmd.c +++ b/src/lib/libc/net/rcmd.c | |||
@@ -34,7 +34,7 @@ | |||
34 | */ | 34 | */ |
35 | 35 | ||
36 | #if defined(LIBC_SCCS) && !defined(lint) | 36 | #if defined(LIBC_SCCS) && !defined(lint) |
37 | static char *rcsid = "$OpenBSD: rcmd.c,v 1.31 1998/03/19 00:30:05 millert Exp $"; | 37 | static char *rcsid = "$OpenBSD: rcmd.c,v 1.32 1999/12/16 21:30:34 deraadt Exp $"; |
38 | #endif /* LIBC_SCCS and not lint */ | 38 | #endif /* LIBC_SCCS and not lint */ |
39 | 39 | ||
40 | #include <sys/param.h> | 40 | #include <sys/param.h> |
@@ -253,38 +253,6 @@ bad: | |||
253 | return (-1); | 253 | return (-1); |
254 | } | 254 | } |
255 | 255 | ||
256 | int | ||
257 | rresvport(alport) | ||
258 | int *alport; | ||
259 | { | ||
260 | struct sockaddr_in sin; | ||
261 | int s; | ||
262 | |||
263 | bzero(&sin, sizeof sin); | ||
264 | sin.sin_len = sizeof(struct sockaddr_in); | ||
265 | sin.sin_family = AF_INET; | ||
266 | sin.sin_addr.s_addr = INADDR_ANY; | ||
267 | s = socket(AF_INET, SOCK_STREAM, 0); | ||
268 | if (s < 0) | ||
269 | return (-1); | ||
270 | sin.sin_port = htons((in_port_t)*alport); | ||
271 | if (*alport < IPPORT_RESERVED - 1) { | ||
272 | if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) >= 0) | ||
273 | return (s); | ||
274 | if (errno != EADDRINUSE) { | ||
275 | (void)close(s); | ||
276 | return (-1); | ||
277 | } | ||
278 | } | ||
279 | sin.sin_port = 0; | ||
280 | if (bindresvport(s, &sin) == -1) { | ||
281 | (void)close(s); | ||
282 | return (-1); | ||
283 | } | ||
284 | *alport = (int)ntohs(sin.sin_port); | ||
285 | return (s); | ||
286 | } | ||
287 | |||
288 | int __check_rhosts_file = 1; | 256 | int __check_rhosts_file = 1; |
289 | char *__rcmd_errstr; | 257 | char *__rcmd_errstr; |
290 | 258 | ||