chiark / gitweb /
Major overhaul. Now uses DSA signatures rather than the bogus symmetric
[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.3  1998/04/23 13:21:28  mdw
33  * Disable trace constants for networking when it's not compiled in.
34  *
35  * Revision 1.2  1998/01/12 16:45:42  mdw
36  * Fix copyright date.
37  *
38  * Revision 1.1  1997/08/07 09:40:01  mdw
39  * Added.  No idea why this wasn't done before.
40  *
41  */
42
43 #ifndef BECOME_H
44 #define BECOME_H
45
46 #ifdef __cplusplus
47   extern "C" {
48 #endif
49
50 /*----- Required headers --------------------------------------------------*/
51
52 #include <sys/types.h>
53 #include <sys/socket.h>
54 #include <netinet/in.h>
55 #include <arpa/inet.h>
56
57 #ifndef CONFIG_H
58 #  include "config.h"
59 #endif
60
61 /*----- Tracing levels ----------------------------------------------------*/
62
63 #define TRACE_SILENT    0u
64 #define TRACE_MISC      1u
65 #define TRACE_SETUP     2u
66 #define TRACE_RULE      4u
67 #ifndef NONETWORK
68 #  define TRACE_DAEMON  8u
69 #  define TRACE_CHECK   16u
70 #  define TRACE_CLIENT  32u
71 #  define TRACE_RAND    64u
72 #  define TRACE_CRYPTO  128u
73 #else
74 #  define TRACE_DAEMON  0
75 #  define TRACE_CHECK   0
76 #  define TRACE_CLIENT  0
77 #  define TRACE_RAND    0
78 #  define TRACE_CRYPTO  0
79 #endif
80 #define TRACE_YACC      256u
81 #define TRACE_DEBUG     512u
82
83 #define TRACE_PRIV      ( TRACE_RAND | TRACE_CRYPTO | TRACE_YACC |      \
84                           TRACE_DEBUG )
85 #define TRACE_DFL       ( TRACE_MISC | TRACE_SETUP | TRACE_CLIENT |     \
86                           TRACE_DAEMON | TRACE_CHECK )
87 #define TRACE_ALL       0xFFFFu
88
89 /*----- Type definitions --------------------------------------------------*/
90
91 /* --- Request buffer (plaintext) --- */
92
93 #define CMDLEN_MAX 1016                 /* Max length of command */
94
95 typedef struct request {
96   struct in_addr host;                  /* Requesting host */
97   uid_t from;                           /* Current user ID */
98   uid_t to;                             /* Requested UID */
99   char cmd[CMDLEN_MAX];                 /* Command string requested */
100 } request;
101
102 /*----- That's all, folks -------------------------------------------------*/
103
104 #ifdef __cplusplus
105   }
106 #endif
107
108 #endif