1 | /* |
2 | |
3 | Copyright 1988, 1998 The Open Group |
4 | |
5 | Permission to use, copy, modify, distribute, and sell this software and its |
6 | documentation for any purpose is hereby granted without fee, provided that |
7 | the above copyright notice appear in all copies and that both that |
8 | copyright notice and this permission notice appear in supporting |
9 | documentation. |
10 | |
11 | The above copyright notice and this permission notice shall be included in |
12 | all copies or substantial portions of the Software. |
13 | |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
17 | OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN |
18 | AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
19 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
20 | |
21 | Except as contained in this notice, the name of The Open Group shall not be |
22 | used in advertising or otherwise to promote the sale, use or other dealings |
23 | in this Software without prior written authorization from The Open Group. |
24 | |
25 | */ |
26 | |
27 | #ifndef _Xauth_h |
28 | #define _Xauth_h |
29 | |
30 | /* struct xauth is full of implicit padding to properly align the pointers |
31 | after the length fields. We can't clean that up without breaking ABI, |
32 | so tell clang not to bother complaining about it. */ |
33 | #ifdef __clang__ |
34 | #pragma clang diagnostic push |
35 | #pragma clang diagnostic ignored "-Wpadded" |
36 | #endif |
37 | |
38 | typedef struct xauth { |
39 | unsigned short family; |
40 | unsigned short address_length; |
41 | char *address; |
42 | unsigned short number_length; |
43 | char *number; |
44 | unsigned short name_length; |
45 | char *name; |
46 | unsigned short data_length; |
47 | char *data; |
48 | } Xauth; |
49 | |
50 | #ifdef __clang__ |
51 | #pragma clang diagnostic pop |
52 | #endif |
53 | |
54 | #ifndef _XAUTH_STRUCT_ONLY |
55 | |
56 | # include <X11/Xfuncproto.h> |
57 | # include <X11/Xfuncs.h> |
58 | |
59 | # include <stdio.h> |
60 | |
61 | # define FamilyLocal (256) /* not part of X standard (i.e. X.h) */ |
62 | # define FamilyWild (65535) |
63 | # define FamilyNetname (254) /* not part of X standard */ |
64 | # define FamilyKrb5Principal (253) /* Kerberos 5 principal name */ |
65 | # define FamilyLocalHost (252) /* for local non-net authentication */ |
66 | |
67 | |
68 | _XFUNCPROTOBEGIN |
69 | |
70 | char *XauFileName(void); |
71 | |
72 | Xauth *XauReadAuth( |
73 | FILE* /* auth_file */ |
74 | ); |
75 | |
76 | int XauLockAuth( |
77 | _Xconst char* /* file_name */, |
78 | int /* retries */, |
79 | int /* timeout */, |
80 | long /* dead */ |
81 | ); |
82 | |
83 | int XauUnlockAuth( |
84 | _Xconst char* /* file_name */ |
85 | ); |
86 | |
87 | int XauWriteAuth( |
88 | FILE* /* auth_file */, |
89 | Xauth* /* auth */ |
90 | ); |
91 | |
92 | Xauth *XauGetAuthByAddr( |
93 | #if NeedWidePrototypes |
94 | unsigned int /* family */, |
95 | unsigned int /* address_length */, |
96 | #else |
97 | unsigned short /* family */, |
98 | unsigned short /* address_length */, |
99 | #endif |
100 | _Xconst char* /* address */, |
101 | #if NeedWidePrototypes |
102 | unsigned int /* number_length */, |
103 | #else |
104 | unsigned short /* number_length */, |
105 | #endif |
106 | _Xconst char* /* number */, |
107 | #if NeedWidePrototypes |
108 | unsigned int /* name_length */, |
109 | #else |
110 | unsigned short /* name_length */, |
111 | #endif |
112 | _Xconst char* /* name */ |
113 | ); |
114 | |
115 | Xauth *XauGetBestAuthByAddr( |
116 | #if NeedWidePrototypes |
117 | unsigned int /* family */, |
118 | unsigned int /* address_length */, |
119 | #else |
120 | unsigned short /* family */, |
121 | unsigned short /* address_length */, |
122 | #endif |
123 | _Xconst char* /* address */, |
124 | #if NeedWidePrototypes |
125 | unsigned int /* number_length */, |
126 | #else |
127 | unsigned short /* number_length */, |
128 | #endif |
129 | _Xconst char* /* number */, |
130 | int /* types_length */, |
131 | char** /* type_names */, |
132 | _Xconst int* /* type_lengths */ |
133 | ); |
134 | |
135 | void XauDisposeAuth( |
136 | Xauth* /* auth */ |
137 | ); |
138 | |
139 | _XFUNCPROTOEND |
140 | |
141 | /* Return values from XauLockAuth */ |
142 | |
143 | # define LOCK_SUCCESS 0 /* lock succeeded */ |
144 | # define LOCK_ERROR 1 /* lock unexpectely failed, check errno */ |
145 | # define LOCK_TIMEOUT 2 /* lock failed, timeouts expired */ |
146 | |
147 | #endif /* _XAUTH_STRUCT_ONLY */ |
148 | |
149 | #endif /* _Xauth_h */ |
150 | |