chiark / gitweb /
5518ed3973690bae6e430ab4d0492aa73381c20a
[become] / src / become.h
1 /* -*-c-*-
2  *
3  * $Id*
4  *
5  * Main header file for `become'
6  *
7  * (c) 1998 EBI
8  */
9
10 /*----- Licensing notice --------------------------------------------------*
11  *
12  * This file is part of `become'
13  *
14  * `Become' is free software; you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License as published by
16  * the Free Software Foundation; either version 2 of the License, or
17  * (at your option) any later version.
18  *
19  * `Become' is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with `become'; if not, write to the Free Software Foundation,
26  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27  */
28
29 /*----- Revision history --------------------------------------------------*
30  *
31  * $Log: become.h,v $
32  * Revision 1.2  1998/01/12 16:45:42  mdw
33  * Fix copyright date.
34  *
35  * Revision 1.1  1997/08/07 09:40:01  mdw
36  * Added.  No idea why this wasn't done before.
37  *
38  */
39
40 #ifndef BECOME_H
41 #define BECOME_H
42
43 #ifdef __cplusplus
44   extern "C" {
45 #endif
46
47 /*----- Required headers --------------------------------------------------*/
48
49 #include <sys/types.h>
50 #include <sys/socket.h>
51 #include <netinet/in.h>
52 #include <arpa/inet.h>
53
54 #ifndef CONFIG_H
55 #  include "config.h"
56 #endif
57
58 /*----- Tracing levels ----------------------------------------------------*/
59
60 #define TRACE_SILENT    0u
61 #define TRACE_MISC      1u
62 #define TRACE_SETUP     2u
63 #define TRACE_DAEMON    4u
64 #define TRACE_RULE      8u
65 #define TRACE_CHECK     16u
66 #define TRACE_CLIENT    32u
67 #define TRACE_RAND      64u
68 #define TRACE_CRYPTO    128u
69 #define TRACE_YACC      256u
70 #define TRACE_DEBUG     512u
71
72 #define TRACE_PRIV      ( TRACE_RAND | TRACE_CRYPTO | TRACE_YACC |      \
73                           TRACE_DEBUG )
74 #define TRACE_DFL       ( TRACE_MISC | TRACE_SETUP | TRACE_CLIENT |     \
75                           TRACE_DAEMON | TRACE_CHECK )
76 #define TRACE_ALL       0xFFFFu
77
78 /*----- Type definitions --------------------------------------------------*/
79
80 /* --- Request buffer (plaintext) --- */
81
82 #define CMDLEN_MAX 1016                 /* Max length of command */
83
84 typedef struct request {
85   struct in_addr host;                  /* Requesting host */
86   uid_t from;                           /* Current user ID */
87   uid_t to;                             /* Requested UID */
88   char cmd[CMDLEN_MAX];                 /* Command string requested */
89 } request;
90
91 /*----- That's all, folks -------------------------------------------------*/
92
93 #ifdef __cplusplus
94   }
95 #endif
96
97 #endif