]> git.pld-linux.org Git - packages/autolog.git/commitdiff
- patch for autolog from Debian.
authorkloczek <kloczek@pld-linux.org>
Tue, 6 Apr 1999 15:56:36 +0000 (15:56 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    autolog-0.34.debian.diff -> 1.1

autolog-0.34.debian.diff [new file with mode: 0644]

diff --git a/autolog-0.34.debian.diff b/autolog-0.34.debian.diff
new file mode 100644 (file)
index 0000000..7b346ef
--- /dev/null
@@ -0,0 +1,359 @@
+diff -urN autolog-0.34.orig/Makefile autolog-0.34/Makefile
+--- autolog-0.34.orig/Makefile Fri Oct 16 20:38:44 1998
++++ autolog-0.34/Makefile      Fri Oct 16 20:39:16 1998
+@@ -3,9 +3,9 @@
+ # The -g flag is to include debugging information.  It gets
+ # stripped back out in the install command anyway.
+ CC    = gcc
+-CFLAGS        = -g
+-MANDIR  = /usr/man
+-BINDIR  = /usr/sbin
++CFLAGS        = -O2 -g -Wall
++MANDIR  = $(DESTDIR)/usr/man
++BINDIR  = $(DESTDIR)/usr/sbin
+ # *********************************************************
+ autolog:      autolog.c
+@@ -13,8 +13,9 @@
+ install:      autolog
+       install -s autolog $(BINDIR)
+-      install -m644 autolog.conf.5 $(MANDIR)/man5
+-      install -m644 autolog.8 $(MANDIR)/man8
++      install -p -m644 autolog.conf.5 $(MANDIR)/man5
++      install -p -m644 autolog.8 $(MANDIR)/man8
++      install -p -m644 crontab $(DESTDIR)/etc/cron.d/autolog
+ clean:
+-      rm autolog
++      rm -f autolog
+diff -urN autolog-0.34.orig/autolog.8 autolog-0.34/autolog.8
+--- autolog-0.34.orig/autolog.8        Fri Oct 16 20:38:44 1998
++++ autolog-0.34/autolog.8     Fri Oct 16 20:39:16 1998
+@@ -1,4 +1,4 @@
+-.TH AUTOLOG 1L "Administrative Utilities" "Linux" \" -*- nroff -*-
++.TH AUTOLOG 8 "Administrative Utilities" "Linux" \" -*- nroff -*-
+ .SH NAME
+ autolog \- Log out idle users
+ .SH SYNOPSIS
+@@ -6,55 +6,59 @@
+ .br
+ .SH DESCRIPTION
+ The program reads the utmp file, entry by entry.  The 
+-username for each 'user process' is compared to the entries in the 
+-configuration file (see
+-.B autoconf(5)
+-).  The first entry to match both the name, the group,
++username for each `user process' is compared to the entries in the 
++configuration file
++.IR autolog.conf .
++The first entry to match both the name, the group,
+ and the tty line of the process will be used to conduct the automatic 
+ logout.
+ .SH OPTIONS
+ .TP
+-.B -a
++.I -a
+ (all processes) Print information on ALL utmp entries--not just user processes.
+ .TP
+-.B -d
++.I -d
+ (debug mode) This is helpful in setting up your configuration file.
+ The program runs in foreground rather than forking and it prints 
+ out verbose messages about what it is doing.
+ .TP
+-.B -n
++.I -n
+ (nokill) Use this to prevent autolog from actually "killing"
+ anyone.  Use -d and -n together when setting up a new
+ configuration file.  
+ .TP
+-.B -f config_file_name
+-Use this to override the default: "/etc/autolog.conf"
+-.TP
+-.B -l  log_file_name
+-Use this to override the default: "/var/log/autolog.log".
++.I -f config_file_name
++Use this to override the default:
++.I /etc/autolog.conf
++.TP
++.I -l  log_file_name
++Use this to override the default:
++.IR /var/log/autolog.log .
+ Note that if this file doesn't exist, no logging will happen.
+ Create the file (with touch) to enable logging.
+ .TP
+-.B -t  idle_time
++.I -t  idle_time
+ Use this to override the internal default idle time (minutes)
+ .TP
+-.B -g  grace_period
++.I -g  grace_period
+ Use this to override the internal default grace period (seconds)
+ .TP
+-.B -m  yes/no
++.I -m  yes/no
+ Use this to override the internal mailing switch.  If "yes"
+ the program will send mail to the users right after killing them.
+ .TP
+-.B -c  yes/no
++.I -c  yes/no
+ Use this to override the internal "pre-clear" switch.  If "yes"
+ the program will clear the terminal screen before warning the user.
+ .TP
+-.B -w  yes/no
++.I -w  yes/no
+ Do timeouts based on total session time--not idle time. (hard)
+ .TP
+-.B -L  yes/no
++.I -L  yes/no
+ If set to "yes" activities will be written to the logfile if 
+ present.
++.SH "SEE ALSO"
++.BR autolog.conf (5)
+ .SH AUTHOR
+ Kyle Bateman <kyle@actarg.com>
+diff -urN autolog-0.34.orig/autolog.c autolog-0.34/autolog.c
+--- autolog-0.34.orig/autolog.c        Fri Oct 16 20:38:44 1998
++++ autolog-0.34/autolog.c     Fri Oct 16 20:39:16 1998
+@@ -18,11 +18,13 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
++#include    <stdlib.h>
+ #include    <stdio.h>
+ #include    <signal.h>
+ #include    <string.h>
+ #include    <sys/types.h>
+ #include    <sys/stat.h>
++#include    <unistd.h>
+ #include    <utmp.h>
+ #include    <time.h>
+ #include    <pwd.h>
+@@ -80,7 +82,13 @@
+ conf_el c_arr[MAXCONF];
+ int c_idx = 0;
+-main(int argc, char *argv[])
++void eat_confile(void);
++int check_idle(void);
++void bailout(const char *message, int status) __attribute__ ((noreturn));
++void mesg(int flag, char *name, char *dev, int stime, int idle, conf_el *ce);
++int killit(pid_t pid);
++
++int main(int argc, char *argv[])
+     {
+     int i;
+     for (i = 1; i < argc; i++)
+@@ -132,15 +140,15 @@
+     eat_confile();              /* read config file */
+     if (!debug)                 /* if not in debug mode, */
+         if (fork())             /* the parent process */
+-            exit(0);            /* exits */
++            return 0;            /* exits */
+     /* the child processes all utmp file entries: */
+     while ((utmpp = getutent()) != (struct utmp *) NULL)
+         check_idle();
+-    exit(0);                    /* done, so bye */
++    return 0;                    /* done, so bye */
+     }
+-set_defs(int i)
++void set_defs(int i)
+     {
+     c_arr[i].name = anystrg;
+     c_arr[i].group = anystrg;
+@@ -154,7 +162,7 @@
+     c_arr[i].log = g_log;
+     }
+-eat_confile()
++void eat_confile(void)
+     {
+     FILE *f;
+     char *s, iline[LINELEN];
+@@ -169,7 +177,7 @@
+         {
+         while (fgets(iline, LINELEN, f))
+             {
+-            if (*iline == '#' || strlen(iline) <= 1)
++            if (*iline == '#' || !iline[0] || !iline[1])
+                 continue;
+             set_defs(c_idx);
+             s=strtok(iline,delims);
+@@ -207,7 +215,7 @@
+                         printf("Unknown token in file: %s: %s\n",confname,s);
+                     }
+                 }
+-            while(s=strtok(0,delims));
++            while((s=strtok(NULL,delims)));
+             c_idx++;
+             }
+         fclose(f);
+@@ -226,7 +234,7 @@
+ /* versions of the routine should work for you. */
+ #define AVOID_REGEX_BUG
+ #ifdef AVOID_REGEX_BUG                                /* some strange bug in re_exec */
+-pat_match(char *patt, char *strg)
++int pat_match(char *patt, char *strg)
+     {
+     struct re_pattern_buffer rpb;
+     int len, retval = 0;
+@@ -249,16 +257,16 @@
+ #else
+ /* return true if strg matches the regex in pattern */
+-pat_match(char *pattern,char *strg)
++int pat_match(char *pattern,char *strg)
+     {
+     re_comp(pattern);
+     return(re_exec(strg));
+     }
+ #endif
+-check_idle()            /* select utmp entries needing killing */
++int check_idle(void)            /* select utmp entries needing killing */
+     {
+-    char dev[STRLEN], name[STRLEN], prname[STRLEN], *gn = "";
++    char dev[STRLEN], name[STRLEN], *gn = "";
+     struct stat status;
+     time_t idle, pres_time, start, time(), stime, atime;
+     struct passwd *passwd_entry;
+@@ -272,8 +280,7 @@
+             printf("Non-user process: N:%-8s P:%5d Login:%s",utmpp->ut_user,utmpp->ut_pid,ctime(&utmpp->ut_time));
+         return(0);                          /* skip the utmp entry */
+         }
+-    sprintf(prname,"/proc/%d",utmpp->ut_pid);   /* make filename to check in /proc */
+-    if (stat(prname, &status))                  /* is this a current process */
++    if (kill(utmpp->ut_pid,0))            /* is this a current process? */
+         {
+         if (listall)
+             printf("Dead process: N:%-8s P:%5d Login:%s",utmpp->ut_user,utmpp->ut_pid,ctime(&utmpp->ut_time));
+@@ -293,7 +300,7 @@
+     name[UT_NAMESIZE] = '\0';           /* null terminate user name string */
+     if (debug)
+-        printf("\nChecking: %-11s on %-12s I:%-4d T:%d Login: %s",name,dev,idle,utmpp->ut_type,ctime(&utmpp->ut_time));
++        printf("\nChecking: %-11s on %-12s I:%-4ld T:%d Login: %s",name,dev,idle,utmpp->ut_type,ctime(&utmpp->ut_time));
+     /* now try to find the group of this person */
+     /* if usernames in utmp are limited to 8 chars, we will may fail on */
+@@ -303,7 +310,7 @@
+     if (passwd_entry)
+         {
+         strcpy(name,passwd_entry->pw_name);
+-        if(group_entry = getgrgid( passwd_entry->pw_gid ))
++        if((group_entry = getgrgid( passwd_entry->pw_gid )))
+             gn = group_entry->gr_name;
+         else if (debug)
+             printf("Can't find group entry for user: %s\n",name);
+@@ -317,8 +324,8 @@
+             pat_match(c_arr[i].line,utmpp->ut_line))
+             {
+             if (debug)
+-                printf("Match #%2d: U:%-12s Grp:%-8s Line:%-9s Pid:%-6d Sess:%3d:%02d\n",
+-                    i+1,name,gn,utmpp->ut_line,utmpp->ut_pid,stime/60,stime%60);
++                printf("Match #%2d: U:%-12s Grp:%-8s Line:%-9s Pid:%-6d Sess:%3ld:%02d\n",
++                    i+1,name,gn,utmpp->ut_line,utmpp->ut_pid,stime/60,(int)(stime%60));
+             if (!c_arr[i].idle)     /* if user exempt (idle=0) */
+                 {
+                 if (debug)
+@@ -338,14 +345,14 @@
+     if (!c_arr[i].hard)                 /* if considering idle time */
+         {
+         if (debug)
+-            printf("Subject to logout   Idle time: %4d (%2d allowed)\n",idle,ce->idle);
++            printf("Subject to logout   Idle time: %4ld (%2d allowed)\n",idle,ce->idle);
+         if (idle < ce->idle)    /* if user was recently active */
+             return(0);                  /* let it live */
+         }
+     else
+         {
+         if (debug)
+-            printf("Subject to logout   Total time: %4d (%2d allowed)\n",stime,ce->idle);
++            printf("Subject to logout   Total time: %4ld (%2d allowed)\n",stime,ce->idle);
+         if (stime < ce->idle)   /* if user still under limit */
+             return(0);                  /* let it live */
+         }
+@@ -378,7 +385,7 @@
+     return(0);
+     }
+-mesg(int flag, char *name, char *dev, int stime, int idle, conf_el *ce)
++void mesg(int flag, char *name, char *dev, int stime, int idle, conf_el *ce)
+     {
+     char    mbuf[LINELEN];          /* message buffer */
+     time_t  tvec;
+@@ -417,10 +424,10 @@
+             fprintf(log, "** LOGOFF ** %s %s idle:%d sess:%d %s",name, dev+5, idle, stime, ctime(&tvec)+3);
+         if (ce->mail)
+             {
+-            sprintf(mbuf, "/bin/mail %s", name);
++            sprintf(mbuf, "/usr/sbin/sendmail %s", name);
+             /* open pipe to mail program for writing */
+             if (!(mprog = popen(mbuf, "w")) )
+-                bailout("Can't use /bin/mail program", 6);
++                bailout("Can't use /usr/sbin/sendmail program", 6);
+             fprintf(mprog, "Subject: Excess Idle Time\nLogged off - excess idle time - %s %s\ntty = %s\n",name, ctime(&tvec), dev+5);
+             fclose(mprog);
+             }
+@@ -431,18 +438,18 @@
+             fprintf(log, "** LOGOFF-FAIL ** %s (pid = %d) %s (%d min idle time) %s",name, utmpp->ut_pid, dev+5, idle, ctime(&tvec)+3);
+         if (ce->mail)
+             {
+-            sprintf(mbuf, "/bin/mail root");
++            sprintf(mbuf, "/usr/sbin/sendmail root");
+             if ((mprog = popen(mbuf, "w")) == (FILE *) NULL)
+-                bailout("Can't use /bin/mail program", 7);
++                bailout("Can't use /usr/sbin/sendmail program", 7);
+             fprintf(mprog, "Subject: Can't logoff %s\nCan't Log off - %s %s\ntty = %s\n", name, name, ctime(&tvec), dev+5);
+             fclose(mprog);
+             }
+         }
+-    fclose(log);
+-    return(0);
++    if (log)
++      fclose(log);
+     }
+-killit(int pid)     /* terminate process using SIGHUP, then SIGKILL */
++int killit(pid_t pid)     /* terminate process using SIGHUP, then SIGKILL */
+     {
+     kill(pid, SIGHUP);          /* first send "hangup" signal */
+     sleep(KWAIT);
+@@ -459,8 +466,8 @@
+         return(1);              /* successful kill with SIGHUP */
+     }
+-bailout(char *message, int status)  /* display error message and exit */
++void bailout(const char *message, int status)  /* display error message and exit */
+     {
+-    fprintf(stderr,"autologout: %s\n", message);
++    fprintf(stderr,"autologout: %s (%m)\n", message);
+     exit(status);
+     }
+diff -urN autolog-0.34.orig/autolog.conf.5 autolog-0.34/autolog.conf.5
+--- autolog-0.34.orig/autolog.conf.5   Fri Oct 16 20:38:44 1998
++++ autolog-0.34/autolog.conf.5        Fri Oct 16 20:39:16 1998
+@@ -1,4 +1,4 @@
+-.TH autolog.conf 1L "Configuration Files" "Linux" \" -*- nroff -*-
++.TH autolog.conf 5 "Configuration Files" "Linux" \" -*- nroff -*-
+ .SH NAME
+ autolog.conf \- Configuration file for the autolog command
+ .SH DESCRIPTION
+@@ -32,7 +32,7 @@
+ entry which has all values set from the defaults.  This entry will match 
+ any process on any port (name=.+ line=.+ group=.+).  Therefore, the default
+ action is to kill all processes.
+-.SH ENTRYS
++.SH ENTRIES
+ .TP
+ .B name=
+ A regular expression specifying which username(s) to match.
+diff -urN autolog-0.34.orig/crontab autolog-0.34/crontab
+--- autolog-0.34.orig/crontab  Thu Jan  1 01:00:00 1970
++++ autolog-0.34/crontab       Fri Oct 16 20:39:17 1998
+@@ -0,0 +1 @@
++*/10 * * * *  root    test -x /usr/sbin/autolog && /usr/sbin/autolog
This page took 0.116734 seconds and 4 git commands to generate.