]> Zhao Yanbai Git Server - minix.git/commitdiff
Importing libexec/fingerd 16/616/1
authorThomas Cort <tcort@minix3.org>
Sat, 1 Jun 2013 14:14:33 +0000 (14:14 +0000)
committerThomas Cort <tcort@minix3.org>
Sun, 2 Jun 2013 12:14:05 +0000 (08:14 -0400)
13 files changed:
commands/Makefile
commands/fingerd/Makefile [deleted file]
commands/fingerd/fingerd.c [deleted file]
distrib/sets/lists/minix/mi
etc/rc.daemons.dist
libexec/Makefile
libexec/fingerd/Makefile [new file with mode: 0644]
libexec/fingerd/fingerd.8 [new file with mode: 0644]
libexec/fingerd/fingerd.c [new file with mode: 0644]
libexec/fingerd/pathnames.h [new file with mode: 0644]
man/man8/Makefile
man/man8/fingerd.8 [deleted file]
releasetools/nbsd_ports

index f731122f18c7a3a5eb1bb8f0f79b8d9bee3e2764..aa9c0d42ae657e7f83aa23e03f9272642b5a7db1 100644 (file)
@@ -9,7 +9,7 @@ SUBDIR= add_route arp ash at backup basename btrace \
        dd decomp16 DESCRIBE devmand devsize df dhcpd \
        dhrystone diff dirname diskctl dumpcore \
        eject env expand factor fbdctl \
-       find fingerd fix fold format fortune fsck.mfs \
+       find fix fold format fortune fsck.mfs \
        gcore gcov-pull getty grep hexdump host \
        hostaddr id ifconfig ifdef \
        intr ipcrm ipcs irdpd isoread last \
diff --git a/commands/fingerd/Makefile b/commands/fingerd/Makefile
deleted file mode 100644 (file)
index 01c9369..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-PROG=  in.fingerd
-SRCS=  fingerd.c
-MAN=
-
-.include <bsd.prog.mk>
diff --git a/commands/fingerd/fingerd.c b/commands/fingerd/fingerd.c
deleted file mode 100644 (file)
index 92cacab..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved.  The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)in.fingerd.c 1.1 87/12/21 SMI"; /* from UCB 5.1 6/6/85 */
-#endif /* not lint */
-
-/*
- * Finger server.
- */
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-
-int main( int argc, char *argv[] );
-void fatal( char *prog, char *s );
-
-int main(argc, argv)
-       char *argv[];
-{
-       register char *sp;
-       char line[512];
-       int i, p[2], pid, status;
-       FILE *fp;
-       char *av[4];
-
-       line[0] = '\0';
-       fgets(line, sizeof(line), stdin);
-       sp = line + strlen(line);
-       if (sp > line && *--sp == '\n') *sp = '\0';
-       sp = line;
-       av[0] = "finger";
-       i = 1;
-       while (1) {
-               while (isspace(*sp))
-                       sp++;
-               if (!*sp)
-                       break;
-               if (*sp == '/' && (sp[1] == 'W' || sp[1] == 'w')) {
-                       sp += 2;
-                       av[i++] = "-l";
-               }
-               if (*sp && !isspace(*sp)) {
-                       av[i++] = sp;
-                       while (*sp && !isspace(*sp))
-                               sp++;
-                       *sp = '\0';
-               }
-       }
-       av[i] = 0;
-       if (pipe(p) < 0)
-               fatal(argv[0], "pipe");
-       if ((pid = fork()) == 0) {
-               close(p[0]);
-               if (p[1] != 1) {
-                       dup2(p[1], 1);
-                       close(p[1]);
-               }
-               execv("/usr/bin/finger", av);
-               printf("No finger program found\n");
-               fflush(stdout);
-               _exit(1);
-       }
-       if (pid == -1)
-               fatal(argv[0], "fork");
-       close(p[1]);
-       if ((fp = fdopen(p[0], "r")) == NULL)
-               fatal(argv[0], "fdopen");
-       while ((i = getc(fp)) != EOF) {
-               if (i == '\n')
-                       putchar('\r');
-               putchar(i);
-       }
-       fclose(fp);
-       while ((i = wait(&status)) != pid && i != -1)
-               ;
-       return(0);
-}
-
-void fatal(prog, s)
-       char *prog, *s;
-{
-
-       fprintf(stderr, "%s: ", prog);
-       perror(s);
-       exit(1);
-}
index e9d1814cf947bdb070b1296c3ffa190fc9c0c510..54cb49020a90d9c3815c484866946cb4a8862e2d 100644 (file)
 ./lib                                  minix-sys
 ./lib/cpp                              minix-sys
 ./libexec                              minix-sys
