home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume20 / deliver2.0 / part02 / config.h next >
C/C++ Source or Header  |  1989-10-15  |  7KB  |  238 lines

  1. /* $Header: config.h,v 2.2 89/06/09 13:07:38 network Exp $
  2.  *
  3.  * Deliver configuration.
  4.  *
  5.  * $Log:    config.h,v $
  6.  * Revision 2.2  89/06/09  13:07:38  network
  7.  * Adapt to BSD quirks.
  8.  * 
  9.  * Revision 2.1  89/06/09  12:25:11  network
  10.  * Update RCS revisions.
  11.  * 
  12.  * Revision 1.11  89/06/09  12:23:38  network
  13.  * Baseline for 2.0 release.
  14.  * 
  15.  */
  16.  
  17. /*----------------------------------------------------------------------
  18.  * SCO Xenix System V compilers define M_SYSV, which implies USG.
  19.  */
  20.  
  21. #ifdef M_SYSV
  22. #ifndef USG
  23. #define USG
  24. #endif
  25. #endif
  26.  
  27. /*----------------------------------------------------------------------
  28.  * Trusted users.
  29.  * Deliver permits "trusted" users to specify delivery filenames
  30.  * without renouncing setuid privileges.  Essentially, these users
  31.  * are given the root password.  Beware!
  32.  */
  33.  
  34. #define TRUSTED_USERS   "root", "uucp"
  35.  
  36. /*----------------------------------------------------------------------
  37.  * Signal function type.
  38.  * Signal catching routines have this return value.
  39.  * (For System V Release 3.0 or later, use "void".)
  40.  */
  41.  
  42. #ifdef USG
  43. # define SIGTYPE void
  44. #else
  45. # define SIGTYPE int
  46. #endif
  47.  
  48. /*----------------------------------------------------------------------
  49.  * Signal function declaration.
  50.  * Define this if your <signal.h> doesn't declare signal() correctly.
  51.  */
  52.  
  53. /* #define DECLARE_SIGNAL */
  54.  
  55. /*----------------------------------------------------------------------
  56.  * Signal flag type.
  57.  * Variables of this type may be set by signal catching routines.
  58.  */
  59.  
  60. #ifdef __STDC__
  61. #define SIGFLAG sig_atomic_t
  62. #else
  63. #define SIGFLAG short   /* or "volatile short" for aggressive optimizers */
  64. #endif
  65.  
  66. /*----------------------------------------------------------------------
  67.  * Various kinds of mailbox locking.
  68.  * You may define one or both of ML_DOTLOCK and ML_DOTMLK.
  69.  * You may define no more than one of ML_FCNTL, ML_LOCKF and ML_LOCKING.
  70.  *
  71.  * File creation locking:
  72.  *     ML_DOTLOCK   create <mailbox>.lock       (most systems except BSD4.3)
  73.  *     ML_DOTMLK    create /tmp/<basename>.mlk  (Xenix)
  74.  *
  75.  * Kernel record locking:
  76.  *     ML_FCNTL     lock with fcntl(F_SETLKW)   (SVID systems only)
  77.  *     ML_LOCKF     lock with lockf(F_LOCK)     (SVID systems only)
  78.  *     ML_LOCKING   lock with locking(LK_LOCK)  (Xenix systems only)
  79.  */
  80.  
  81. #ifdef M_XENIX
  82. #define ML_DOTMLK
  83. #define ML_LOCKING
  84. #else
  85. #define ML_DOTLOCK
  86. #endif
  87.  
  88. /*----------------------------------------------------------------------
  89.  * Maximum filename length.
  90.  * Note that this is for _filenames_, not _pathnames_.
  91.  * For AT&T file systems, the usual value is 14.
  92.  * For Berzerkley file systems, use something big like 255.
  93.  */
  94.  
  95. #ifdef BSD
  96. #define MAX_NAMESIZE    255
  97. #else
  98. #define MAX_NAMESIZE    14
  99. #endif
  100.  
  101. /*----------------------------------------------------------------------
  102.  * How to get the host name.
  103.  * Define one.
  104.  *
  105.  * HOSTFILE             file containing name    (Xenix)
  106.  * UNAME                uname()                 (System V)
  107.  * GETHOSTNAME          gethostname()           (BSD)
  108.  * HOSTNAME             host name string        (V7)
  109.  */
  110.  
  111. #ifdef M_XENIX
  112. #define HOSTFILE   "/etc/systemid"
  113. #else
  114. #ifdef USG
  115. #define UNAME
  116. #else
  117. #ifdef BSD
  118. #define GETHOSTNAME
  119. #else
  120. #define HOSTNAME   "cleese"
  121. #endif
  122. #endif
  123. #endif
  124.  
  125. /*----------------------------------------------------------------------
  126.  * Is <varargs.h> or <stdarg.h> available?
  127.  */
  128.  
  129. #ifdef __STDC__
  130. #define HAS_STDARG
  131. #else
  132. #ifdef USG
  133. #define HAS_VARARGS
  134. #else
  135. #ifdef BSD
  136. #define HAS_VARARGS
  137. #endif
  138. #endif
  139. #endif
  140.  
  141. /*----------------------------------------------------------------------
  142.  * Are vprintf() and friends available?
  143.  */
  144.  
  145. #ifdef USG
  146. #define HAS_VPRINTF
  147. #endif
  148.  
  149. /*----------------------------------------------------------------------
  150.  * Is putenv() available?
  151.  */
  152.  
  153. #ifdef USG
  154. #define HAS_PUTENV
  155. #endif
  156.  
  157. /*----------------------------------------------------------------------
  158.  * Is getopt() available?
  159.  */
  160.  
  161. #ifdef USG
  162. #define HAS_GETOPT
  163. #endif
  164.  
  165. /*----------------------------------------------------------------------
  166.  * Is setvbuf() backwards?
  167.  * Note: this is true for SCO Xenix Development System 2.2.
  168.  */
  169.  
  170. /* #define REVERSE_SETVBUF */
  171.  
  172. /*----------------------------------------------------------------------
  173.  * Name of shell used to execute delivery files.
  174.  */
  175.  
  176. #define SHELL   "/bin/sh"
  177.  
  178. /*----------------------------------------------------------------------
  179.  * Characters that may not appear in addresses.
  180.  * (This string should include all metacharacters for your chosen shell.)
  181.  */
  182.  
  183. #define SANITIZE   "$*?=\\`'\"|^&;{}()<> \t\n"
  184.  
  185. /*----------------------------------------------------------------------
  186.  * Standard mailbox location.
  187.  *
  188.  * Define either MBX_NAME or MBOX_DIR.
  189.  * If MBX_NAME is defined, then the default mailbox is a file with
  190.  * that name in the user's home directory.
  191.  * If MBX_DIR is defined, then the default mailbox is a file in that
  192.  * directory with the same name as the user.
  193.  *
  194.  * Define MBX_GROUP if all mailboxes must be owned by a specific group.
  195.  * (System V requires this feature.)  If MBX_GROUP is not defined,
  196.  * mailboxes will have their groups set to the recipients' default group.
  197.  *
  198.  * Define MBX_MODE to the file access modes for new mailboxes.
  199.  * (System V requires group write permissions, i.e. 0020.)
  200.  */
  201.  
  202. #if defined(USG) && !defined(M_XENIX)
  203. /* #define MBX_NAME   "mbox" */
  204. #define MBX_DIR     "/usr/mail"
  205. #define MBX_MODE    0660
  206. #define MBX_GROUP   "mail"
  207. #else
  208. /* #define MBX_NAME   "mbox" */
  209. #define MBX_DIR     "/usr/spool/mail"
  210. #define MBX_MODE    0600
  211. #endif
  212.  
  213. /*----------------------------------------------------------------------
  214.  * Names of delivery files.
  215.  *
  216.  * SYS_DELIVER          system-wide delivery file
  217.  * POST_DELIVER         post-user delivery file
  218.  * USER_DELIVER         user delivery file (in user's home directory)
  219.  */
  220.  
  221. #define SYS_DELIVER     "/usr/local/lib/deliver.sys"
  222. #define POST_DELIVER    "/usr/local/lib/deliver.post"
  223. #define USER_DELIVER    ".deliver"
  224.  
  225. /*----------------------------------------------------------------------
  226.  * Environment variables passed to child processes.
  227.  */
  228.  
  229. #define ENV_DFLAGS      "DELFLAGS"      /* Flags: [-[Avdt]]             */
  230. #define ENV_SYSDEL      "SYSDELFILE"    /* System delivery file         */
  231. #define ENV_POSTDEL     "POSTDELFILE"   /* Post-user delivery file      */
  232. #define ENV_USERDEL     "USERDELFILE"   /* User delivery file           */
  233.  
  234. #define ENV_HOSTNAME    "HOSTNAME"      /* Name of this host            */
  235. #define ENV_SENDER      "SENDER"        /* Message sender               */
  236. #define ENV_HEADER      "HEADER"        /* Message header file          */
  237. #define ENV_BODY        "BODY"          /* Message body file            */
  238.