1 /* Author: Wietse Venema <wietse@wzv.win.tue.nl> */
5 RCSID("$Id: sysv_default.c,v 1.11 1999/03/13 21:15:24 assar Exp $");
7 #include "sysv_default.h"
10 * Default values for stuff that can be read from the defaults file. The
11 * SunOS 5.1 documentation is incomplete and often disagrees with reality.
14 static char default_umask_value[] = "022";
16 char *default_console = 0;
17 char *default_altsh = "YES";
18 char *default_passreq = "NO";
19 char *default_timezone= 0;
21 char *default_path = _PATH_DEFPATH;
22 char *default_supath = _PATH_DEFSUPATH;
23 char *default_ulimit = 0;
24 char *default_timeout = "180";
25 char *default_umask = default_umask_value;
26 char *default_sleep = "4";
27 char *default_maxtrys = "5";
29 static struct sysv_default {
34 {&default_console, "CONSOLE=", sizeof("CONSOLE=") -1},
35 {&default_altsh, "ALTSHELL=", sizeof("ALTSHELL=") -1},
36 {&default_passreq, "PASSREQ=", sizeof("PASSREQ=") -1},
37 {&default_timezone, "TIMEZONE=", sizeof("TIMEZONE=") -1},
38 {&default_hz, "HZ=", sizeof("HZ=") -1},
39 {&default_path, "PATH=", sizeof("PATH=") -1},
40 {&default_supath, "SUPATH=", sizeof("SUPATH=") -1},
41 {&default_ulimit, "ULIMIT=", sizeof("ULIMIT=") -1},
42 {&default_timeout, "TIMEOUT=", sizeof("TIMEOUT=") -1},
43 {&default_umask, "UMASK=", sizeof("UMASK=") -1},
44 {&default_sleep, "SLEEPTIME=", sizeof("SLEEPTIME=") -1},
45 {&default_maxtrys, "MAXTRYS=", sizeof("MAXTRYS=") -1},
50 char *cp = s + strlen(s); \
51 while (cp > s && isspace((unsigned char)cp[-1])) \
56 /* sysv_defaults - read login defaults file */
61 struct sysv_default *dp;
65 if ((fp = fopen(_PATH_ETC_DEFAULT_LOGIN, "r"))) {
67 /* Stupid quadratic algorithm. */
69 while (fgets(buf, sizeof(buf), fp)) {
71 /* Skip comments and blank lines. */
79 /* Assign defaults from file. */
81 #define STREQN(x,y,l) (x[0] == y[0] && strncmp(x,y,l) == 0)
83 for (dp = defaults; dp->valptr; dp++) {
84 if (STREQN(buf, dp->prefix, dp->prefix_len)) {
85 if ((*(dp->valptr) = strdup(buf + dp->prefix_len)) == 0) {
86 warnx("Insufficient memory resources - try later.");