+./usr/libexec/fingerd                  minix-sys
 ./usr/libexec/ftpd                     minix-sys
 ./libexec/ld.elf_so                    minix-sys
 ./libexec/ld-elf.so.1                  minix-sys
 ./usr/bin/ifconfig                     minix-sys
 ./usr/bin/ifdef                                minix-sys
 ./usr/bin/indent                       minix-sys
-./usr/bin/in.fingerd                   minix-sys
 ./usr/bin/infocmp                      minix-sys
 ./usr/bin/in.rshd                      minix-sys
 ./usr/bin/install                      minix-sys
index 2bb8deaf300a9d26a6393dcabf74b60360f5cadf..7cd840bc39873827e62a38e3b1058a4030181c45 100644 (file)
@@ -2,3 +2,4 @@ daemonize talkd
 daemonize tcpd shell in.rshd
 daemonize tcpd telnet in.telnetd
 daemonize tcpd ftp /usr/libexec/ftpd
+daemonize tcpd finger /usr/libexec/fingerd
index fc47af4349e14725ec666a773f59f6df917bd359..6017ec65870279d5daf24baffb3eadfb88c3fabd 100644 (file)
@@ -4,7 +4,7 @@
 .include <bsd.own.mk>
 
 SUBDIR= \
-       ftpd    \
+       fingerd ftpd    \
        ld.elf_so
 
 .if defined(__MINIX)
