(main): use `mini_inetd'

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@760 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1996-09-27 00:11:53 +00:00
parent 7ad859dc80
commit 7ceaba756d

View File

@@ -376,58 +376,21 @@ int main(int argc, char **argv)
argv += optind; argv += optind;
if (debug) { if (debug) {
int s, ns, foo; int port;
struct servent *sp; struct servent *sp;
static struct sockaddr_in sin = { AF_INET };
if (argc > 1) { if (argc > 1) {
usage (); usage ();
/* NOT REACHED */
} else if (argc == 1) { } else if (argc == 1) {
if (sp = getservbyname(*argv, "tcp")) { sp = getservbyname (*argv, "tcp");
sin.sin_port = sp->s_port; if (sp)
port = sp->s_port;
else
port = htons(atoi(*argv));
} else { } else {
sin.sin_port = atoi(*argv); port = k_getportbyname ("telnet", "tcp", htons(23));
if ((int)sin.sin_port <= 0) {
fprintf(stderr, "telnetd: %s: bad port #\n", *argv);
usage();
/* NOT REACHED */
} }
sin.sin_port = htons((u_short)sin.sin_port); mini_inetd (port);
}
} else {
sp = getservbyname("telnet", "tcp");
if (sp == 0) {
fprintf(stderr, "telnetd: tcp/telnet: unknown service\n");
exit(1);
}
sin.sin_port = sp->s_port;
}
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0) {
perror("telnetd: socket");;
exit(1);
}
(void) setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
(void *)&on, sizeof(on));
if (bind(s, (struct sockaddr *)&sin, sizeof sin) < 0) {
perror("bind");
exit(1);
}
if (listen(s, 1) < 0) {
perror("listen");
exit(1);
}
foo = sizeof sin;
ns = accept(s, (struct sockaddr *)&sin, &foo);
if (ns < 0) {
perror("accept");
exit(1);
}
(void) dup2(ns, 0);
(void) close(ns);
(void) close(s);
} else if (argc > 0) { } else if (argc > 0) {
usage(); usage();
/* NOT REACHED */ /* NOT REACHED */