+ }
+ 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);
+ }
+ }
+#endif
+again:
+ s = socket(0, SOCK_STREAM, 0, 0);
+ if (s < 0) {
+ perror("telnetd: socket");;
+ sleep(5);
+ goto again;
+ }
+ while (bind(s, (caddr_t)&sin, sizeof (sin), 0) < 0) {
+ perror("telnetd: bind");
+ sleep(5);
+ }
+ listen(s, 10);
+ for (;;) {
+ int s2;
+
+ s2 = accept(s, (caddr_t)0, 0, 0);
+ if (s2 < 0) {
+ perror("telnetd: accept");