diff --git a/libexec/fingerd/Makefile b/libexec/fingerd/Makefile
new file mode 100644 (file)
index 0000000..4ade1c2
--- /dev/null
@@ -0,0 +1,13 @@
+#      $NetBSD: Makefile,v 1.9 2005/01/10 02:58:58 lukem Exp $
+#      from: @(#)Makefile      8.1 (Berkeley) 6/4/93
+
+.include <bsd.own.mk>
+
+PROG=  fingerd
+MAN=   fingerd.8
+
+.if (${USE_INET6} != "no")
+CPPFLAGS+=-DINET6
+.endif
+
+.include <bsd.prog.mk>
diff --git a/libexec/fingerd/fingerd.8 b/libexec/fingerd/fingerd.8
new file mode 100644 (file)
index 0000000..e38d8f9
--- /dev/null
@@ -0,0 +1,175 @@
+.\"    $NetBSD: fingerd.8,v 1.20 2003/11/02 11:27:49 wiz Exp $
+.\"
+.\" Copyright (c) 1980, 1991, 1993
+.\"    The Regents of the University of California.  All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     from: @(#)fingerd.8    8.1 (Berkeley) 6/4/93
+.\"
+.Dd September 12, 2002
+.Dt FINGERD 8
+.Os
+.Sh NAME
+.Nm fingerd
+.Nd remote user information server
+.Sh SYNOPSIS
+.Nm
+.Op Fl 8ghlmpSsu
+.Op Fl P Ar filename
+.Sh DESCRIPTION
+.Nm
+is a simple protocol based on RFC 1288
+that provides an interface to the
+Name and Finger programs at several network sites.
+The program is supposed to return a friendly,
+human-oriented status report on either the system at the moment
+or a particular person in depth.
+There is no required format and the
+protocol consists mostly of specifying a single
+.Dq command line .
+.Pp
+.Nm
+is started by
+.Xr inetd 8 ,
+which listens for
+.Tn TCP
+requests at port 79.
+Once handed a connection,
+.Nm
+reads a single command line
+terminated by a
+.Aq Tn CRLF
+which it then passes to
+.Xr finger 1 .
+.Nm
+closes its connections as soon as the output is finished.
+.Pp
+If the line is null (i.e., just a
+.Aq Tn CRLF
+is sent) then
+.Xr finger 1
+returns a
+.Dq default
+report that lists all people logged into
+the system at that moment.
+.Pp
+If a user name is specified (e.g.,
+.Pf eric Aq Tn CRLF )
+then the
+response lists more extended information for only that particular user,
+whether logged in or not.
+Allowable
+.Dq names
+in the command line include both
+.Dq login names
+and
+.Dq user names .
+If a name is ambiguous, all possible derivations are returned.
+.Pp
+The following options may be passed to
+.Nm
+as server program arguments in
+.Pa /etc/inetd.conf :
+.Bl -tag -width XPXfilenameX
+.It Fl 8
+Enable 8-bit output.
+.It Fl g
+Do not show any gecos information besides the users' real names.
+.It Fl h
+Display the name of the remote host in short mode,
+instead of the office location and office phone.
+.It Fl l
+Enable logging.
+The name of the host originating the query, and the actual request
+is reported via
+.Xr syslog 3
+at LOG_NOTICE priority.
+A request of the form
+.Sq /W
+or
+.Sq /w
+will return long output.
+Empty requests will return all currently logged in users.
+All other requests look for specific users.
+See RFC 1288 for details.
+.It Fl m
+Prevent matching of
+.Ar user
+names.
+.Ar User
+is usually a login name; however, matching will also be done on the
+users' real names, unless the
+.Fl m
+option is supplied.
+.It Fl P Ar filename
+Use an alternate program as the local information provider.
+The default local program executed by
+.Nm
+is
+.Xr finger 1 .
+By specifying a customized local server, this option allows a system manager
+to have more control over what information is provided to remote sites.
+.It Fl p
+Prevents
+.Xr finger 1
+from displaying the contents of the
+.Dq Pa .plan
+and
+.Dq Pa .project
+files.
+.It Fl S
+Prints user information in short mode, one line per user.
+This overrides the
+.Dq Pa Whois switch
+that may be passed in from the remote client.
+.It Fl s
+Disable forwarding of queries to other remote hosts.
+.It Fl u
+Queries without a user name are rejected.
+.El
+.Sh SEE ALSO
+.Xr finger 1 ,
+.Xr inetd 8
+.Sh HISTORY
+The
+.Nm
+command appeared in
+.Bx 4.3 .
+.Sh BUGS
+Connecting directly to the server from a
+.Tn TIP
+or an equally narrow-minded
+.Tn TELNET Ns -protocol
+user program can result
+in meaningless attempts at option negotiation being sent to the
+server, which will foul up the command line interpretation.
+.Nm
+should be taught to filter out
+.Tn IAC Ns 's
+and perhaps even respond
+negatively
+.Pq Tn IAC WON'T
+to all option commands received.
diff --git a/libexec/fingerd/fingerd.c b/libexec/fingerd/fingerd.c
new file mode 100644 (file)
index 0000000..9b7e7c6
--- /dev/null
@@ -0,0 +1,233 @@
+/*     $NetBSD: fingerd.c,v 1.27 2012/03/15 02:02:21 joerg Exp $       */
+
+/*
+ * Copyright (c) 1983, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifndef lint
+__COPYRIGHT("@(#) Copyright (c) 1983, 1993\
+ The Regents of the University of California.  All rights reserved.");
+#endif /* not lint */
+
+#ifndef lint
+#if 0
+static char sccsid[] = "from: @(#)fingerd.c    8.1 (Berkeley) 6/4/93";
+#else
+__RCSID("$NetBSD: fingerd.c,v 1.27 2012/03/15 02:02:21 joerg Exp $");
+#endif
+#endif /* not lint */
+
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <errno.h>
+
+#include <unistd.h>
+#include <syslog.h>
+#include <netdb.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "pathnames.h"
+
+__dead static void my_err(const char *, ...) __printflike(1, 2);
+
+int
+main(int argc, char *argv[])
+{
+       FILE *fp;
+       int ch, ac = 2;
+       char *lp = NULL /* XXX gcc */;
+       struct sockaddr_storage ss;
+       int p[2], logging, no_forward, user_required, short_list;
+       socklen_t sval;
+#define        ENTRIES 50
+       char **ap, *av[ENTRIES + 1], **comp, line[1024], *prog, *s;
+#if 0
+       const char *av[ENTRIES + 1], **comp;
+       const char *prog;
+#endif
+       char hostbuf[MAXHOSTNAMELEN];
+
+       prog = __UNCONST(_PATH_FINGER);
+       logging = no_forward = user_required = short_list = 0;
+       openlog("fingerd", LOG_PID, LOG_DAEMON);
+       opterr = 0;
+       while ((ch = getopt(argc, argv, "gsluShmpP:8")) != -1) {
+               switch (ch) {
+               case 'l':
+                       logging = 1;
+                       break;
+               case 'P':
+                       prog = optarg;
+                       break;
+               case 's':
+                       no_forward = 1;
+                       break;
+               case 'u':
+                       user_required = 1;
+                       break;
+               case 'S':
+                       short_list = 1;
+                       av[ac++] = __UNCONST("-s");
+                       break;
+               case 'h':
+                       av[ac++] = __UNCONST("-h");
+                       break;
+               case 'm':
+                       av[ac++] = __UNCONST("-m");
+                       break;
+               case 'p':
+                       av[ac++] = __UNCONST("-p");
+                       break;
+               case 'g':
+                       av[ac++] = __UNCONST("-g");
+                       break;
+               case '8':
+                       av[ac++] = __UNCONST("-8");
+                       break;
+               case '?':
+               default:
+                       my_err("illegal option -- %c", optopt);
+               }
+               if (ac >= ENTRIES)
+                       my_err("Too many options provided");
+       }
+
+
+       if (logging) {
+               sval = sizeof(ss);
+               if (getpeername(0, (struct sockaddr *)&ss, &sval) < 0)
+                       my_err("getpeername: %s", strerror(errno));
+               (void)getnameinfo((struct sockaddr *)&ss, sval,
+                               hostbuf, sizeof(hostbuf), NULL, 0, 0);
+               lp = hostbuf;
+       }
+       
+       if (!fgets(line, sizeof(line), stdin)) {
+               if (logging)
+                       syslog(LOG_NOTICE, "query from %s", lp);
+               exit(1);
+       }
+       while ((s = strrchr(line, '\n')) != NULL ||
+           (s = strrchr(line, '\r')) != NULL)
+               *s = '\0';
+
+       if (logging) {
+               if (*line == '\0')
+                       syslog(LOG_NOTICE, "query from %s", lp);
+               else
+                       syslog(LOG_NOTICE, "query from %s: %s", lp, line);
+       }
+
+       if (ac >= ENTRIES)
+               my_err("Too many options provided");
+       av[ac++] = __UNCONST("--");
+       comp = &av[1];
+       for (lp = line, ap = &av[ac]; ac < ENTRIES;) {
+               if ((*ap = strtok(lp, " \t\r\n")) == NULL)
+                       break;
+               lp = NULL;
+               if (no_forward && strchr(*ap, '@')) {
+                       (void) puts("forwarding service denied\r\n");
+                       exit(1);
+               }
+
+               ch = strlen(*ap);
+               while ((*ap)[ch-1] == '@')
+                       (*ap)[--ch] = '\0';
+               if (**ap == '\0')
+                       continue;
+
+               /* RFC1196: "/[Ww]" == "-l" */
+               if ((*ap)[0] == '/' && ((*ap)[1] == 'W' || (*ap)[1] == 'w')) {
+                       if (!short_list) {
+                               av[1] = __UNCONST("-l");
+                               comp = &av[0];
+                       }
+               } else {
+                       ap++;
+                       ac++;
+               }
+       }
+       av[ENTRIES - 1] = NULL;
+
+       if ((lp = strrchr(prog, '/')))
+               *comp = ++lp;
+       else
+               *comp = prog;
+
+       if (user_required) {
+               for (ap = comp + 1; strcmp("--", *(ap++)); );
+               if (*ap == NULL) {
+                       (void) puts("must provide username\r\n");
+                       exit(1);
+               }
+       }
+
+       if (pipe(p) < 0)
+               my_err("pipe: %s", strerror(errno));
+
+       switch(fork()) {
+       case 0:
+               (void) close(p[0]);
+               if (p[1] != 1) {
+                       (void) dup2(p[1], 1);
+                       (void) close(p[1]);
+               }
+               execv(prog, comp);
+               my_err("execv: %s: %s", prog, strerror(errno));
+               _exit(1);
+       case -1:
+               my_err("fork: %s", strerror(errno));
+       }
+       (void) close(p[1]);
+       if (!(fp = fdopen(p[0], "r")))
+               my_err("fdopen: %s", strerror(errno));
+       while ((ch = getc(fp)) != EOF) {
+               if (ch == '\n')
+                       putchar('\r');
+               putchar(ch);
+       }
+       exit(0);
+}
+
+static void
+my_err(const char *fmt, ...)
+{
+       va_list ap;
+
+       va_start(ap, fmt);
+       (void) vsyslog(LOG_ERR, fmt, ap);
+       va_end(ap);
+       exit(1);
+       /* NOTREACHED */
+}
diff --git a/libexec/fingerd/pathnames.h b/libexec/fingerd/pathnames.h
new file mode 100644 (file)
index 0000000..0c37433
--- /dev/null
@@ -0,0 +1,34 @@
+/*     $NetBSD: pathnames.h,v 1.4 2003/08/07 09:46:38 agc Exp $        */
+
+/*
+ * Copyright (c) 1989 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     from: @(#)pathnames.h   5.3 (Berkeley) 6/1/90
+ */
+
+#define        _PATH_FINGER    "/usr/bin/finger"
index 440c440768d7e5f7062e6bac5de88894ce4b8e47..4b370ad98fcbdc0ddc2fdc7c677cf9a64d103f1e 100644 (file)
@@ -1,6 +1,6 @@
 MAN=   add_route.8 backup.8 boot.8 btrace.8 \
        cdprobe.8 chown.8 cleantmp.8 config.8 cron.8 \
