- int s, pid;
- union wait status;
- struct servent *sp;
-
- sp = getservbyname("telnet", "tcp");
- if (sp == 0) {
- fprintf(stderr, "telnetd: tcp/telnet: unknown service\n");
- exit(1);
- }
- sin.sin_port = sp->s_port;
- argc--, argv++;
- if (argc > 0 && !strcmp(argv[0], "-d"))
- options |= SO_DEBUG, argc--, argv++;
- if (argc > 0) {
- sin.sin_port = atoi(*argv);
- if (sin.sin_port <= 0) {
- fprintf(stderr, "telnetd: %s: bad port #\n", *argv);
- exit(1);
- }
+ struct sockaddr_in from;
+ int on = 1, fromlen;
+
+ fromlen = sizeof (from);
+ if (getpeername(0, &from, &fromlen) < 0) {
+ fprintf(stderr, "%s: ", argv[0]);
+ perror("getpeername");
+ _exit(1);