]>
Commit | Line | Data |
---|---|---|
eab30d01 | 1 | /* |
2 | * $Source$ | |
3 | * $Author$ | |
4 | * $Header$ | |
5 | * | |
6 | * Copyright (C) 1987 by the Massachusetts Institute of Technology | |
7 | * | |
8 | * $Log$ | |
50f51267 | 9 | * Revision 1.7 1987-07-29 16:03:30 wesommer |
10 | * Added last_time_used field to client structure. | |
eab30d01 | 11 | * |
50f51267 | 12 | * Revision 1.6 87/07/14 00:36:40 wesommer |
13 | * Added debugging options. | |
14 | * | |
16904979 | 15 | * Revision 1.5 87/06/30 20:05:14 wesommer |
16 | * Added parsed kerberos principal name. | |
17 | * | |
0311b667 | 18 | * Revision 1.4 87/06/21 16:42:07 wesommer |
19 | * Performance work, rearrangement of include files. | |
20 | * | |
c27b3454 | 21 | * Revision 1.3 87/06/03 16:07:59 wesommer |
22 | * Fixes for lint. | |
23 | * | |
5dbd09a0 | 24 | * Revision 1.2 87/06/01 03:35:10 wesommer |
25 | * added stuff for authentication. | |
26 | * | |
eab30d01 | 27 | */ |
28 | ||
5dbd09a0 | 29 | #include <sys/types.h> |
30 | #include <sys/uio.h> | |
31 | #include <sys/socket.h> | |
32 | #include <netinet/in.h> | |
c27b3454 | 33 | #include "sms_proto.h" |
0311b667 | 34 | #include <krb.h> |
5dbd09a0 | 35 | |
c27b3454 | 36 | typedef struct returned_tuples { |
37 | struct returned_tuples *next; | |
38 | OPERATION op; | |
0311b667 | 39 | sms_params *retval; |
c27b3454 | 40 | } returned_tuples; |
5dbd09a0 | 41 | |
0311b667 | 42 | /* |
43 | * This should be in the kerberos header file. | |
44 | */ | |
45 | ||
46 | struct krbname { | |
47 | char name[ANAME_SZ]; | |
48 | char inst[INST_SZ]; | |
49 | char realm[REALM_SZ]; | |
50 | }; | |
51 | ||
52 | /* | |
53 | * This structure holds all per-client information; one of these is | |
54 | * allocated for each active client. | |
55 | */ | |
56 | ||
0fa91a0a | 57 | typedef struct _client { |
0311b667 | 58 | OPERATION pending_op; /* Primary pending operation */ |
59 | CONNECTION con; /* Connection to the client */ | |
60 | int state; /* XXX this is really superfluous and should */ | |
61 | /* be removed */ | |
62 | int action; /* what action is pending? */ | |
eab30d01 | 63 | sms_params *args, reply; |
64 | int id; /* Unique id of client */ | |
0311b667 | 65 | struct sockaddr_in haddr; /* IP address of client */ |
66 | char *clname; /* Name client authenticated to */ | |
67 | struct krbname kname; /* Parsed version of the above */ | |
c27b3454 | 68 | returned_tuples *first, *last; |
50f51267 | 69 | time_t last_time_used; /* Last time connection used */ |
0fa91a0a | 70 | } client; |
71 | ||
72 | /* | |
73 | * States | |
74 | */ | |
75 | ||
76 | #define CL_DEAD 0 | |
77 | #define CL_STARTING 1 | |
78 | ||
79 | /* | |
80 | * Actions. | |
81 | */ | |
82 | ||
83 | #define CL_ACCEPT 0 | |
84 | #define CL_RECEIVE 1 | |
85 | #define CL_SEND 2 | |
86 | ||
0311b667 | 87 | extern char *krb_realm; |
16904979 | 88 | |
89 | /* | |
90 | * Debugging options. | |
91 | */ | |
92 | ||
93 | extern int log_flags; | |
94 | ||
95 | #define LOG_CONNECT 0x0001 | |
96 | #define LOG_REQUESTS 0x0002 | |
97 | #define LOG_ARGS 0x0004 | |
98 | #define LOG_RESP 0x0008 | |
99 | #define LOG_RES 0x0010 | |
100 |