Disable matching by default if a domainname is set, adding -M to reenable it.
authordownsj <downsj@openbsd.org>
Sun, 8 Dec 1996 13:29:19 +0000 (13:29 +0000)
committerdownsj <downsj@openbsd.org>
Sun, 8 Dec 1996 13:29:19 +0000 (13:29 +0000)
usr.bin/finger/finger.1
usr.bin/finger/finger.c

index e4ce23a..74c4f75 100644 (file)
@@ -1,4 +1,5 @@
-.\"    $OpenBSD: finger.1,v 1.2 1996/06/26 05:33:15 deraadt Exp $
+.\"    $OpenBSD: finger.1,v 1.3 1996/12/08 13:29:19 downsj Exp $
+.\"
 .\" Copyright (c) 1989, 1990 The Regents of the University of California.
 .\" All rights reserved.
 .\"
@@ -40,7 +41,7 @@
 .Nd user information lookup program
 .Sh SYNOPSIS
 .Nm finger
-.Op Fl lmsp
+.Op Fl lmMsp
 .Op Ar user ...
 .Op Ar user@host ...
 .Sh DESCRIPTION
@@ -122,6 +123,10 @@ option is supplied.
 All name matching performed by
 .Nm finger
 is case insensitive.
+.It Fl M
+Enable matching of
+.Ar user
+names.  This is disabled by default on systems running YP.
 .El
 .Pp
 If no options are specified,
index c2993d0..3bc1543 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: finger.c,v 1.3 1996/08/30 11:39:36 deraadt Exp $      */
+/*     $OpenBSD: finger.c,v 1.4 1996/12/08 13:29:19 downsj Exp $       */
 
 /*
  * Copyright (c) 1989 The Regents of the University of California.
@@ -48,7 +48,7 @@ char copyright[] =
 
 #ifndef lint
 /*static char sccsid[] = "from: @(#)finger.c   5.22 (Berkeley) 6/29/90";*/
-static char rcsid[] = "$OpenBSD: finger.c,v 1.3 1996/08/30 11:39:36 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: finger.c,v 1.4 1996/12/08 13:29:19 downsj Exp $";
 #endif /* not lint */
 
 /*
@@ -71,7 +71,7 @@ static char rcsid[] = "$OpenBSD: finger.c,v 1.3 1996/08/30 11:39:36 deraadt Exp
 #include "finger.h"
 
 time_t now;
-int lflag, sflag, mflag, pplan;
+int lflag, sflag, mflag, pplan, Mflag;
 char tbuf[1024];
 
 int    loginlist __P((void));
@@ -84,9 +84,10 @@ main(argc, argv)
 {
        extern int optind;
        int ch;
+       char domain[256];
        time_t time();
 
-       while ((ch = getopt(argc, argv, "lmps")) != EOF)
+       while ((ch = getopt(argc, argv, "lmMps")) != EOF)
                switch(ch) {
                case 'l':
                        lflag = 1;              /* long format */
@@ -94,6 +95,9 @@ main(argc, argv)
                case 'm':
                        mflag = 1;              /* force exact match of names */
                        break;
+               case 'M':
+                       Mflag = 1;              /* allow name matching */
+                       break;
                case 'p':
                        pplan = 1;              /* don't show .plan/.project */
                        break;
@@ -103,12 +107,16 @@ main(argc, argv)
                case '?':
                default:
                        (void)fprintf(stderr,
-                           "usage: finger [-lmps] [login ...]\n");
+                           "usage: finger [-lmMps] [login ...]\n");
                        exit(1);
                }
        argc -= optind;
        argv += optind;
 
+       /* if a domainname is set, increment mflag. */
+       if ((getdomainname(&domain, sizeof(domain)) == 0) && domain[0])
+               mflag++;
+
        (void)time(&now);
        setpassent(1);
        if (!*argv) {
@@ -208,7 +216,7 @@ userlist(argc, argv)
         * traverse the list of possible login names and check the login name
         * and real name against the name specified by the user.
         */
-       if (mflag) {
+       if ((mflag - Mflag) > 0) {
                for (i = 0; i < argc; i++)
                        if (used[i] >= 0 && (pw = getpwnam(argv[i]))) {
                                enter_person(pw);