1/* $Id: config.h,v 1.4 2005/01/10 19:17:29 snsimon 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 80int strcasecmp(const char *s1,const char *s2); 81int strncasecmp(const char *s1,const char *s2,int len); 82 83int strcpy_truncate(char *dest,char *src,int len); 84 85#define gethostname xxx_sasl_gethostname 86int 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 91typedef unsigned char u_char; 92typedef unsigned long u_long; 93 94char *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 105struct in_addr { 106 unsigned long s_addr; 107}; 108 109#ifndef HAVE_SOCKLEN_T 110typedef 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 120int snprintf (char *str,size_t count,const char *fmt,...); 121int snprintf (char *str,int count,const char *fmt,...); 122#endif 123 124extern char *optarg; 125extern int optind; 126extern int getopt( 127 int nargc, 128 char * const *nargv, 129 const char *ostr); 130 131extern int getsubopt(char **optionp, const char * const *tokens, char **valuep); 132extern 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 161struct servent { 162 int s_port; 163}; 164 165struct 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 173typedef 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 180struct 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 260struct 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 */ 274