1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388
|
/* $Revision: 1.29 $
**
** Here be configuration data used by various InterNetNews programs.
** The numbers refer to sections in the config.dist file.
*/
/*
** 1. MAKE CONFIG PARAMETERS
*/
/* =()<#define @<USE_CHAR_CONST>@_USE_CHAR_CONST>()= */
#define DUNNO_USE_CHAR_CONST
#if defined(DO_USE_CHAR_CONST)
typedef char const *STRING;
typedef char * const CSTRING;
#endif /* defined(DO_USE_CHAR_CONST) */
#if defined(DONT_USE_CHAR_CONST)
typedef char *STRING;
typedef char *CSTRING;
#endif /* defined(DONT_USE_CHAR_CONST) */
#if defined(DUNNO_USE_CHAR_CONST)
#if defined(__STDC__)
typedef char const *STRING;
typedef char * const CSTRING;
#else
typedef char *STRING;
typedef char *CSTRING;
#endif /* defined(__STDC__) */
#endif /* defined(DUNNO_USE_CHAR_CONST) */
/*
** Declare a function that doesn't return.
*/
#if defined(__dead)
/* BSD4.4 */
#define NORETURN __dead
#else
#if defined(__GNUC__)
/* GCC */
#define NORETURN volatile void
#else
/* Everyone else */
#define NORETURN void
#endif /* defined(__GNUC__) */
#endif /* defined(__dead) */
/*
** 3. OWNERSHIPS AND FILE MODES
*/
/* =()<#define NEWSUSER "@<NEWSUSER>@">()= */
#define NEWSUSER "news"
/* =()<#define NEWSGID "@<NEWSGROUP>@">()= */
#define NEWSGID "news"
/* =()<#define NEWSMASTER "@<NEWSMASTER>@">()= */
#define NEWSMASTER "usenet"
/* =()<#define PATHMASTER "@<PATHMASTER>@">()= */
#define PATHMASTER "not-for-mail"
/* Umask to set. */
/* =()<#define NEWSUMASK @<NEWSUMASK>@>()= */
#define NEWSUMASK 0
/* Mode that incoming articles are created under. */
/* =()<#define ARTFILE_MODE @<ARTFILE_MODE>@>()= */
#define ARTFILE_MODE 0664
/* Mode that batch files are created under. */
/* =()<#define BATCHFILE_MODE @<BATCHFILE_MODE>@>()= */
#define BATCHFILE_MODE 0664
/* Mode that directories are created under. */
/* =()<#define GROUPDIR_MODE @<GROUPDIR_MODE>@>()= */
#define GROUPDIR_MODE 0775
/*
** 4. C LIBRARY DIFFERENCES
*/
/* Use have stdargs, varargs, or neither? */
/* =()<#define VAR_@<VAR_STYLE>@>()= */
#define VAR_VARARGS
/* Use BSD4.2 or Posix directory names? */
/* =()<#define DIR_@<DIR_STYLE>@>()= */
#define DIR_DIRENT
/* Use flock, lockf, or nothing to lock files? */
/* =()<#define LOCK_@<LOCK_STYLE>@>()= */
#define LOCK_FLOCK
/* Do you have <unistd.h>? */
/* =()<#define @<HAVE_UNISTD>@_HAVE_UNISTD>()= */
#define DONT_HAVE_UNISTD
/* Do you have setbuffer? */
/* =()<#define @<HAVE_SETBUFFER>@_HAVE_SETBUFFER>()= */
#define DO_HAVE_SETBUFFER
/* Do you have gettimeofday? */
/* =()<#define @<HAVE_GETTIMEOFDAY>@_HAVE_GETTIMEOFDAY>()= */
#define DO_HAVE_GETTIMEOFDAY
/* Do you have fchmod? */
/* =()<#define @<HAVE_FCHMOD>@_HAVE_FCHMOD>()= */
#define DO_HAVE_FCHMOD
/* Do you have setsid()? */
/* =()<#define @<HAVE_SETSID>@_HAVE_SETSID>()= */
#define DONT_HAVE_SETSID
/* Does your (struct tm) have a tm_gmtoff field? */
/* =()<#define @<HAVE_TM_GMTOFF>@_HAVE_TM_GMTOFF>()= */
#define DO_HAVE_TM_GMTOFF
/* Does your (struct stat) have a st_blksize field? */
/* =()<#define @<HAVE_ST_BLKSIZE>@_HAVE_ST_BLKSIZE>()= */
#define DO_HAVE_ST_BLKSIZE
/* Use waitpid instead of wait3? */
/* =()<#define @<HAVE_WAITPID>@_HAVE_WAITPID>()= */
#define DONT_HAVE_WAITPID
/* Use "union wait" instead of int? */
/* =()<#define @<USE_UNION_WAIT>@_USE_UNION_WAIT>()= */
#define DO_USE_UNION_WAIT
/* How to fork? */
/* =()<#define FORK() @<FORK>@()>()= */
#define FORK() vfork()
/* Do you have symbolic links? */
/* =()<#define @<HAVE_SYMLINK>@_HAVE_SYMLINK>()= */
#define DO_HAVE_SYMLINK
/* Does your AF_UNIX bind use sizeof for the socket size? */
/* =()<#define @<BIND_USE_SIZEOF>@_BIND_USE_SIZEOF>()= */
#define DO_BIND_USE_SIZEOF
/* Do you have Unix-domain sockets? */
/* =()<#define @<HAVE_UNIX_DOMAIN>@_HAVE_UNIX_DOMAIN>()= */
#define DO_HAVE_UNIX_DOMAIN
/* How should close-on-exec be done? */
/* =()<#define CLX_@<CLX_STYLE>@>()= */
#define CLX_IOCTL
/* How should non-blocking I/O be done? */
/* =()<#define NBIO_@<NBIO_STYLE>@>()= */
#define NBIO_FCNTL
/* How should resource-totalling be done? */
/* =()<#define RES_@<RES_STYLE>@>()= */
#define RES_RUSAGE
/* How to get number of available descriptors? */
/* =()<#define FDCOUNT_@<FDCOUNT_STYLE>@>()= */
#define FDCOUNT_GETDTAB
/* If greater than -1, then use [gs]etrlimit to set that many descriptors. */
/* If -1, then no [gs]etrlimit calls are done. */
/* =()<#define NOFILE_LIMIT @<NOFILE_LIMIT>@>()= */
#define NOFILE_LIMIT 250
/* Do you need <time.h> as well as <sys/time.h>? */
/* =()<#define @<NEED_TIME>@_NEED_TIME>()= */
#define DONT_NEED_TIME
/* What predicate, if any, the <ctype.h> macros need. */
/* =()<#define CTYPE(isXXXXX, c) (@<CTYPE>@)>()= */
#define CTYPE(isXXXXX, c) ((isascii((c)) && isXXXXX((c))))
/*
** 6. MISCELLANEOUS CONFIG DATA
*/
/* Use mmap() to read the active file, or read it in? */
/* =()<#define ACT_@<ACT_STYLE>@>()= */
#define ACT_MMAP
/* Use our NNTP-server-open routine, or the one in NNTP? */
/* INND is nicer, but you must install inn.conf files everywhere; NNTP */
/* is better if you already have lots of /usr/lib/news/server files. */
/* =()<#define REM_@<REM_STYLE>@>()= */
#define REM_INND
/* Should rnews save articles that the server rejects? */
/* =()<#define @<RNEWS_SAVE_BAD>@_RNEWS_SAVE_BAD>()= */
#define DO_RNEWS_SAVE_BAD
/* Should rnews syslog articles innd already has? */
/* =()<#define @<RNEWS_LOG_DUPS>@_RNEWS_LOG_DUPS>()= */
#define DONT_RNEWS_LOG_DUPS
/* Look in _PATH_RNEWSPROGS for rnews unpackers? */
/* =()<#define @<RNEWSPROGS>@_RNEWSPROGS>()= */
#define DO_RNEWSPROGS
/* Should rnews try the local host? */
/* =()<#define @<RNEWSLOCALCONNECT>@_RNEWSLOCALCONNECT>()= */
#define DO_RNEWSLOCALCONNECT
/* Disallow posts with more than 50% inclusion (">") lines? */
/* (This is only for inews and nnrpd.) */
/* =()<#define @<CHECK_INCLUDED_TEXT>@_CHECK_INCLUDED_TEXT>()= */
#define DO_CHECK_INCLUDED_TEXT
/* Put hosts in the inews Path header? */
/* =()<#define @<INEWS_PATH>@_INEWS_PATH>()= */
#define DONT_INEWS_PATH
/* Munge the gecos field of password entry? */
/* =()<#define @<MUNGE_GECOS>@_MUNGE_GECOS>()= */
#define DO_MUNGE_GECOS
/* How many times to try before giving up */
/* =()<#define MAX_FORKS @<MAX_FORKS>@>()= */
#define MAX_FORKS 10
/* Largest acceptable article size; 0 allows any size */
/* =()<#define MAX_ART_SIZE @<MAX_ART_SIZE>@>()= */
#define MAX_ART_SIZE 1000000
/* Value of dbzincore(FLAG) call in innd. */
/* =()<#define INND_DBZINCORE @<INND_DBZINCORE>@>()= */
#define INND_DBZINCORE 1
/* Should sub-processes get a nice(2) value? */
/* =()<#define @<INND_NICE_KIDS>@_INND_NICE_KIDS>()= */
#define DONT_INND_NICE_KIDS
/* Value for nice(2) call in innd. */
/* =()<#define INND_NICE_VALUE @<INND_NICE_VALUE>@>()= */
#define INND_NICE_VALUE 10
/* Null-terminated list of unknown commands to not log to syslog. */
/* =()<#define INND_QUIET_BADLIST @<INND_QUIET_BADLIST>@>()= */
#define INND_QUIET_BADLIST NULL
/* Null-terminated set of illegal distribution patterns. */
/* =()<#define BAD_DISTRIBS @<BAD_DISTRIBS>@>()= */
#define BAD_DISTRIBS "*.*",NULL
/* Check that poster is the person doing the cancel? */
/* =()<#define @<VERIFY_CANCELS>@_VERIFY_CANCELS>()= */
#define DO_VERIFY_CANCELS
/* Log "ctlinnd cancel" commands to syslog? */
/* =()<#define @<LOG_CANCEL_COMMANDS>@_LOG_CANCEL_COMMANDS>()= */
#define DO_LOG_CANCEL_COMMANDS
/* File unknown "to.*" groups into the "to" newsgroup? */
/* =()<#define @<MERGE_TO_GROUPS>@_MERGE_TO_GROUPS>()= */
#define DO_MERGE_TO_GROUPS
/* File articles in unknown newsgroups into junk? */
/* =()<#define @<WANT_TRASH>@_WANT_TRASH>()= */
#define DO_WANT_TRASH
/* Record rejected articles in history? */
/* =()<#define @<REMEMBER_TRASH>@_REMEMBER_TRASH>()= */
#define DONT_REMEMBER_TRASH
/* Check the linecount against the Lines header? */
/* =()<#define @<CHECK_LINECOUNT>@_CHECK_LINECOUNT>()= */
#define DONT_CHECK_LINECOUNT
/* If checking, the error must be within LINECOUNT_FUZZ lines. */
/* =()<#define LINECOUNT_FUZZ @<LINECOUNT_FUZZ>@>()= */
#define LINECOUNT_FUZZ 5
/* Have innd throttle itself after this many I/O errors. */
/* =()<#define IO_ERROR_COUNT @<IO_ERROR_COUNT>@>()= */
#define IO_ERROR_COUNT 50
/* Default value for ctlinnd -t flag. */
/* =()<#define CTLINND_TIMEOUT @<CTLINND_TIMEOUT>@>()= */
#define CTLINND_TIMEOUT 0
/* Flush logs (and NNRP connections) if we go this long with no I/O. */
/* =()<#define DEFAULT_TIMEOUT @<DEFAULT_TIMEOUT>@>()= */
#define DEFAULT_TIMEOUT 300
/* INND closes channel if inactive this long (seconds). */
/* =()<#define PEER_TIMEOUT @<PEER_TIMEOUT>@>()= */
#define PEER_TIMEOUT (1 * 60 * 60)
/* NNRP exits if inactive this long (seconds). */
/* =()<#define CLIENT_TIMEOUT @<CLIENT_TIMEOUT>@>()= */
#define CLIENT_TIMEOUT (2 * 60 * 60)
/* Allow nnrpd readers when paused or throttled? */
/* =()<#define @<ALLOW_READERS>@_ALLOW_READERS>()= */
#define DO_ALLOW_READERS
/* Refuse NNTP connections if load is higher then this; -1 disables. */
/* =()<#define NNRP_LOADLIMIT @<NNRP_LOADLIMIT>@>()= */
#define NNRP_LOADLIMIT 16
/* Don't readdir() spool dir if same group within this many seconds. */
/* =()<#define NNRP_RESCAN_DELAY @<NNRP_RESCAN_DELAY>@>()= */
#define NNRP_RESCAN_DELAY 60
/* Do gethostbyaddr on client addresses in nnrp? */
/* =()<#define @<NNRP_GETHOSTBYADDR>@_NNRP_GETHOSTBYADDR>()= */
#define DO_NNRP_GETHOSTBYADDR
/* Should nnrpd do a dbzincore? */
/* =()<#define NNRP_DBZINCORE_DELAY @<NNRP_DBZINCORE_DELAY>@>()= */
#define NNRP_DBZINCORE_DELAY 40
/* Strip Sender from posts that did authenticate? */
/* =()<#define @<NNRP_AUTH_SENDER>@_NNRP_AUTH_SENDER>()= */
#define DONT_NNRP_AUTH_SENDER
/* How many read/write failures until channel is put to sleep or closed? */
/* =()<#define BAD_IO_COUNT @<BAD_IO_COUNT>@>()= */
#define BAD_IO_COUNT 5
/* Multiplier for sleep in EWOULDBLOCK writes (seconds). */
/* =()<#define BLOCK_BACKOFF @<BLOCK_BACKOFF>@>()= */
#define BLOCK_BACKOFF (2 * 60)
/* How many article-writes between active and history updates? */
/* =()<#define ICD_SYNC_COUNT @<ICD_SYNC_COUNT>@>()= */
#define ICD_SYNC_COUNT 1
/* Tell resolver _res.options to be fast? */
/* =()<#define @<FAST_RESOLV>@_FAST_RESOLV>()= */
#define DONT_FAST_RESOLV
/* Drop articles that were posted this many days ago. */
/* =()<#define DEFAULT_CUTOFF @<DEFAULT_CUTOFF>@>()= */
#define DEFAULT_CUTOFF 14
/* Maximum number of incoming NNTP connections. */
/* =()<#define DEFAULT_CONNECTIONS @<DEFAULT_CONNECTIONS>@>()= */
#define DEFAULT_CONNECTIONS 50
/* Wait this many seconds before channel restarts. */
/* =()<#define CHANNEL_RETRY_TIME @<CHANNEL_RETRY_TIME>@>()= */
#define CHANNEL_RETRY_TIME (5 * 60)
/* Wait this many seconds before seeing if pause is ended. */
/* =()<#define PAUSE_RETRY_TIME @<PAUSE_RETRY_TIME>@>()= */
#define PAUSE_RETRY_TIME (5 * 60)
/* Wait this many seconds before seeing if pause is ended. */
/* =()<#define CHANNEL_INACTIVE_TIME @<CHANNEL_INACTIVE_TIME>@>()= */
#define CHANNEL_INACTIVE_TIME (10 * 60)
/* Put nntplink info (filename) into the log? */
/* =()<#define @<NNTPLINK_LOG>@_NNTPLINK_LOG>()= */
#define DO_NNTPLINK_LOG
/* Log by host IP address, rather than from Path line? */
/* =()<#define @<IPADDR_LOG>@_IPADDR_LOG>()= */
#define DO_IPADDR_LOG
/* Log NNTP activity after this many articles. */
/* =()<#define NNTP_ACTIVITY_SYNC @<NNTP_ACTIVITY_SYNC>@>()= */
#define NNTP_ACTIVITY_SYNC 200
/* Free buffers bigger than this when we're done with them. */
/* =()<#define BIG_BUFFER @<BIG_BUFFER>@>()= */
#define BIG_BUFFER (2 * START_BUFF_SIZE)
/* A general small buffer. */
/* =()<#define SMBUF @<SMBUF>@>()= */
#define SMBUF 256
/* Buffer for a single article name. */
/* =()<#define MAXARTFNAME @<MAXARTFNAME>@>()= */
#define MAXARTFNAME 10
/* Buffer for a single pathname in the spool directory. */
/* =()<#define SPOOLNAMEBUFF @<SPOOLNAMEBUFF>@>()= */
#define SPOOLNAMEBUFF 256
/* Maximum size of a single header. */
/* =()<#define MAXHEADERSIZE @<MAXHEADERSIZE>@>()= */
#define MAXHEADERSIZE 1024
/* Byte limit on locally-posted articles; 0 to disable the check. */
/* =()<#define LOCAL_MAX_ARTSIZE @<LOCAL_MAX_ARTSIZE>@>()= */
#define LOCAL_MAX_ARTSIZE 0
/* Function that returns no value, and a pointer to it. */
/* =()<#define FUNCTYPE @<FUNCTYPE>@>()= */
#define FUNCTYPE void
typedef FUNCTYPE (*FUNCPTR)();
/* While reading input, if we have less than LOW_WATER bytes free, we
* use the current buffersize as input to GROW_AMOUNT to determine how
* much to realloc. (Doubling seems to be the best thing right now.)
* Growth must be at least NNTP_STRLEN bytes! */
#define START_BUFF_SIZE (4 * 1024)
#define LOW_WATER (1 * 1024)
#define GROW_AMOUNT(x) ((x))
/* Some debuggers might need this set to an empty string. */
#define STATIC static
/* How to store article numbers; note that INN is not int/long clean. */
typedef unsigned long ARTNUM;
/* A general convenience; you shouldn't have to change this. */
typedef int BOOL;
/* General values that you should not have to change. */
#define MEMCPY_THRESHOLD 12
#define MAX_BUILTIN_ARGV 20
#define NNTP_PORT 119
#define TRUE 1
#define FALSE 0
#define MAXLISTEN 5
#define STDIN 0
#define STDOUT 1
#define PIPE_READ 0
#define PIPE_WRITE 1
#define DATE_FUZZ (24L * 60L * 60L)
#define COMMENT_CHAR '#'
#define ART_ACCEPT '+'
#define ART_CANC 'c'
#define ART_JUNK 'j'
#define ART_REJECT '-'
#define EXP_CONTROL '!'
#define FEED_MAXFLAGS 20
#define FEED_BYTESIZE 'b'
#define FEED_FULLNAME 'f'
#define FEED_HDR_DISTRIB 'D'
#define FEED_HDR_NEWSGROUP 'N'
#define FEED_MESSAGEID 'm'
#define FEED_FNLNAMES '*'
#define FEED_HEADERS 'H'
#define FEED_NAME 'n'
#define FEED_NEWSGROUP 'g'
#define FEED_OVERVIEW 'O'
#define FEED_REPLIC 'R'
#define FEED_SITE 's'
#define FEED_TIMERECEIVED 't'
#define HIS_BADCHAR '_'
#define HIS_FIELDSEP '\t'
#define HIS_NOEXP "-"
#define HIS_SUBFIELDSEP '~'
#define NF_FIELD_SEP ':'
#define NF_FLAG_ALIAS '='
#define NF_FLAG_EXCLUDED 'j'
#define NF_FLAG_MODERATED 'm'
#define NF_FLAG_OK 'y'
#define NF_FLAG_NOLOCAL 'n'
#define NF_FLAG_IGNORE 'x'
#define NF_SUBFIELD_SEP '/'
#define NG_SEPARATOR ","
#define NG_ISSEP(c) ((c) == ',')
#define RNEWS_MAGIC1 '#'
#define RNEWS_MAGIC2 '!'
#define SIG_MAXLINES 4
#define SIG_SEPARATOR "-- \n"
#define SUB_DEFAULT FALSE
#define SUB_NEGATE '!'
#define LOOPBACK_HOST "127.0.0.1"
|