chiark / gitweb /
4864a12f6227bc8d64b589fed3fdcd45d59caccd
[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 #ifndef BECOME_H
30 #define BECOME_H
31
32 #ifdef __cplusplus
33   extern "C" {
34 #endif
35
36 /*----- Required headers --------------------------------------------------*/
37
38 #include <sys/types.h>
39 #include <sys/socket.h>
40 #include <netinet/in.h>
41 #include <arpa/inet.h>
42
43 #ifndef CONFIG_H
44 #  include "config.h"
45 #endif
46
47 /*----- Tracing levels ----------------------------------------------------*/
48
49 #define TRACE_SILENT    0u
50 #define TRACE_MISC      1u
51 #define TRACE_SETUP     2u
52 #define TRACE_RULE      4u
53 #ifndef NONETWORK
54 #  define TRACE_DAEMON  8u
55 #  define TRACE_CHECK   16u
56 #  define TRACE_CLIENT  32u
57 #  define TRACE_RAND    64u
58 #  define TRACE_CRYPTO  128u
59 #else
60 #  define TRACE_DAEMON  0
61 #  define TRACE_CHECK   0
62 #  define TRACE_CLIENT  0
63 #  define TRACE_RAND    0
64 #  define TRACE_CRYPTO  0
65 #endif
66 #define TRACE_YACC      256u
67 #define TRACE_DEBUG     512u
68
69 #define TRACE_PRIV      ( TRACE_RAND | TRACE_CRYPTO | TRACE_YACC |      \
70                           TRACE_DEBUG )
71 #define TRACE_DFL       ( TRACE_MISC | TRACE_SETUP | TRACE_CLIENT |     \
72                           TRACE_DAEMON | TRACE_CHECK )
73 #define TRACE_ALL       0xFFFFu
74
75 /*----- Other magic constants ---------------------------------------------*/
76
77 #define SERVER_PORT 35523               /* Not allocated properly */
78
79 /*----- Type definitions --------------------------------------------------*/
80
81 /* --- Request buffer (plaintext) --- */
82
83 #define CMDLEN_MAX 1016                 /* Max length of command */
84
85 typedef struct request {
86   struct in_addr host;                  /* Requesting host */
87   uid_t from;                           /* Current user ID */
88   uid_t to;                             /* Requested UID */
89   char cmd[CMDLEN_MAX];                 /* Command string requested */
90 } request;
91
92 /*----- That's all, folks -------------------------------------------------*/
93
94 #ifdef __cplusplus
95   }
96 #endif
97
98 #endif