003 File Manager
Current Path:
/usr/src/lib/libutil
usr
/
src
/
lib
/
libutil
/
📁
..
📄
Makefile
(3.09 KB)
📄
Makefile.depend
(274 B)
📄
_secure_path.3
(2.52 KB)
📄
_secure_path.c
(2.33 KB)
📄
auth.c
(1.66 KB)
📄
expand_number.3
(2.61 KB)
📄
expand_number.c
(2.45 KB)
📄
flopen.3
(3.35 KB)
📄
flopen.c
(3.69 KB)
📄
fparseln.3
(4.53 KB)
📄
fparseln.c
(5.27 KB)
📄
getlocalbase.3
(3.82 KB)
📄
getlocalbase.c
(2.62 KB)
📄
gr_util.c
(14.2 KB)
📄
hexdump.3
(3.01 KB)
📄
hexdump.c
(2.98 KB)
📄
humanize_number.3
(5.65 KB)
📄
humanize_number.c
(5.35 KB)
📄
kinfo_getallproc.3
(2.47 KB)
📄
kinfo_getallproc.c
(2.67 KB)
📄
kinfo_getfile.3
(2.59 KB)
📄
kinfo_getfile.c
(1.46 KB)
📄
kinfo_getproc.3
(2.44 KB)
📄
kinfo_getproc.c
(2.13 KB)
📄
kinfo_getvmmap.3
(2.85 KB)
📄
kinfo_getvmmap.c
(1.47 KB)
📄
kinfo_getvmobject.3
(2.46 KB)
📄
kinfo_getvmobject.c
(2.58 KB)
📄
kld.3
(2.69 KB)
📄
kld.c
(2.5 KB)
📄
libutil.h
(8.04 KB)
📄
login.conf.5
(16.41 KB)
📄
login_auth.3
(2.3 KB)
📄
login_auth.c
(3.01 KB)
📄
login_cap.3
(16.04 KB)
📄
login_cap.c
(19.22 KB)
📄
login_cap.h
(6.25 KB)
📄
login_class.3
(6.83 KB)
📄
login_class.c
(14 KB)
📄
login_crypt.c
(1.92 KB)
📄
login_ok.3
(4.27 KB)
📄
login_ok.c
(5.76 KB)
📄
login_times.3
(5.28 KB)
📄
login_times.c
(3.72 KB)
📄
login_tty.3
(2.25 KB)
📄
login_tty.c
(2.03 KB)
📄
pidfile.3
(6.75 KB)
📄
pidfile.c
(7.22 KB)
📄
property.3
(2.91 KB)
📄
property.c
(5.85 KB)
📄
pty.3
(4.17 KB)
📄
pty.c
(2.99 KB)
📄
pw_util.3
(6.88 KB)
📄
pw_util.c
(15.18 KB)
📄
quotafile.3
(7.32 KB)
📄
quotafile.c
(14.98 KB)
📄
realhostname.3
(2.97 KB)
📄
realhostname.c
(5.59 KB)
📄
realhostname_sa.3
(4.56 KB)
📄
stub.c
(1.73 KB)
📁
tests
📄
trimdomain.3
(2.72 KB)
📄
trimdomain.c
(3.39 KB)
📄
uucplock.3
(4.94 KB)
📄
uucplock.c
(5.5 KB)
Editing: login_times.c
/*- * Copyright (c) 1996 by * David Nugent <davidn@blaze.net.au> * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, is permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice immediately at the beginning of the file, without modification, * 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. This work was done expressly for inclusion into FreeBSD. Other use * is permitted provided this notation is included. * 4. Absolutely no warranty of function or purpose is made by the authors. * 5. Modifications may be freely made to this file providing the above * conditions are met. * * Login period parsing and comparison functions. */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); #include <sys/types.h> #include <ctype.h> #include <login_cap.h> #include <stdlib.h> #include <string.h> #include <time.h> static struct { const char *dw; u_char cn; u_char fl; } dws[] = { { "su", 2, LTM_SUN }, { "mo", 2, LTM_MON }, { "tu", 2, LTM_TUE }, { "we", 2, LTM_WED }, { "th", 2, LTM_THU }, { "fr", 2, LTM_FRI }, { "sa", 2, LTM_SAT }, { "any",3, LTM_ANY }, { "all",3, LTM_ANY }, { "wk", 2, LTM_WK }, { "wd", 2, LTM_WD }, { NULL, 0, 0 } }; static char * parse_time(char * ptr, u_short * t) { u_short val; for (val = 0; *ptr && isdigit(*ptr); ptr++) val = (u_short)(val * 10 + (*ptr - '0')); *t = (u_short)((val / 100) * 60 + (val % 100)); return (ptr); } login_time_t parse_lt(const char *str) { login_time_t t; memset(&t, 0, sizeof t); t.lt_dow = LTM_NONE; if (str && *str && strcmp(str, "Never") != 0 && strcmp(str, "None") != 0) { int i; login_time_t m = t; char *p; char buf[64]; /* Make local copy and force lowercase to simplify parsing */ strlcpy(buf, str, sizeof buf); for (i = 0; buf[i]; i++) buf[i] = (char)tolower(buf[i]); p = buf; while (isalpha(*p)) { i = 0; while (dws[i].dw && strncmp(p, dws[i].dw, dws[i].cn) != 0) i++; if (dws[i].dw == NULL) break; m.lt_dow |= dws[i].fl; p += dws[i].cn; } if (m.lt_dow == LTM_NONE) /* No (valid) prefix, assume any */ m.lt_dow |= LTM_ANY; if (isdigit(*p)) p = parse_time(p, &m.lt_start); else m.lt_start = 0; if (*p == '-') p = parse_time(p + 1, &m.lt_end); else m.lt_end = 1440; t = m; } return (t); } int in_ltm(const login_time_t *ltm, struct tm *tt, time_t *ends) { int rc = 0; if (tt != NULL) { /* First, examine the day of the week */ if ((u_char)(0x01 << tt->tm_wday) & ltm->lt_dow) { /* Convert `current' time to minute of the day */ u_short now = (u_short)((tt->tm_hour * 60) + tt->tm_min); if (tt->tm_sec > 30) ++now; if (now >= ltm->lt_start && now < ltm->lt_end) { rc = 2; if (ends != NULL) { /* If requested, return ending time for this period */ tt->tm_hour = (int)(ltm->lt_end / 60); tt->tm_min = (int)(ltm->lt_end % 60); *ends = mktime(tt); } } } } return (rc); } int in_lt(const login_time_t *ltm, time_t *t) { return (in_ltm(ltm, localtime(t), t)); } int in_ltms(const login_time_t *ltm, struct tm *tm, time_t *t) { int i = 0; while (i < LC_MAXTIMES && ltm[i].lt_dow != LTM_NONE) { if (in_ltm(ltm + i, tm, t)) return (i); i++; } return (-1); } int in_lts(const login_time_t *ltm, time_t *t) { return (in_ltms(ltm, localtime(t), t)); }
Upload File
Create Folder