config.h (11206B)
1 /* Mixmaster version 3.0 -- (C) 1999 - 2008 Anonymizer Inc. and others. 2 3 Mixmaster may be redistributed and modified under certain conditions. 4 This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 5 ANY KIND, either express or implied. See the file COPYRIGHT for 6 details. 7 8 Configuration 9 $Id: config.h 973 2008-03-03 16:55:38Z rabbi $ */ 10 11 12 #ifndef _CONFIG_H 13 #define _CONFIG_H 14 #include "version.h" 15 #ifndef WIN32 16 #include "sys/param.h" 17 #endif /* WIN32 */ 18 19 /* Disclaimer to be inserted in all anonymous messages: */ 20 #define DISCLAIMER \ 21 "Comments: This message did not originate from the Sender address above.\n" \ 22 "\tIt was remailed automatically by anonymizing remailer software.\n" \ 23 "\tPlease report problems or inappropriate use to the\n" \ 24 "\tremailer administrator at <%s>.\n" /* (%s is the complaints address) */ 25 26 /* Additional disclaimer to be inserted in the body of messages with 27 * user-supplied From lines, e.g. 28 * "NOTE: The above From: line has not been authenticated!\n\n" */ 29 #define FROMDISCLAIMER "" 30 31 /* Additional disclaimer to be inserted at the bottom of the body of all 32 * messages */ 33 #define MSGFOOTER "" 34 35 /* Comment to be inserted when a binary attachment is filtered out: */ 36 #define BINDISCLAIMER \ 37 "[...]" 38 39 /* Character set for MIME-encoded mail header lines */ 40 #define MIMECHARSET "iso-8859-1" 41 #if 1 42 #define DEFLTENTITY "" 43 #else 44 #define DEFLTENTITY "text/plain; charset=" MIMECHARSET 45 #endif 46 47 #ifdef WIN32 48 /* Use the PCRE regular expression library for destination blocking? */ 49 #define USE_PCRE 50 /* Use zlib for compression? */ 51 #define USE_ZLIB 52 /* Use ncurses? */ 53 #define USE_NCURSES 54 /* Use the WIN GUI? */ 55 #define USE_WINGUI 56 /* Use sockets to deliver mail */ 57 #define USE_SOCK 58 /* Compile in Win32 service support */ 59 #define WIN32SERVICE 60 #endif /* WIN32 */ 61 62 /** System dependencies **********************************************/ 63 /* Macros: UNIX for Unix-style systems 64 POSIX for systems with POSIX header files (including DJGPP) 65 MSDOS for 32 bit DOS 66 WIN32 for Windows 95/NT */ 67 68 #if defined(_WIN32) && !defined(WIN32) 69 #define WIN32 70 #endif 71 72 #if defined(__RSXNT__) && !defined(WIN32) 73 #define WIN32 74 #endif 75 76 #if !defined(UNIX) && !defined(WIN32) && !defined(MSDOS) 77 #define UNIX 78 #endif 79 80 #if defined(UNIX) && !defined(POSIX) 81 #define POSIX 82 #endif 83 84 #ifdef UNIX 85 #define DEV_URANDOM "/dev/urandom" 86 #ifdef __OpenBSD__ 87 #define DEV_RANDOM "/dev/arandom" 88 #else 89 #define DEV_RANDOM "/dev/random" 90 #endif 91 #endif 92 93 #ifdef POSIX 94 # define HAVE_TERMIOS 95 #endif /* POSIX */ 96 97 #ifdef MSDOS 98 #define SHORTNAMES 99 #ifndef WIN32 100 #define HAVE_GETKEY 101 #undef USE_SOCK 102 #endif 103 #endif 104 105 #if defined(USE_WINGUI) && !defined(WIN32) 106 #error "The GUI requires Win32!" 107 #endif 108 109 #if defined(WIN32) && !defined(_USRDLL) 110 #define DLLIMPORT __declspec(dllimport) 111 #else 112 #define DLLIMPORT 113 #endif 114 115 /* This block includes the config.h created by autoconf/configure. 116 * Eventually this old config.h stuff should be merged with the autoconf 117 * stuff perhaps. */ 118 #ifdef HAVE_CONFIG_H 119 # include "../config.h" 120 #else /* End of HAVE_CONFIG_H */ 121 122 /* Setup for stuff that happens when autoconf isn't run. This should be 123 * removed once we finally nuke that damn Install script. */ 124 125 /** Libraries and library functions **********************************/ 126 127 /* Use the OpenSSL crypto library (required) */ 128 #define USE_OPENSSL 129 /* Use IDEA algorithm? (See file idea.txt) */ 130 /* #define USE_IDEA */ 131 /* Use AES algorithm? - should be handled by Install script setting compiler option -DUSE_AES */ 132 /* #define USE_AES */ 133 /* Support the OpenPGP message format? */ 134 #define USE_PGP 135 136 #ifdef UNIX 137 # define HAVE_UNAME 138 # define HAVE_GECOS 139 #endif 140 141 #if defined(POSIX) || defined(USE_SOCK) 142 # define HAVE_GETHOSTNAME 143 #endif 144 145 #ifdef POSIX 146 /* not a POSIX function, but avaiable on virtually all Unix systems */ 147 # define HAVE_GETTIMEOFDAY 148 #endif 149 150 #ifdef linux 151 # define HAVE_GETDOMAINNAME 152 #endif 153 154 #ifdef WIN32 155 # ifdef _MSC_VER 156 #pragma warning(disable: 4018) /* signed/unsigned mismatch */ 157 #pragma warning(disable: 4761) /* integral size mismatch */ 158 # endif 159 #endif 160 161 162 #endif /* End of not HAVE_CONFIG_H */ 163 164 /** Constants *********************************************************/ 165 166 /* Give up if a file is larger than BUFFER_MAX bytes: */ 167 /* #define BUFFER_MAX 64*1024*1024 */ 168 169 #ifdef MAXPATHLEN 170 #define PATHMAX MAXPATHLEN 171 #else /* MAXPATHLEN */ 172 #ifdef _MSC 173 #define PATHMAX MAX_PATH 174 #else /* _MSC */ 175 #define PATHMAX 512 176 #endif /* not _MSC */ 177 #endif /* not MAXPATHLEN */ 178 #define LINELEN 128 179 #define BUFSIZE 4096 180 181 /** if it is a systemwide installation defined GLOBALMIXCONF **********/ 182 /* #define GLOBALMIXCONF "/etc/mix.cfg" */ 183 184 /* The path to append to a user's homedirectory for his local Mix dir */ 185 #ifndef HOMEMIXDIR 186 #define HOMEMIXDIR "Mix" 187 #endif 188 189 /** file names ********************************************************/ 190 191 #ifdef WIN32 192 #define DEFAULT_MIXCONF "mix.cfg" /* change to mix.ini eventually */ 193 #else 194 #define DEFAULT_MIXCONF "mix.cfg" /* mixmaster configuration file */ 195 #endif 196 #define DEFAULT_DISCLAIMFILE "disclaim.txt" 197 #define DEFAULT_FROMDSCLFILE "fromdscl.txt" 198 #define DEFAULT_MSGFOOTERFILE "footer.txt" 199 #ifdef WIN32 200 #define DEFAULT_POP3CONF "pop3.cfg" /* change to pop3.ini eventually */ 201 #else 202 #define DEFAULT_POP3CONF "pop3.cfg" 203 #endif 204 #define DEFAULT_HELPFILE "help.txt" 205 #define DEFAULT_REQUESTDIR "requests" 206 #define DEFAULT_ABUSEFILE "abuse.txt" 207 #define DEFAULT_REPLYFILE "reply.txt" 208 #define DEFAULT_USAGEFILE "usage.txt" 209 #define DEFAULT_USAGELOG "usage.log" 210 #define DEFAULT_BLOCKFILE "blocked.txt" 211 #define DEFAULT_ADMKEYFILE "adminkey.txt" 212 #define DEFAULT_KEYFILE "key.txt" 213 #define DEFAULT_PGPKEY "pgpkey.txt" 214 #define DEFAULT_DSAPARAMS "dsaparam.mix" 215 #define DEFAULT_DHPARAMS "dhparam.mix" 216 #define DEFAULT_MIXRAND "mixrand.bin" 217 #define DEFAULT_SECRING "secring.mix" 218 #define DEFAULT_PUBRING "pubring.mix" 219 #define DEFAULT_IDLOG "id.log" 220 #define DEFAULT_STATS "stats.log" 221 #define DEFAULT_PGPMAXCOUNT "pgpmaxcount.log" 222 /* To enable multiple dest.blk files, edit the following line. */ 223 /* Filenames must be seperated by one space. */ 224 #define DEFAULT_DESTBLOCK "dest.blk rab.blk" 225 #define DEFAULT_DESTALLOW "dest.alw" 226 #define DEFAULT_DESTALLOW2 "dest.alw.nonpublished" 227 #define DEFAULT_SOURCEBLOCK "source.blk" 228 #define DEFAULT_HDRFILTER "header.blk" 229 #define DEFAULT_REGULAR "time.log" 230 #define DEFAULT_POOL "pool" /* remailer pool subdirectory */ 231 #define DEFAULT_TYPE1LIST "rlist.txt" 232 #define DEFAULT_TYPE2REL "mlist.txt" 233 #define DEFAULT_PIDFILE "mixmaster.pid" 234 #define DEFAULT_STATSSRC "stats-src.txt" 235 236 #define DEFAULT_PGPREMPUBRING "pubring.pgp" 237 #define DEFAULT_PGPREMPUBASC "pubring.asc" 238 #define DEFAULT_PGPREMSECRING "secring.pgp" 239 #define DEFAULT_NYMSECRING "nymsec.pgp" 240 #define DEFAULT_NYMDB "secrets.mix" 241 #define DEFAULT_STAREX "starex.txt" 242 #define DEFAULT_ALLPINGERSURL "http://www.noreply.org/allpingers/allpingers.txt" 243 #define DEFAULT_ALLPINGERSFILE "allpingers.txt" 244 #define DEFAULT_WGET "wget" 245 246 DLLIMPORT extern char MIXCONF[]; 247 extern char DISCLAIMFILE[]; 248 extern char FROMDSCLFILE[]; 249 extern char MSGFOOTERFILE[]; 250 extern char POP3CONF[]; 251 extern char HELPFILE[]; 252 extern char REQUESTDIR[]; 253 extern char ABUSEFILE[]; 254 extern char REPLYFILE[]; 255 extern char USAGEFILE[]; 256 extern char USAGELOG[]; 257 extern char BLOCKFILE[]; 258 extern char ADMKEYFILE[]; 259 extern char KEYFILE[]; 260 extern char PGPKEY[]; 261 extern char DSAPARAMS[]; 262 extern char DHPARAMS[]; 263 extern char MIXRAND[]; 264 extern char SECRING[]; 265 extern char PUBRING[]; 266 extern char IDLOG[]; 267 extern char STATS[]; 268 extern char PGPMAXCOUNT[]; 269 extern char DESTBLOCK[]; 270 extern char DESTALLOW[]; 271 extern char DESTALLOW2[]; 272 extern char SOURCEBLOCK[]; 273 extern char HDRFILTER[]; 274 extern char REGULAR[]; 275 extern char POOL[]; 276 extern char TYPE1LIST[]; 277 extern char TYPE2REL[]; 278 extern char PIDFILE[]; 279 extern char STAREX[]; 280 281 extern char PGPREMPUBRING[]; 282 extern char PGPREMPUBASC[]; 283 extern char PGPREMSECRING[]; 284 DLLIMPORT extern char NYMSECRING[]; 285 extern char NYMDB[]; 286 287 /* string constants */ 288 #define remailer_type "Remailer-Type: Mixmaster " 289 #define mixmaster_protocol "2" 290 #define begin_remailer "-----BEGIN REMAILER MESSAGE-----" 291 #define end_remailer "-----END REMAILER MESSAGE-----" 292 #define begin_key "-----Begin Mix Key-----" 293 #define end_key "-----End Mix Key-----" 294 #define begin_pgp "-----BEGIN PGP " 295 #define end_pgp "-----END PGP " 296 #define begin_pgpmsg "-----BEGIN PGP MESSAGE-----" 297 #define end_pgpmsg "-----END PGP MESSAGE-----" 298 #define begin_pgpkey "-----BEGIN PGP PUBLIC KEY BLOCK-----" 299 #define end_pgpkey "-----END PGP PUBLIC KEY BLOCK-----" 300 #define begin_pgpseckey "-----BEGIN PGP PRIVATE KEY BLOCK-----" 301 #define end_pgpseckey "-----END PGP PRIVATE KEY BLOCK-----" 302 #define begin_pgpsigned "-----BEGIN PGP SIGNED MESSAGE-----" 303 #define begin_pgpsig "-----BEGIN PGP SIGNATURE-----" 304 #define end_pgpsig "-----END PGP SIGNATURE-----" 305 #define info_beginpgp "=====BEGIN PGP MESSAGE=====" 306 #define info_endpgp "=====END PGP MESSAGE=====" 307 #define info_pgpsig "=====Sig: " 308 309 310 /*********************************************************************** 311 * The following variables are read from mix.cfg, with default values 312 * defined in mix.c */ 313 314 int REMAIL; 315 int MIX; 316 int PGP; 317 int UNENCRYPTED; 318 int REMIX; 319 int REPGP; 320 extern char MIXDIR[]; 321 extern char POOLDIR[]; 322 extern char EXTFLAGS[]; 323 extern char SENDMAIL[]; 324 extern char SENDANONMAIL[]; 325 extern char PRECEDENCE[]; 326 extern char SMTPRELAY[]; 327 extern char SMTPUSERNAME[]; 328 extern char SMTPPASSWORD[]; 329 extern char NEWS[]; 330 extern char MAILtoNEWS[]; 331 extern char ORGANIZATION[]; 332 extern char MID[]; 333 extern char TYPE1[]; 334 extern char ERRLOG[]; 335 extern char NAME[]; 336 extern char ADDRESS[]; 337 extern char REMAILERADDR[]; 338 extern char ANONADDR[]; 339 extern char REMAILERNAME[]; 340 extern char ANONNAME[]; 341 extern char COMPLAINTS[]; 342 extern int AUTOREPLY; 343 extern char HELONAME[]; 344 extern char ENVFROM[]; 345 extern char SHORTNAME[]; 346 extern int POOLSIZE; 347 DLLIMPORT extern int RATE; 348 extern int INDUMMYP; 349 extern int OUTDUMMYP; 350 extern int MIDDLEMAN; 351 extern int AUTOBLOCK; 352 extern int STATSDETAILS; 353 extern char FORWARDTO[]; 354 extern int SIZELIMIT; 355 extern int INFLATEMAX; 356 extern int MAXRANDHOPS; 357 extern int BINFILTER; 358 extern int LISTSUPPORTED; 359 extern long PACKETEXP; 360 extern long IDEXP; 361 DLLIMPORT extern int VERBOSE; 362 DLLIMPORT extern long SENDPOOLTIME; 363 extern long MAILINTIME; 364 extern long KEYLIFETIME; 365 extern long KEYOVERLAPPERIOD; 366 extern long KEYGRACEPERIOD; 367 extern int NUMCOPIES; 368 extern char CHAIN[]; 369 extern int DISTANCE; 370 extern int MINREL; 371 extern int RELFINAL; 372 extern long MAXLAT; 373 extern long MINLAT; 374 DLLIMPORT extern char PGPPUBRING[]; 375 DLLIMPORT extern char PGPSECRING[]; 376 DLLIMPORT extern char PASSPHRASE[]; 377 extern long POP3TIME; 378 extern int POP3DEL; 379 extern int POP3SIZELIMIT; 380 extern char MAILBOX[]; 381 extern char MAILIN[]; 382 extern char MAILABUSE[]; 383 extern char MAILBLOCK[]; 384 extern char MAILUSAGE[]; 385 extern char MAILANON[]; 386 extern char MAILERROR[]; 387 extern char MAILBOUNCE[]; 388 DLLIMPORT extern int CLIENTAUTOFLUSH; 389 extern int MAXRECIPIENTS; 390 extern long TIMESKEW_FORWARD; 391 extern long TIMESKEW_BACK; 392 extern int TEMP_FAIL; 393 extern char ALLPINGERSURL[]; 394 extern char ALLPINGERSFILE[]; 395 396 extern char WGET[]; 397 extern char STATSSRC[]; 398 extern int STATSAUTOUPDATE; 399 extern long STATSINTERVAL; 400 401 DLLIMPORT extern char ENTEREDPASSPHRASE[LINELEN]; 402 403 #endif