Imported Upstream version 1.8.7
[debian/sudo] / plugins / sudoers / check.h
1 /*
2  * Copyright (c) 1993-1996,1998-2005, 2007-2013
3  *      Todd C. Miller <Todd.Miller@courtesan.com>
4  *
5  * Permission to use, copy, modify, and distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  *
17  * Sponsored in part by the Defense Advanced Research Projects
18  * Agency (DARPA) and Air Force Research Laboratory, Air Force
19  * Materiel Command, USAF, under agreement number F39502-99-1-0512.
20  */
21
22 #ifndef _SUDOERS_CHECK_H
23 #define _SUDOERS_CHECK_H
24
25 /* Status codes for timestamp_status() */
26 #define TS_CURRENT              0
27 #define TS_OLD                  1
28 #define TS_MISSING              2
29 #define TS_NOFILE               3
30 #define TS_ERROR                4
31
32 /* This may be a function in some implementations. */
33 #define already_lectured(s)     (s != TS_MISSING && s != TS_ERROR)
34
35 /*
36  * Info stored in tty ticket from stat(2) to help with tty matching.
37  */
38 struct sudo_tty_info {
39     dev_t dev;                  /* ID of device tty resides on */
40     dev_t rdev;                 /* tty device ID */
41     ino_t ino;                  /* tty inode number */
42     uid_t uid;                  /* tty owner */
43     gid_t gid;                  /* tty group */
44     pid_t sid;                  /* ID of session with controlling tty */
45 };
46
47 bool  update_timestamp(struct passwd *pw);
48 int   build_timestamp(struct passwd *pw);
49 int   timestamp_status(struct passwd *pw);
50
51 #endif /* _SUDOERS_CHECK_H */