- if (argc > 0 && !strcmp(argv[0], "-d"))
- options |= SO_DEBUG;
-#if vax || pdp11
- sin.sin_port = htons(sin.sin_port);
+ if (argc > 0) {
+ sin.sin_port = atoi(*argv);
+ if (sin.sin_port <= 0) {
+ fprintf(stderr, "telnetd: %s: bad port #\n", *argv);
+ exit(1);
+ }
+ }
+ sin.sin_port = htons((u_short)sin.sin_port);
+#ifndef DEBUG
+ if (fork())
+ exit(0);
+ for (s = 0; s < 10; s++)
+ (void) close(s);
+ (void) open("/", 0);
+ (void) dup2(0, 1);
+ (void) dup2(0, 2);
+ { int tt = open("/dev/tty", 2);
+ if (tt > 0) {
+ ioctl(tt, TIOCNOTTY, 0);
+ close(tt);
+ }
+ }