import cyrus-sasl-2.1.23
[cyrus-sasl.git] / mac / include / config.h
1 /* $Id: config.h,v 1.4 2004/03/08 16:57:27 rjs3 Exp $
2  * Copyright (c) 1998-2003 Carnegie Mellon University.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer. 
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in
13  *    the documentation and/or other materials provided with the
14  *    distribution.
15  *
16  * 3. The name "Carnegie Mellon University" must not be used to
17  *    endorse or promote products derived from this software without
18  *    prior written permission. For permission or any other legal
19  *    details, please contact  
20  *      Office of Technology Transfer
21  *      Carnegie Mellon University
22  *      5000 Forbes Avenue
23  *      Pittsburgh, PA  15213-3890
24  *      (412) 268-4387, fax: (412) 268-7395
25  *      tech-transfer@andrew.cmu.edu
26  *
27  * 4. Redistributions of any form whatsoever must retain the following
28  *    acknowledgment:
29  *    "This product includes software developed by Computing Services
30  *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
31  *
32  * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
33  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
34  * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
35  * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
36  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
37  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
38  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
39  */
40
41 #ifndef CONFIG_H
42 #define CONFIG_H
43
44 //#ifdef XSUS
45 //#include <windows.h>
46 //#endif
47
48 #include <string.h>
49
50 /*
51  * funky names for functions so we dont conflict with possible
52  * real ones in applications we load into
53  */
54
55 #define htons
56 #define htonl
57 #define ntohl
58 #define ntohs
59 #define strdup xxx_sasl_strdup
60 #define strcasecmp xxx_sasl_strcasecmp
61 #define gethostname xxx_sasl_gethostname
62 #define inet_aton xxx_sasl_inetaton
63
64 /* Our package */
65 #define PACKAGE "cyrus-sasl"
66
67 /* Our version */
68 #define VERSION "2.0.4"
69
70 /* We only want minimal server functionality.  Cripple the server functionality when necessary to get
71  * things to compile.
72  *
73  * Currently only cripples PLAIN.
74  */
75 #define SASL_MINIMAL_SERVER 1
76
77 /* DB Type */
78 #undef SASL_DB_TYPE
79
80 int strcasecmp(const char *s1,const char *s2);
81 int strncasecmp(const char *s1,const char *s2,int len);
82
83 int strcpy_truncate(char *dest,char *src,int len);
84
85 #define gethostname xxx_sasl_gethostname
86 int gethostname(char *dest,int destlen);
87
88 #define SASL_PATH_ENV_VAR "foo"
89 #define PLUGINDIR "make_me_a_function_to_get_that_info"
90
91 typedef unsigned char u_char;
92 typedef unsigned long u_long;
93
94 char *strdup(const char *str);
95  struct sockaddr_in {
96         u_char  sin_len;
97         u_char  sin_family;
98    unsigned short sin_port;
99    union {
100          unsigned long s_addr;
101    } sin_addr;
102    char sin_zero[8];
103  };
104
105 struct in_addr {
106         unsigned long s_addr;
107 };
108
109 #ifndef HAVE_SOCKLEN_T
110 typedef unsigned int socklen_t;
111 #endif /* HAVE_SOCKLEN_T */
112
113 #include "gai.h"
114
115 #ifndef NULL
116 #define NULL (0L)
117 #endif
118
119 #ifdef RUBBISH
120 int snprintf (char *str,size_t count,const char *fmt,...);
121 int snprintf (char *str,int count,const char *fmt,...);
122 #endif
123
124 extern char *optarg;
125 extern int optind;
126 extern int getopt(
127         int nargc,
128         char * const *nargv,
129         const char *ostr);
130
131 extern int getsubopt(char **optionp, const char * const *tokens, char **valuep);
132 extern char* getpass(const char *prompt);
133
134 /* ------------------------------------------------------------ */
135
136 /* Things that are fetched via autoconf under Unix
137  */
138 #define HAVE_MEMCPY 1
139
140 #define MAXHOSTNAMELEN 1024
141
142 /* ------------------------------------------------------------ */
143
144 #define WITHOUT_NANA
145 #define L_DEFAULT_GUARD (0)
146 #define I_DEFAULT_GUARD (0)
147 #define I(foo)
148 #ifdef RUBBISH
149 //#define VL(foo)
150 #endif
151 #include <stdio.h>
152 #define XXVL(foo)  printf foo;
153 #define VL(foo)
154 #define VLP(foo,bar)
155
156 #define __attribute__(foo)
157
158 #include <netinet/in.h>
159
160 #define getservbyname(X,Y) NULL
161 struct servent {
162         int s_port;
163 };
164
165 struct sockaddr {
166         u_char  sa_len;                 /* total length */
167         u_char  sa_family;              /* address family */
168         char    sa_data[14];            /* address value */
169 }; 
170 #define SOCK_MAXADDRLEN 255             /* longest possible addresses */
171
172 #ifndef HAVE_SOCKLEN_T
173 typedef unsigned int socklen_t;
174 #endif /* HAVE_SOCKLEN_T */
175
176 #ifndef HAVE_STRUCT_SOCKADDR_STORAGE
177 #define        _SS_MAXSIZE     128     /* Implementation specific max size */
178 #define        _SS_PADSIZE     (_SS_MAXSIZE - sizeof (struct sockaddr))
179
180 struct sockaddr_storage {
181        struct  sockaddr ss_sa;
182        char            __ss_pad2[_SS_PADSIZE];
183 };
184 #define ss_family ss_sa.sa_family
185 #endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */
186
187 #define get_krb_err_txt(X) (krb_err_txt[(X)])
188
189 /*
190  * Address families.
191  */
192 #define AF_UNSPEC       0               /* unspecified */
193 #define AF_UNIX         1               /* local to host (pipes, portals) */
194 #define AF_INET         2               /* internetwork: UDP, TCP, etc. */
195 #define AF_IMPLINK      3               /* arpanet imp addresses */
196 #define AF_PUP          4               /* pup protocols: e.g. BSP */
197 #define AF_CHAOS        5               /* mit CHAOS protocols */
198 #define AF_NS           6               /* XEROX NS protocols */
199 #define AF_NBS          7               /* nbs protocols */
200 #define AF_ECMA         8               /* european computer manufacturers */
201 #define AF_DATAKIT      9               /* datakit protocols */
202 #define AF_CCITT        10              /* CCITT protocols, X.25 etc */
203 #define AF_SNA          11              /* IBM SNA */
204 #define AF_DECnet       12              /* DECnet */
205 #define AF_DLI          13              /* Direct data link interface */
206 #define AF_LAT          14              /* LAT */
207 #define AF_HYLINK       15              /* NSC Hyperchannel */
208 #define AF_APPLETALK    16              /* Apple Talk */
209 #define AF_NIT          17              /* Network Interface Tap */
210 #define AF_802          18              /* IEEE 802.2, also ISO 8802 */
211 #define AF_OSI          19              /* umbrella for all families used */
212 #define AF_X25          20              /* CCITT X.25 in particular */
213 #define AF_OSINET       21              /* AFI = 47, IDI = 4 */
214 #define AF_GOSIP        22              /* U.S. Government OSI */
215 #define AF_IPX          23              /* Novell Internet Protocol */
216 #define AF_ROUTE        24              /* Internal Routing Protocol */
217 #define AF_LINK         25              /* Link-layer interface */
218 #define AF_INET6        26              /* Internet Protocol, Version 6 */
219 #define AF_KEY          27              /* Security Association DB socket */
220
221 #define AF_MAX          27
222
223 /*
224  * Protocol families, same as address families for now.
225  */
226 #define PF_UNSPEC       AF_UNSPEC
227 #define PF_UNIX         AF_UNIX
228 #define PF_INET         AF_INET
229 #define PF_IMPLINK      AF_IMPLINK
230 #define PF_PUP          AF_PUP
231 #define PF_CHAOS        AF_CHAOS
232 #define PF_NS           AF_NS
233 #define PF_NBS          AF_NBS
234 #define PF_ECMA         AF_ECMA
235 #define PF_DATAKIT      AF_DATAKIT
236 #define PF_CCITT        AF_CCITT
237 #define PF_SNA          AF_SNA
238 #define PF_DECnet       AF_DECnet
239 #define PF_DLI          AF_DLI
240 #define PF_LAT          AF_LAT
241 #define PF_HYLINK       AF_HYLINK
242 #define PF_APPLETALK    AF_APPLETALK
243 #define PF_NIT          AF_NIT
244 #define PF_802          AF_802
245 #define PF_OSI          AF_OSI
246 #define PF_X25          AF_X25
247 #define PF_OSINET       AF_OSINET
248 #define PF_GOSIP        AF_GOSIP
249 #define PF_IPX          AF_IPX
250 #define PF_ROUTE        AF_ROUTE
251 #define PF_LINK         AF_LINK
252 #define PF_INET6        AF_INET6
253 #define PF_KEY          AF_KEY
254
255 #define PF_MAX          AF_MAX
256
257 #define SOCK_STREAM             1
258 #define SOCK_DGRAM              2
259
260 struct iovec {
261     char *iov_base; 
262     long iov_len;
263 };      
264
265 #ifndef HAVE_GETADDRINFO
266 #define        getaddrinfo     sasl_getaddrinfo
267 #define        freeaddrinfo    sasl_freeaddrinfo
268 #define        getnameinfo     sasl_getnameinfo
269 #define        gai_strerror    sasl_gai_strerror
270 #include "gai.h"
271 #endif
272
273 #endif /* CONFIG_H */