-       dhcpd.8 diskctl.8 fbdctl.8 fdisk.8 fingerd.8 \
+       dhcpd.8 diskctl.8 fbdctl.8 fdisk.8 \
        getty.8 halt.8 hgfs.8 httpd.8 ifconfig.8 inet.8 init.8 \
        intr.8 irdpd.8 loadramdisk.8 MAKEDEV.8 \
        netconf.8 newroot.8 nonamed.8 \
diff --git a/man/man8/fingerd.8 b/man/man8/fingerd.8
deleted file mode 100644 (file)
index c5684c6..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-.\" Copyright (c) 1980 Regents of the University of California.
-.\" All rights reserved.  The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
-.\"
-.\"    @(#)fingerd.8c  6.1 (Berkeley) 5/23/86
-.\"
-.TH FINGERD 8 "May 23, 1986"
-.UC 6
-.SH NAME
-fingerd, in.fingerd \- remote user information server
-.SH SYNOPSIS
-.B "finger stream tcp nowait nobody /usr/sbin/in.fingerd in.fingerd"
-.br
-.B "tcpd finger /usr/sbin/in.fingerd in.fingerd"
-.SH DESCRIPTION
-.B Fingerd
-is a simple protocol based on RFC742 that provides an interface to the
-Name and Finger programs at several network sites.
-The program is supposed to return a friendly,
-human-oriented status report on either the system at the moment
-or a particular person in depth.
-There is no required format and the
-protocol consists mostly of specifying a single ``command line''.
-.PP
-.B Fingerd
-listens for TCP requests at port 79.
-Once connected it reads a single command line
-terminated by a <CRLF> which is passed to
-.BR finger (1).
-.B Fingerd
-closes its connections as soon as the output is finished.
-.PP
-If the line is null (i.e. just a <CRLF> is sent) then 
-.B finger
-returns a ``default'' report that lists all people logged into
-the system at that moment.
-.PP
-If a user name is specified (e.g. eric<CRLF>) then the
-response lists more extended information for only that particular user,
-whether logged in or not.
-Allowable ``names'' in the command line include both ``login names''
-and ``user names''.
-If a name is ambiguous, all possible derivations are returned.
-.SH SEE ALSO
-.BR finger (1).
-.SH BUGS
-Connecting directly to the server from a TIP
-or an equally narrow-minded TELNET-protocol user program can result
-in meaningless attempts at option negotiation being sent to the
-server, which will foul up the command line interpretation.
-.B Fingerd
-should be taught to filter out IAC's and perhaps even respond
-negatively (IAC WON'T) to all option commands received.
index 23300f91a776bfbb18fb2146019026b6ba53fa9f..317234489f803f6993688ccd75c1d55dbd4c1285 100644 (file)
@@ -59,6 +59,7 @@
 2011/05/26 00:00:00,external/public-domain/xz
 2012/10/17 12:00:00,external/README
 2012/10/17 12:00:00,include
+2013/05/31 12:00:00,libexec/fingerd
 2012/10/17 12:00:00,libexec/ftpd
 2012/10/17 12:00:00,libexec/ld.elf_so
 2012/10/17 12:00:00,libexec/Makefile