|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 46480 (0xb590)
Types: TextFile
Names: »config.h«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit
└─⟦2fafebccf⟧ »EurOpenD3/mail/smail3.1.19.tar.Z«
└─⟦bcd2bc73f⟧
└─⟦this⟧ »src/config.h«
/* @(#)config.h 1.5 3/16/89 23:56:36 */
/*
* Copyright (C) 1987, 1988 Ronald S. Karr and Landon Curt Noll
*
* See the file COPYING, distributed with smail, for restriction
* and warranty information.
*/
/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
/* =-=-=-=-=- adjust defines below to fit your computer system =-=-=-=-=-= */
/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
/*
* NOTE:
* This file is designed to allow attributes to be changed by
* use of the -Ddefine or -Ddefine=value flags to cpp. This can
* be used to set parameters in the makefile or to set values
* in a direct invocation of `cc'. It is not recommended that
* that this feature be used as a general rule.
*
* For defines which must exist in some form or another, simply
* using -D to define another form of the define is sufficient
* to override this file.
*
* For optional defines (for example, ALIASES_FILE) it will be
* possible to set a define beginning with NO_ (for example,
* NO_ALIASES_FILE) which specifically means that this is not
* to be defined.
*/
\f
/*
* SITENAME CONFIGURATION
*
* The following section defines the various possible names for the
* local host which are recognized and produced implicitly by smail
*/
/*
* Define the full domain name for the local site used in outgoing
* addresses within header fields. If VISIBLE_NAME is set to NULL, then
* the the address used will be the first name in the list HOSTNAMES. If
* HOSTNAMES is also NULL, then a hostname will be computed in a system-
* dependent fashion and VISIBLE_DOMAINS used to build HOSTNAMES and
* VISIBLE_NAME in the form <hostname>.VISIBLE_DOMAINS. VISIBLE_NAME
* should be a domain name which which remote sites will understand.
*
* VISIBLE_NAME does not need to specifically specify the local host. It
* can be the domain name for a set of hosts which maintain a consistent
* user database or automatically forward to the homes for all users
* within the domain.
*
* NOTE: This can be set with the config file value "visible_name"
*
* # define VISIBLE_NAME "uts.amdahl.com" (* Sample *)
*/
#ifndef VISIBLE_NAME
# define VISIBLE_NAME NULL /* Normal setting */
#endif
/*
* The value of VISIBLE_DOMAINS may be used to create the HOSTNAMES and
* VISIBLE_NAMES values. VISIBLE_DOMAINS can be a list of colon-separated
* values. The first value will be used in generating VISIBLE_DOMAINS,
* the first and remaining values will be used in generating HOSTNAMES.
* For a host in the UUCP zone which is in the maps distributed over
* USENET in comp.mail.maps, one of these values should be "uucp".
* For a host in a registered domain, this should contain the domain in
* which the host is registered.
*
* CAUTION: for newly registered domains "uucp" should be first in this
* list for a month or two, to allow for propogation of the
* new domain name around the various networks.
*
* NOTE: This can be set with the config file value "visible_domains"
*
* # define VISIBLE_DOMAINS "amdahl.com:uucp" (* sample *)
* # define VISIBLE_DOMAINS "Berkeley.EDU" (* sample site not in UUCP zone *)
*/
#ifndef VISIBLE_DOMAINS
# define VISIBLE_DOMAINS "uucp" /* for a host in the UUCP zone */
#endif
/*
* A colon-separated list of names for the local host. This list,
* together with VISIBLE_NAME, UUCP_HOST and MORE_HOSTNAMES should
* represent all possible names for the local host. For a host that
* is in more than one domain or that can gateway to more than one
* level of domains, this should represent those names. For a host in
* a registered domain in the UUCP zone, which is also in the maps
* distributed by USENET, <hostname>.uucp should be in this list.
*
* If HOSTNAMES is non-NULL then VISIBLE_DOMAINS is ignored. If
* HOSTNAMES is non-NULL and VISIBLE_NAME is NULL, then the first
* value in HOSTNAMES is used to create the VISIBLE_NAME.
*
* Also, the first value in HOSTNAMES is used to specify the primary
* domain name for the local host. This name should uniquely
* specify the local host and is used in tracing headers and in
* forming the Message-Id.
*
* NOTE: This can be set with the config file value "hostnames"
*
* # define HOSTNAMES "amdahl.uts.amdahl.com:amdahl.uucp" (* sample *)
*/
#ifndef HOSTNAMES
# define HOSTNAMES NULL /* normal setting */
#endif
/*
* A colon-separated list of yet more names for the local host. This
* list can be used to specify names in addition to those names computed
* from the VISIBLE_DOMAINS values crossed with the real hostname. Thus,
* if a site (especially a domain gateway) wishes to have one set of
* names computed automatically from the machines real hostname, while
* also recognizing an additional set of names, HOSTNAMES can be set to
* NULL (causing it to be computed) and MORE_HOSTNAMES can be set to the
* list of additional hostnames.
*
* NOTE: This can be set with the config file value "more_hostnames"
*
* #define MORE_HOSTNAMES "uts.amdahl.com:amdahl.com" (* sample *)
*/
#ifndef MORE_HOSTNAMES
# define MORE_HOSTNAMES NULL /* normal setting */
#endif
/*
* The hostname used in !-routes in the `From_' lines before the header.
* Set to NULL if this should be computed in a system-dependent fashion.
*
* NOTE: This can be set with the config file value "uucp_name"
*
* # define UUCP_NAME "amdahl" (* Example *)
*/
#ifndef UUCP_NAME
# define UUCP_NAME NULL /* Normal setting */
#endif
\f
/*
* STRONG SUGGESTIONS
*
* The following suggested values should probably not be changed,
* except to make them less restrictive.
*/
/*
* maximum size for a message. Messages longer than this are truncated.
* If you do not wish messages to be truncated at all, set this to zero.
*
* NOTE: This can be set with the config file value "max_message_size"
*/
#ifndef MAX_MESSAGE_SIZE
# define MAX_MESSAGE_SIZE (100*1024)
#endif
/*
* This string defines the grade values which correspond to particular
* names of the Precedence: field in the message header. The parts of
* the string are separated by `:' with alternating precedence name and
* grade character. Numbers are higher than upper case letters which are
* higher than lower case letters in their grade value. Grades in the
* range [a-m] will only have an error message and header returned to the
* sender on errors. Grades in the range [n-z] will not have anything
* returned to the sender on errors.
*
* The values recognized by many sendmail.cf files are: special-delivery,
* first-class and junk. Others are useful mainly for getting mail out
* of the local machine or for communication with other hosts running
* smail in a similar configuration.
*
* NOTE: This can be set with the config file value "grades"
*/
#ifndef GRADES
# define GRADES "special-delivery:9:air-mail:A:first-class:C:bulk:a:junk:n"
#endif
/*
* The maximum hop count allowed for remote delivery. If a remote
* transport is called and the current hop_count is equal to or greater
* than this number, delivery fails. This number does not affect local
* delivery (i.e., transports with the `local' attribute turned on).
*
* NOTE: This can be set with the config file value "max_hop_count"
*
* WARNING: this number is not standardized across all networks, so
* return messages to senders will fail if an intermediate
* site in the return path has a lower maximum hop count
* then the sight initiating the "hop_count exeeded" error
* message.
*/
#ifndef MAX_HOP_COUNT
# define MAX_HOP_COUNT 20
#endif
\f
/*
* PREFERENCES
*
* The following values can be changed at the preference of the local
* site administrator without affecting any remote sites, unless the
* administrator gets them wrong and causes mail to fail.
*
* NOTE: many suggested pathnames are in /usr/lib/smail and
* /usr/spool/smail for compatibility with current naming
* schemes used by other mailers and by netnews. An
* alternate suggestion is to group these files under one
* directory /usr/smail.
*/
/*
* This pathname is where the file COPYING from the source directory
* will be installed for reference by the -bc option to smail. If
* this does not begin with `/', it will be referenced relative to
* smail_lib_dir.
*
* NOTE: This can be set with the config file value "copying_file"
*/
#ifndef COPYING_FILE
# define COPYING_FILE "COPYING";
#endif
/*
* Set this to the name of the system-wide log file to which potentially
* interesting, non-panic, messages are written. This file should be
* truncated periodically.
*
* NOTE: This can be set with the config file value "logfile"
*
* # define LOGFILE "/usr/smail/log/logfile" (* Alternate suggestion *)
*/
#ifndef LOGFILE
# define LOGFILE "/usr/spool/smail/log/logfile" /* Suggestion */
#endif
/*
* Set this to the name of the system-wide smail panic log file.
* This file should be periodically reviewed by the system
* administrator to ensure that there are no major problems with
* the mail software, files or configuration.
*
* NOTE: This can be set with the config file value "panic_log"
*
* # define PANIC_LOG "/usr/smail/log/panic" (* alternate suggestion *)
*/
#ifndef PANIC_LOG
# define PANIC_LOG "/usr/spool/smail/log/paniclog" /* Suggestion */
#endif
/*
* Set this to the name of the console device. This is used as a last
* resort in attempting to write panic messages.
*
* NOTE: This can be set with the config file value "console"
*/
#ifndef CONSOLE
# define CONSOLE "/dev/console"
#endif
/*
* define the permission modes for the logfile and panic log file.
* If smail is not going to be run as set uid or set gid, this will
* have to be 0666.
*
* NOTE: This can be set with the config file value "log_mode"
*/
#ifndef LOG_MODE
# define LOG_MODE 0644
#endif
/*
* Set this to the spool directories for mail messages, more than one
* spool directory can be specified by separating names with the colon
* ( `:' ) character. Spooling directories are tried in sequence until
* spooling succeeds completely in one of them. Thus, alternative
* directories are useful to prevent loss of mail when filesystems fill
* up, or run out of inodes, or even when somebody accidentally changes
* permissions on one spool directory or its associated locking directory.
* In general, alternative directories should be on separate filesystems,
* perhaps even separate disks, if you are really paranoid.
*
* Of particular use is having more than one spool directory after
* an extended period of down-time to handle the suddenly increased
* influx of mail traffic.
*
* NOTE: This can be set with the config file value "spool_dirs"
*
* # define SPOOL_DIRS "/usr/smail/spool" (* alternate suggestion *)
* # define SPOOL_DIRS "/usr/smail/spool:/alt/smail/spool" (* Example *)
*/
#ifndef SPOOL_DIRS
# define SPOOL_DIRS "/usr/spool/smail" /* Suggestion */
#endif
/*
* Define the permission mode for spool files. If a file descriptor
* locking protocol is used which requires that a file be writable to
* lock it, then this mode must allow at least write by owner (or group
* if the mailer is run as set group ID). These should not allow for
* global read, as the messages stored in spool files should be considered
* private.
*
* NOTE: This can be set with the config file value "spool_mode"
*/
#ifndef SPOOL_MODE
# ifdef UNIX_SYS5
# define SPOOL_MODE 0600
# else
# define SPOOL_MODE 0400
# endif
#endif
/*
* define the permission modes for lock files. If the LOCK_BY_NAME
* locking protocol is not used, then this is not of any value.
*
* NOTE: This can be set with the config file value "lock_mode"
*/
#ifndef LOCK_MODE
# define LOCK_MODE 0444
#endif
/*
* define AUTO_MKDIR to be TRUE if spool and log directories should
* be created automatically when smail fails to access them. This
* behavior allows smail to essentially automatically install itself
* as long as the binaries are in place. AUTO_MKDIR_MODE should be
* set to the mode used for directory creation.
*/
#ifndef AUTO_MKDIR
# define AUTO_MKDIR TRUE
#endif
#ifndef AUTO_MKDIR_MODE
# define AUTO_MKDIR_MODE 0755
#endif
/*
* define the permission modes for the per-message log files.
*
* NOTE: This can be set with the config file value "message_log_mode"
*/
#ifndef MESSAGE_LOG_MODE
# define MESSAGE_LOG_MODE 0644
#endif
/*
* Name the user that is to receive mail to the Postmaster, by default.
* This address is used, if no director matches Postmaster, to ensure
* that this address will always reach somebody.
*/
#ifndef POSTMASTER_ADDRESS
# define POSTMASTER_ADDRESS "root"
#endif
/*
* This defines the default grade for spool files. These grade
* characters are used in a form similar to 4.3BSD UUCP grade
* values. Typically, this is `C'. See the definition of the GRADES
* attribute.
*
* NOTE: This can be set with the config file value "spool_grade"
*/
#ifndef SPOOL_GRADE
# define SPOOL_GRADE 'C'
#endif
/*
* On systems without an atomic rename system call, configuration files
* are not guarranteed to always exist. Thus, we must sleep and retry
* open operations several times before determining that a file really
* does not exist. OPEN_INTERVAL defines the sleep interval between
* retries (in seconds) and OPEN_RETRIES defines the number of retries
* to be made in opening a file.
*
* For files that are optional, and which don't exist this is somewhat
* expensive and introduces delays into the process, but there is nothing
* that can be done.
*
* NOTE: These can be set with the config file values "open_interval" and
* "open_retries"
*
* NOTES: for systems with an atomic rename, OPEN_RETRIES can be 0.
* On systems without higher resolution timing, a sleep of
* OPEN_INTERVAL is guarranteed to sleep at least
* OPEN_INTERVAL-1 seconds. Thus, this value should be at
* least 2.
*/
#ifndef OPEN_INTERVAL
# define OPEN_INTERVAL 2
#endif
#ifndef OPEN_RETRIES
# ifdef HAVE_RENAME
# define OPEN_RETRIES 0
# else
# define OPEN_RETRIES 2
# endif
#endif
/*
* The config file can be used to override some compiled in defaults of
* smail. If this does not begin with `/', it will be referenced
* relative to the smail_lib_dir directory.
*
* NOTE: This cannot be set with the config file, for hopefully obvious
* reasons. This can be set on invocation of smail, however.
*
* # define CONFIG_FILE "/usr/smail/lib/config" (* Alternate suggestion *)
*/
#ifndef CONFIG_FILE
# define CONFIG_FILE "config" /* Suggestion */
#endif
/*
* A secondary configuration file can be used which overrides both
* internal configuration and configuration set in the primary configuration
* file. This is useful, for example, in an environment using shared
* filesystems which may have a shared primary configuration and an
* optional secondary configuration. If this is NULL, then no secondary
* configuration file used.
*
* NOTE: This can be set with the config file value "second_config_file"
*/
#ifndef SECOND_CONFIG_FILE
# define SECOND_CONFIG_FILE NULL
#endif
/*
* The director file contains the complete configuration for the director
* subsystem. It defines which director drivers are used, parameters
* affecting driver operation and use, and the order in which directors
* are called upon. If this does not begin with `/', it will be
* referenced relative to the smail_lib_dir directory.
*
* If this file does not exist, or DIRECTOR_FILE is NULL, the compiled
* in defaults, defined in default.c, are used.
*
* NOTE: This can be set with the config file value "director_file"
*
* # define DIRECTOR_FILE "/usr/smail/lib/directors" (* alternate suggestion *)
*/
#ifndef DIRECTOR_FILE
# define DIRECTOR_FILE "directors" /* Suggestion */
#endif
/*
* The router file contains the complete configuration for the routing
* subsystem. It defines which route drivers are used, parameters
* affecting driver operation and use, and the order in which routers
* are called upon. If this does not begin with `/', it will be
* referenced relative to the smail_lib_dir directory.
*
* If this file does not exist, or ROUTER_FILE is NULL, the compiled
* in defaults, defined in default.c, are used.
*
* NOTE: This can be set with the config file value "router_file"
*
* # define ROUTER_FILE "/usr/smail/lib/routers" (* alternate suggestion *)
*/
#ifndef ROUTER_FILE
# define ROUTER_FILE "routers" /* Suggestion */
#endif
/*
* Method files indicate the transport method by which mail is delivered
* to the next_hop site. Method files can be indicated two ways in the
* ROUTER_FILE: by explicit `/' or `~user' based paths, and by non-rooted
* paths. To find non-rooted method files, METHOD_DIR is pre-pended to
* the path. Set to NULL if you do not wish to have a method directory.
* If this does not begin with `/', it will be referenced relative to
* the smail_lib_dir directory.
*
* NOTE: This can be set with the config file value "method_dir"
*
* # define METHOD_DIR "/usr/smail/lib/methods" (* alternate suggestion *)
*/
#ifndef METHOD_DIR
# define METHOD_DIR "methods" /* Suggestion */
#endif
/*
* The transport file contains the configuration for the transport
* subsystem. It defines which transport drivers are used, and parameters
* affecting driver operation and use. They are referenced from routers
* and some directors. Also, two transports are referenced implicitly be
* smail's internal algorithms: "pipe" and "file" for delivery to
* shell-command and file addresses. If this does not begin with `/',
* it will be referenced relative to the smail_lib_dir directory.
*
* If this file does not exist, or TRANSPORT_FILE is NULL, the compiled
* in defaults, defined in default.c, are used.
*
* NOTE: This can be set with the config file value "transport_file"
*
* #define TRANSPORT_FILE "/usr/smail/lib/transports" (* alternate *)
*/
#ifndef TRANSPORT_FILE
# define TRANSPORT_FILE "transports" /* Suggestion */
#endif
/*
* The qualify file contains a list of hosts and the domains that they
* live in. It is searched sequentially.
*
* NOTE: This can be set with the config file value "qualify_file"
*
* #define QUALIFY_FILE "/usr/smail/lib/qualify" (* alternate *)
*/
#ifndef QUALIFY_FILE
# define QUALIFY_FILE "qualify" /* Suggestion */
#endif
/*
* The smail library directory is the default directory for various
* configuration files. Also, files accessed through the routines in
* lookup.c may be referenced relative to this directory by default.
*
* NOTE: This can be set with the config file value "smail_lib_dir",
* though CONFIG_FILE is always referenced relative to the compiled
* in lib directory, for hopefully obvious reasons.
*
* #define SMAIL_LIB_DIR "/usr/smail/lib" (* Alternate Suggestion *)
*/
#ifndef SMAIL_LIB_DIR
# define SMAIL_LIB_DIR "/usr/lib/smail" /* Suggestion */
#endif
/*
* Require that specified configuration files exist. If this is
* defined as TRUE then non-existent configuration files are generally
* ignored. If this defined as FALSE, non-existent configuration
* files will generate a panic.
*/
#ifndef REQUIRE_CONFIGS
# define REQUIRE_CONFIGS FALSE
#endif
/*
* Allow debugging to be used in SMTP dialogs. This allows the
* remote end to see the debugging output from smail, but does not
* have any other affects. If this is TRUE, the DEBUG command in
* SMTP turns on debugging and sets its level. If this is FALSE,
* the DEBUG command only produces a cute message. This is only
* useful if NODEBUG is not defined.
*/
#ifndef SMTP_DEBUG
# define SMTP_DEBUG TRUE /* probably reasonable */
/*# define SMTP_DEBUG FALSE */
#endif /* SMTP_DEBUG */
/*
* Set this to a string which will be expanded to form the
* Received: header field.
*
* NOTE: This can be set with the config file value "received_field"
*/
#ifndef RECEIVED_FIELD
# define RECEIVED_FIELD "Received: by $primary_name ($version_string)\n\
id <$message_id@$primary_name>; $spool_date"
#endif
/*
* Set this to a string which will be expanded to form the
* Message-Id: header field.
*
* NOTE: This can be set with the config file value "message_id_field"
*/
#ifndef MESSAGE_ID_FIELD
# define MESSAGE_ID_FIELD "Message-Id: <$message_id@$primary_name>"
#endif
/*
* Set this to a string which will be expanded to form the
* Date: header field.
*
* NOTE: This can be set with the config file value "date_field"
*/
#ifndef DATE_FIELD
# define DATE_FIELD "Date: $date"
#endif
/*
* Set this to a string which will be expanded to form the
* Return-Path: header field.
*
* NOTE: This can be set with the config file value "return_path_field"
*/
#ifndef RETURN_PATH_FIELD
# define RETURN_PATH_FIELD "Return-Path: <$sender>"
#endif
/*
* SMTP startup banner message
*/
#ifndef SMTP_BANNER
# define SMTP_BANNER "$primary_name Smail$version #$compile_num ready at $date"
#endif
/*
* Set this to a string defining the mode to use for delivery of new
* incoming mail messages. It should be one of:
*
* "foreground" - deliver without forking a new process
* "background" - fork a child to do delivery and don't wait for it
* "queue" - do not perform delivery, just write the spool file
*
* NOTE: This can be set with the config file value "delivery_mode"
*/
#ifndef DELIVERY_MODE
# define DELIVERY_MODE "background"
#endif
/*
* the mailbox file locking protocol requires a retry count and interval
* for creating lock files. This is used by the file driver called by
* the "file" transport and, possibly, the "local" transport
*
* NOTE: These can be changed in config file by setting "fnlock_retries"
* and "fnlock_interval"
*/
#ifndef FNLOCK_RETRIES
# define FNLOCK_RETRIES 5 /* up to five retries */
#endif
#ifndef FNLOCK_INTERVAL
# define FNLOCK_INTERVAL 3 /* at three second intervals */
#endif
/*
* This octal permission mode is used in creating mailbox lock files
*
* NOTE: This can be set with the config file value "fnlock_mode"
*/
#ifndef FNLOCK_MODE
# define FNLOCK_MODE 0666 /* everybody can read and write */
#endif
/*
* Define a nobody user ID and group ID for defining default access
* permissions. This is often used by directors and routers and
* transports that call external programs where no other uid/gid has
* been given.
*
* if NOBODY_UID and NOBODY_GID are < 0, but NOBODY is non-NULL,
* then getpwnam(3) is called to obtain the uid and gid.
*
* NOTE: This can be set with the config file value "nobody"
*
* #define NOBODY_UID 11 (* uid "nobody" on namei *)
* #define NOBODY_GID 90 (* gid "guest" on namei *)
*/
#ifndef NOBODY_UID
# define NOBODY_UID (-1) /* compute the nobody_uid */
#endif /* NOBODY_UID */
#ifndef NOBODY_GID
# define NOBODY_GID (-1) /* compute the nobody_gid */
#endif /* NOBODY_GID */
#ifndef NOBODY
# if defined(UNIX_BSD4_3) || defined(sun)
# define NOBODY "nobody" /* 4.3BSD has a standard for this */
# else
# define NOBODY "guest" /* patch this with something reasonable */
# endif
#endif
/*
* Set SMAIL to the location of the `smail' program. This filename is
* used when smail wants to re-exec itself to completely reinitialize
* its state.
*
* NOTE: This can be set with the config file value "smail"
*
* #define SMAIL "/usr/lib/smail/smail" (* potentially useful setting *)
* #define SMAIL "/usr/smail/lib/smail" (* alternate suggestion *)
*/
#ifndef SMAIL
# define SMAIL "/usr/lib/sendmail" /* Suggestion */
#endif
/*
* We can directly deliver a mail message by forking a new smail process
* each time we receive one when the load average is <= MAX_LOAD_AVE.
* When the load average is > MAX_LOAD_AVE, all incoming messages are spooled
* for later processing. Spooling mail messages helps reduce the load on the
* system while delaying mail delivery.
*
* The load average is taken from the 5 minute load average. On systems
* that do not compute load average, a value of 0 is always assumed.
*
* Set this value to 0 if you always wish to always with directly deliver
* messages. The MAX_LOAD_AVE on systems that compute the load average
* should be set to a value where the response time becomes poor for
* interactive users.
*
* 0 is a magic value which cause the load average not to be computed at
* all.
*
* NOTE: This can be set with the config file value "max_load_ave"
*/
#ifndef MAX_LOAD_AVE
# define MAX_LOAD_AVE 0
#endif
/*
* Normal users cannot set the sender for mail. However, daemons need
* to be able to do this. The TRUSTED string defines which users are
* allowed to supply a sender explicitly. If it is NULL, then anybody
* can supply a sender string.
*
* Trusted users should include the real-user-id under which programs
* like rmail (via uux/uuxqt) or sendmail (via inetd) execute. Often
* this means root, uucp and daemon.
*
* The symbol TRUSTED is a colon-separated list of trusted users.
*
* NOTE: This can be set with the config file value "trusted"
*
* EXTREME CAUTION:
* Currently, the UUCP subsystem does not change real uids when
* executing programs. Since smail can only use the real uid
* to verify users (assuming it runs setuid), it has no way of
* verifying absolutely for certain that UUCP submitted mail
* received from a remote site as opposed to a user that simply
* initiated a UUCP transaction.
* Unless you are certain that your UUCP (and other transport
* agents) will always set the real uid to something smail will
* recognize as trusted, you should turn off the TRUSTED attribute
* by setting it to NULL.
*
* Depending upon your situation, trusted groups may be
* sufficient for your needs. See below.
*
* #define TRUSTED "root:uucp:daemon" (* The nominal setting *)
*/
#ifndef TRUSTED
# define TRUSTED NULL /* Disable use of trusted */
#endif
/*
* Smail can use the effective gid under which the mailer was invoked
* to perform trusted user verification. This is a better solution,
* in general for programs such as uucp that do not change their real
* uid (in many implementations). By ensuring that uucp is always
* invoked with a reasonable group, in this colon-separated list,
* verification can be performed. Be sure that all trusted pathways
* into the mailer have an entry in either TRUSTED or TRUSTED_GROUPS,
* or the results are worse than setting TRUSTED and TRUSTED_GROUPS to
* NULL. After all, these only affect the ability to forge sender
* lines, which is pretty easy to do anyway. (just connect to an SMTP
* socket on another machine and you can forge all the mail you want).
*
* #define TRUSTED "uucp:wheel" (* a potentially nominal setting *)
*/
#ifndef TRUSTED_GROUPS
# define TRUSTED_GROUPS NULL
#endif
/*
* if your machine handles large data areas efficiently, then making
* MESSAGE_BUF_SIZE the maximum size of a message will minimize i/o
* overhead for reading and writing the message. Systems with a
* small amount of memory or poor VM systems cannot afford large buffers.
* Larger memory systems can set the buffer size to less than
* MAX_MESSAGE_SIZE at the expense of more i/o on large mail messages.
*
* NOTE: This can be set with the config file value "message_buf_size"
*/
#ifndef MESSAGE_BUF_SIZE
# ifdef SMALL_MEMORY
# define MESSAGE_BUF_SIZE BUFSIZ
# else
# define MESSAGE_BUF_SIZE MAX_MESSAGE_SIZE
# endif
#endif
/*
* Number of entries in address hit table. The larger the number the
* greater the space but the greater the efficiency.
*
* NOTE: This can be set with the config file value "hit_table_len"
*/
#define HIT_TABLE_LEN 241 /* suitable for large mailing lists */
\f
/*
* DEFAULT DIRECTOR CONFIGURATION
*
* This section adjusts the default director configuration compiled into
* smail. See default.c for the complete default configuration source.
*
* NOTE: The existence of a direcor configuration file replaces all of
* this configuration.
*/
/*
* configuration for the default aliases director
*
* If you wish to have an aliases director by default, define
* ALIASES_FILE to be the name of a sorted file, and ALIASES_PROTO
* to be the database access protocol to use in searching this file
* See the file lookup.c for a complete list of these protocols. If
* this does not begin with `/', it will be referenced relative to the
* smail_lib_dir directory.
*
* A partial list is:
*
* lsearch - perform linear searches on raw alias files. This is slow
* unless the aliases file is small.
* bsearch - perform binary searches on sorted alias files with one
* alias rule per line.
* dbm - use the Berkeley dbm(3X) or ndbm(3X) libraries to search
* for aliases.
* yp - use Sun's YP service to search for aliases. This requires
* the existence of the YP library routines.
* aliasyp - use Sun's YP service in a manner compatible with standard
* Sun mail.aliases YP databases. These do not exactly match
* the semantics of other YP databases in that they count an
* the ending nul byte in the length of keys. There is a
* tool distributed with smail (mkline) that can be used to
* create regular YP databases, for use with the `yp' proto.
*
* #define ALIASES_FILE "/usr/lib/smail/aliases" (* Suggestion *)
* #define ALIASES_FILE "/usr/smail/lib/aliases" (* alternate *)
*/
#if !defined(ALIASES_FILE) && !defined(NO_ALIASES_FILE)
# ifdef HAVE_YP
# define ALIASES_FILE "mail.aliases" /* Standard YP aliases map */
# else
# define ALIASES_FILE "/usr/lib/aliases" /* sendmail compatible name */
# endif
#endif
#ifndef ALIASES_PROTO
# ifdef HAVE_YP
# define ALIASES_PROTO "aliasyp" /* use Sun's YP aliases service */
# else
# define ALIASES_PROTO "lsearch" /* This should work on any UN*X os */
# endif
#endif
/*
* In some environments where smail is being integrated into new systems
* it may be convenient to make the aliases file optional, so that if
* the file does not exist, it is assumed to be empty. To enable this
* behavior define the name below.
*/
#if !defined(ALIASES_OPTIONAL) && !defined(NO_ALIASES_OPTIONAL)
# ifndef HAVE_YP
# define ALIASES_OPTIONAL /* */
# endif
#endif
/*
* In some cases, failure to open an aliases database can be considered
* a temporary failure which can be recovered from by retrying the open
* at a later time. One example would be use of YP where the server
* host may be down. To enable this behavior, define the name below.
*/
#if !defined(ALIASES_TRYAGAIN) && !defined(NO_ALIASES_TRYAGAIN)
# ifdef HAVE_YP
# define ALIASES_TRYAGAIN /* */
# endif
#endif
/*
* configuration for the default dotforward director
*
* If you do not wish to support ~/.forward files, for some strange
* reason, define DISABLE_DOTFORWARD. forward files in smail are handled
* in a reasonable manner which should prevent use of .forward files for
* trojan horse attacks. For example, if correctly configured home
* directories accessible by remote hosts can't be used to write files or
* exec programs.
*/
#if !defined(DISABLE_DOTFORWARD) && !defined(NO_DISABLE_DOTFORWARD)
/*#define DISABLE_DOTFORWARD /* */
#endif
/*
* The following list should define all home directories known to be
* accessible from remote hosts, so that care can be taken for
* .forward files found in these places.
*/
#ifndef REMOTE_HOMES
# define REMOTE_HOMES "~nuucp:~uucp:~ftp:/tmp:/usr/tmp"
#endif
/*
* configuration for the default forwardto director
*
* If you wish to support users putting "Forward to " lines at the
* beginning of their mailbox files to indicate forwarding, then
* define how to find these mailbox files. System V mailers currently
* do not have any other means of specifying forwarding information
* for users. This maintains compatibility with this system.
*/
#if !defined(FORWARDTO_FILE) && !defined(NO_FORWARDTO_FILE)
# ifdef UNIX_SYS5
# define FORWARDTO_FILE "/usr/mail/${lc:user}"
# else
# define FORWARDTO_FILE "/usr/spool/mail/${lc:user}"
# endif
#endif
/*
* configuration for the default mailing list director
*
* A variation on the forwardfile driver can be used to define a
* directory which contains mailing list files. By simply creating
* a file in a directory a mailing list will have been defined.
* aliases, forward files and local usernames have precedence over
* these mailing list files, so it is safe to allow general users
* access to this directory (e.g., users cannot use this directory
* to steal mail from other users on the local host).
*
* In the spirit of allowing general users access to this file, the
* caution and nobody attributes are turned on. This prevents worries
* about users being able to put shell command and file addresses in
* these files and accessing things that they shouldn't. However, it
* still allows users the convenience of specifying files and shell
* commands as destinations.
*
* Under a 4.3BSD system or a Sun running SunOS3.0 or higher, it is
* reasonable to set the sticky bit on this directory. In this case a
* user will be able to create a file here with assurance that other
* users will not be able to remove rename it. However, any system
* that is comfortable with normal UN*X /tmp and /usr/tmp semantics,
* should also be comfortable with a globally writable mailing list
* directory. If this does not begin with `/', it will be referenced
* relative to the smail_lib_dir directory.
*
* #define LIST_FILENAME "/usr/smail/lists/${lc:user}" (* alternative *)
*/
#if !defined(LIST_FILENAME) && !defined(NO_LIST_FILENAME)
# define LIST_FILENAME "lists/${lc:user}" /* suggested pathname */
#endif
/*
* configuration for the default smartuser director
*
* Smail can be configured to send mail destined to an unknown user to
* a remote site that supposedly understands more usernames than does
* the local host. By defining an address to which mail to unknown
* users should be sent, this can be accomplished. This address should
* contain a $user where the local address is inserted into the address.
*
* If SMART_USER is set to NULL, then a smartuser director is configured
* which will read the variable smart_user which can be set in the
* config file. The default value of the smart_user variable can be
* specified as CONFIG_SMART_USER. This enables a smart_user director
* to be compiled in while the address for the smart_user director is
* still modifiable through configuration.
*
* #define SMART_USER "$user@amdahl.uts.amdahl.com" (* sample setting *)
*/
#if !defined(SMART_USER) && !defined(NO_SMART_USER)
# define SMART_USER NULL /* normal setting */
#endif
#ifndef CONFIG_SMART_USER
# define CONFIG_SMART_USER NULL
#endif
\f
/*
* DEFAULT ROUTER CONFIGURATION
*
* This section adjusts the default router configuration compiled into
* smail. See default.c for the complete default configuration source.
*
* NOTE: The existence of a router configuration file replaces all of
* this configuration.
*/
/*
* There is currently no support for method files from the compiled in
* smail configuration. However, a hardcoded method table can be used
* by defining USE_METHOD_TABLE. If defined, all of the routers will
* use this table in addition to their default associated transport.
* In the future, smail may support method files from compiled in
* configuration.
*/
#if !defined(USE_METHOD_TABLE) && !defined(NO_USE_METHOD_TABLE)
/*# define USE_METHOD_TABLE /* */
#endif
/*
* Default gethostbyaddr router setup
*
* If defined, a gethostbyaddr router will be configured which recognizes
* hostnames such as [192.2.12.142] and delivers via SMTP to that IP
* address. This requires that the gethostbyaddr driver be configured
* in by the conf/driver.cf configuration file. This in turn requires
* the a BSD-compatible networking library.
*/
#ifdef HAVE_BSD_NETWORKING
# if !defined(USE_GETHOSTBYADDR) && !defined(NO_USE_GETHOSTBYADDR)
# define USE_GETHOSTBYADDR /* */
# endif
#endif
/*
* GETHOSTBYADDR_TRANSPORT defines the default transport used for hosts
* matched with the pathalias router.
*
* #define GETHOSTBYADDR_TRANSPORT "demand" (* alternate suggestion *)
*/
#ifndef GETHOSTBYADDR_TRANSPORT
# define GETHOSTBYADDR_TRANSPORT "smtp"
#endif
/*
* Default gethostbyname router setup
*
* If defined, a gethostbyname router will be configured which calls
* gethostbyname(3N) to match hosts accessible over TCP/IP. This requires
* that the gethostbyaddr driver be configured in by the conf/driver.cf
* configuration file. This in turn requires the a BSD-compatible
* networking library.
*/
#ifdef HAVE_BSD_NETWORKING
# if !defined(USE_GETHOSTBYNAME) && !defined(NO_USEGETHOSTBYNAME)
# define USE_GETHOSTBYNAME /* */
# endif
#endif
/*
* GETHOSTBYNAME_TRANSPORT defines the default transport used for hosts
* matched with the pathalias router.
*
* #define GETHOSTBYNAME_TRANSPORT "demand" (* alternate suggestion *)
*/
#ifndef GETHOSTBYNAME_TRANSPORT
# define GETHOSTBYNAME_TRANSPORT "smtp"
#endif
/*
* Default pathalias router setup
*
* If you wish to have a pathalias router by default, define PATHS_FILE
* to be the name of a sorted paths file, and PATHS_PROTO to be the
* database access protocol used for lookups. See the file lookup.c
* for a complete list of these protocols. If this does not begin
* with `/', it will be referenced relative to the smail_lib_dir
* directory. A current list is:
*
* lsearch - perform linear searches on raw path files. This is slow
* unless the path file is small.
* bsearch - perform binary searches on sorted path files with one
* path per line.
* dbm - use the Berkeley dbm(3X) or ndbm(3X) libraries to search
* for paths.
* yp - use Sun's YP service to search for paths. This requires
* the existence of the YP library routines.
*
* #define PATHS_FILE "/usr/smail/lib/paths" (* alternate suggestion *)
*/
#if !defined(PATHS_FILE) && !defined(NO_PATHS_FILE)
# define PATHS_FILE "paths" /* Suggestion */
#endif
#ifndef PATHS_PROTO
# define PATHS_PROTO "bsearch" /* Compatible with smail1.0 and 2.0 */
#endif
/*
* In some environments where smail is being integrated into new systems
* it may be convenient to make the paths file optional, so that if
* the file does not exist, it is assumed to be empty. To enable this
* behavior define the name below.
*/
#if !defined(PATHS_OPTIONAL) && !defined(NO_PATHS_OPTIONAL)
# define PATHS_OPTIONAL /* */
#endif
/*
* In some cases, failure to open an paths database can be considered
* a temporary failure which can be recovered from by retrying the open
* at a later time. One example would be use of YP where the server
* host may be down. To enable this behavior, define the name below.
*/
#if !defined(PATHS_TRYAGAIN) && !defined(NO_PATHS_TRYAGAIN)
/*# define PATHS_TRYAGAIN /* */
#endif
/*
* PATHS_TRANSPORT defines the default transport used for hosts matched
* with the pathalias router.
*
* #define PATHS_TRANSPORT "demand" (* alternate suggestion *)
*/
#ifndef PATHS_TRANSPORT
# define PATHS_TRANSPORT "uux" /* queue remote rmail requests */
#endif
/*
* Default uuname router setup
*
* If you wish to obtain a list of neighbor sites from the UUCP programs,
* define the command to extract the list of UUCP neighbor sites.
*/
#if !defined(UUNAME_COMMAND) && !defined(NO_UUNAME_COMMAND)
# define UUNAME_COMMAND "/usr/bin/uuname" /* should work almost everywhere */
#endif
/*
* UUNAME_TRANSPORT defines the default transport used for hosts matched
* with the uuname router.
*
* #define UUNAME_TRANSPORT "demand" (* alternate suggestion *)
*/
#ifndef UUNAME_TRANSPORT
# define UUNAME_TRANSPORT "uux" /* queue remote rmail requests */
#endif
/*
* Default setup for the smarthost router
*
* If you wish to send unknown addresses to a remote host for routing,
* define the path used to send mail to that host. Ask the remote
* site in question before setting this up.
*
* There is a hook in the config file that allows the path and perhaps
* the transport used to be set in the configuration file. This hook
* can be enabled by setting SMART_PATH to NULL and CONFIG_SMART_PATH
* to the initial value for the smart_path variable. As well,
* CONFIG_SMART_TRANSPORT can be set to the default value for the
* smart_transport variable, though SMART_TRANSPORT can be used instead
* in any case.
*
* Using CONFIG_SMART_PATH is the prefered method of setting up the
* smarthost router as it does not rely on hard-coded information in
* default.c.
*
* if SMART_PATH is undefined, no smarthost router will be configured.
*
* #define SMART_PATH "namei!amdahl" (* example path *)
*/
#if !defined(SMART_PATH) && !defined(NO_SMART_PATH)
# define SMART_PATH NULL /* */
#endif
#if !defined(CONFIG_SMART_PATH)
# define CONFIG_SMART_PATH NULL /* */
#endif
#if !defined(CONFIG_SMART_TRANSPORT)
# define CONFIG_SMART_TRANSPORT NULL /* */
#endif
/*
* SMART_TRANSPORT defines the default transport used for hosts matched
* with the uuname router.
*
* #define SMART_TRANSPORT "demand" (* alternate suggestion *)
*/
#if !defined(SMART_TRANSPORT)
# define SMART_TRANSPORT "uux" /* Suggestion */
#endif
\f
/*
* DEFAULT TRANSPORT CONFIGURATION
*
* This section adjusts the default transport configuration compiled into
* smail. See default.c for the complete default configuration source.
*
* NOTE: The existence of a transport configuration file replaces all of
* this configuration.
*/
/*
* Default setup for the local transport
*
* Smail can perform local delivery either by appending to mailboxes
* by itself (only useful if it is setuid or setgid to something that
* can do this, or if all mail is queued and smail performs all delivery
* as a daemon). Alternately, it can send messages to another program,
* such as /bin/mail and have that program perform delivery.
*
* The method used depends upon what is set. If LOCAL_MAIL_COMMAND
* is set, it should be a command to be executed which will deliver
* a message given on its standard input. Otherwise LOCAL_MAIL_FILE
* should be set to define which file should be appended to for
* local mail delivery. See the installation and operators guide
* for information on what the command and filename strings look
* like.
*
* #define LOCAL_MAIL_COMMAND "/path/prog $($user$)" (* custom program *)
* #define LOCAL_MAIL_FILE "~/mbox" (* Example: file in home directories *)
*/
#if !defined(LOCAL_MAIL_COMMAND) && !defined(LOCAL_MAIL_FILE)
/* comment out following line if smail should append directly to mailboxes */
/*# define LOCAL_MAIL_COMMAND "/bin/mail -d $(${lc:user}$)" /* call program */
# ifndef LOCAL_MAIL_COMMAND
# ifdef UNIX_SYS5
# define LOCAL_MAIL_FILE "/usr/mail/${lc:user}" /* append to file */
# else
# define LOCAL_MAIL_FILE "/usr/spool/mail/${lc:user}" /* append to file */
# endif
# endif
#endif
/*
* if a program is used for local delivery, set LOCAL_MAIL_ADDRS to
* the maximum number of addrs that the program can take. Generally,
* a program can either take one or can take many.
*/
#ifndef LOCAL_MAIL_ADDRS
# define LOCAL_MAIL_ADDRS 100 /* pick any large number */
#endif
/*
* if smail is doing delivery to mailbox files directly, these files will
* be created with this mode.
*/
#ifdef UNIX_BSD
# define LOCAL_MAIL_MODE 0600 /* only user can read/write mail */
#else
# define LOCAL_MAIL_MODE 0660 /* mailboxes in restricted group */
#endif
/*
* Setup for the queued uux transport
*
* The following command should call uux and queue a mail message
* for transmission to a remote host. Check your man page to see
* if uux supports the -amailpath option, and also check to see
* if you have the -ggrade option. Smail can support both of these
* quite nicely.
*
* #define QUEUED_UUX_COMMAND \
* "/usr/bin/uux - -r -a$sender -g$grade $host!rmail $(($user)$)"
*/
#ifndef QUEUED_UUX_COMMAND
# define QUEUED_UUX_COMMAND \
"/usr/bin/uux - -r $host!rmail $(($user)$)"
#endif
/*
* Setup for the demand uux transport
*
* The following command should call uux and queue a mail message
* for transmission to a remote host and immediately attempt delivery.
* Check your man page to see if uux supports the -amailpath option, and
* also check to see if you have the -ggrade option. Smail can support
* both of these quite nicely.
*
* #define DEMAND_UUX_COMMAND \
* "/usr/bin/uux - -a$sender -g$grade $host!rmail $(($user)$)"
*/
#ifndef DEMAND_UUX_COMMAND
# define DEMAND_UUX_COMMAND "/usr/bin/uux - $host!rmail $(($user)$)"
#endif
/*
* Setup for the queued uusmtp transport
*
* The following command should call uux and queue a mail message
* for transmission to a remote host. It should invoke a program
* on the remote host that reads batched SMTP requests from its
* standard input.
*
* #define QUEUED_UUSMTP_COMMAND \
* "/usr/bin/uux - -r -a$sender -g$grade $host!rsmtp"
*/
#ifndef QUEUED_UUSMTP_COMMAND
# define QUEUED_UUSMTP_COMMAND "/usr/bin/uux - -r $host!rsmtp"
#endif
/*
* Setup for the demand uusmtp transport
*
* The following command should call uux and queue a mail message
* for immediate transmission to a remote host. It should invoke
* a program on the remote host that reads batched SMTP requests
* from its standard input.
*
* #define QUEUED_UUSMTP_COMMAND \
* "/usr/bin/uux - -r -a$sender -g$grade $host!rsmtp"
*/
#ifndef DEMAND_UUSMTP_COMMAND
# define DEMAND_UUSMTP_COMMAND "/usr/bin/uux - $host!rsmtp"
#endif
/*
* Setup for the smtp transport
*
* If you wish to use configure the SMTP over TCP/IP transport
* then define this. If defined, the smtp driver must be configured
* into smail in conf/driver.cf. This in turn requires that
* BSD networking facilities exist.
*/
#ifdef HAVE_BSD_NETWORKING
# if !defined(USE_SMTP_TRANSPORT) && !defined(NO_USE_SMTP_TRANSPORT)
# define USE_SMTP_TRANSPORT
# endif
#endif
/*
* Define CALL_BIFF_TPORT to emulate the functionality of the
* comsat/biff facility in 4.2/4.3BSD. This is a good example
* of a shadow transport, which is associated with the local
* transport. The only logic in smail which knows about biff
* is the "biff" transport driver.
*
* The driver currently does not exist, so don't define this just yet.
*/
#if !defined(CALL_BIFF_TPORT) && !defined(NO_CALL_BIFF_TPORT)
/*# define CALL_BIFF_TPORT /* emulate 4.2/4.3BSD biff service */
#endif