summaryrefslogtreecommitdiff
path: root/src/lib/libc/net/rcmd.c
diff options
context:
space:
mode:
authorderaadt <>1999-12-16 21:30:34 +0000
committerderaadt <>1999-12-16 21:30:34 +0000
commit4bbe99685ce9ae55f318adc00406e0caf4432bdf (patch)
tree8382773087d5ec817a48ab45a39f045c3d6f5539 /src/lib/libc/net/rcmd.c
parentac10646d45729b02230d6ba16729bb91850b3186 (diff)
downloadopenbsd-4bbe99685ce9ae55f318adc00406e0caf4432bdf.tar.gz
openbsd-4bbe99685ce9ae55f318adc00406e0caf4432bdf.tar.bz2
openbsd-4bbe99685ce9ae55f318adc00406e0caf4432bdf.zip
rresvport_af() and bindresvport_af()
Diffstat (limited to 'src/lib/libc/net/rcmd.c')
-rw-r--r--src/lib/libc/net/rcmd.c34
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)
37static char *rcsid = "$OpenBSD: rcmd.c,v 1.31 1998/03/19 00:30:05 millert Exp $"; 37static 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
256int
257rresvport(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
288int __check_rhosts_file = 1; 256int __check_rhosts_file = 1;
289char *__rcmd_errstr; 257char *__rcmd_errstr;
290 258