BSD 4_4 release
[unix-history] / usr / src / usr.sbin / sendmail / src / sendmail.h
index ee8f4d4..c6a8554 100644 (file)
@@ -1,11 +1,37 @@
 /*
  * Copyright (c) 1983 Eric P. Allman
 /*
  * Copyright (c) 1983 Eric P. Allman
- * Copyright (c) 1988 Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1988, 1993
+ *     The Regents of the University of California.  All rights reserved.
  *
  *
- * %sccs.include.redist.c%
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
  *
  *
- *     @(#)sendmail.h  6.73 (Berkeley) %G%
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)sendmail.h  8.1 (Berkeley) 6/7/93
  */
 
 /*
  */
 
 /*
@@ -15,7 +41,7 @@
 # ifdef _DEFINE
 # define EXTERN
 # ifndef lint
 # ifdef _DEFINE
 # define EXTERN
 # ifndef lint
-static char SmailSccsId[] =    "@(#)sendmail.h 6.73            %G%";
+static char SmailSccsId[] =    "@(#)sendmail.h 8.1             6/7/93";
 # endif
 # else /*  _DEFINE */
 # define EXTERN extern
 # endif
 # else /*  _DEFINE */
 # define EXTERN extern
@@ -32,7 +58,6 @@ static char SmailSccsId[] =   "@(#)sendmail.h 6.73            %G%";
 # include <time.h>
 # include <errno.h>
 
 # include <time.h>
 # include <errno.h>
 
-# include "conf.h"
 # include "conf.h"
 # include "useful.h"
 
 # include "conf.h"
 # include "useful.h"
 
@@ -89,17 +114,6 @@ typedef int BITMAP[BITMAPBYTES / sizeof (int)];
 \f/*
 **  Address structure.
 **     Addresses are stored internally in this structure.
 \f/*
 **  Address structure.
 **     Addresses are stored internally in this structure.
-**
-**     Each address is on two chains and in one tree.
-**             The q_next chain is used to link together addresses
-**               for one mailer (and is rooted in a mailer).
-**             The q_chain chain is used to maintain a list of
-**               addresses originating from one call to sendto, and
-**               is used primarily for printing messages.
-**             The q_alias, q_sibling, and q_child tree maintains
-**               a complete tree of the aliases.  q_alias points to
-**               the parent -- obviously, there can be several, and
-**               so this points to "one" of them.  Ditto for q_sibling.
 */
 
 struct address
 */
 
 struct address
@@ -114,12 +128,11 @@ struct address
        gid_t           q_gid;          /* group-id of receiver (if known) */
        char            *q_home;        /* home dir (local mailer only) */
        char            *q_fullname;    /* full name if known */
        gid_t           q_gid;          /* group-id of receiver (if known) */
        char            *q_home;        /* home dir (local mailer only) */
        char            *q_fullname;    /* full name if known */
-       char            *q_fullname;    /* full name of this person */
-       time_t          q_timeout;      /* timeout for this address */
        struct address  *q_next;        /* chain */
        struct address  *q_next;        /* chain */
-       struct address  *q_alias;       /* parent in alias tree */
-       struct address  *q_sibling;     /* sibling in alias tree */
-       struct address  *q_child;       /* child in alias tree */
+       struct address  *q_alias;       /* address this results from */
+       char            *q_owner;       /* owner of q_alias */
+       struct address  *q_tchain;      /* temporary use chain */
+       time_t          q_timeout;      /* timeout for this address */
 };
 
 typedef struct address ADDRESS;
 };
 
 typedef struct address ADDRESS;
@@ -133,7 +146,6 @@ typedef struct address ADDRESS;
 # define QNOTREMOTE    000100  /* not an address for remote forwarding */
 # define QSELFREF      000200  /* this address references itself */
 # define QVERIFIED     000400  /* verified, but not expanded */
 # define QNOTREMOTE    000100  /* not an address for remote forwarding */
 # define QSELFREF      000200  /* this address references itself */
 # define QVERIFIED     000400  /* verified, but not expanded */
-# define QPSEUDO       000040  /* only on the list for verification */
 \f/*
 **  Mailer definition structure.
 **     Every mailer known to the system is declared in this
 \f/*
 **  Mailer definition structure.
 **     Every mailer known to the system is declared in this
@@ -268,7 +280,6 @@ ENVELOPE
        ADDRESS         e_from;         /* the person it is from */
        char            *e_sender;      /* e_from.q_paddr w comments stripped */
        char            **e_fromdomain; /* the domain part of the sender */
        ADDRESS         e_from;         /* the person it is from */
        char            *e_sender;      /* e_from.q_paddr w comments stripped */
        char            **e_fromdomain; /* the domain part of the sender */
-       ADDRESS         *e_returnto;    /* place to return the message to */
        ADDRESS         *e_sendqueue;   /* list of message recipients */
        ADDRESS         *e_errorqueue;  /* the queue for error responses */
        long            e_msgsize;      /* size of the message in bytes */
        ADDRESS         *e_sendqueue;   /* list of message recipients */
        ADDRESS         *e_errorqueue;  /* the queue for error responses */
        long            e_msgsize;      /* size of the message in bytes */
@@ -291,7 +302,6 @@ ENVELOPE
        char            *e_id;          /* code for this entry in queue */
        FILE            *e_xfp;         /* transcript file */
        FILE            *e_lockfp;      /* the lock file for this message */
        char            *e_id;          /* code for this entry in queue */
        FILE            *e_xfp;         /* transcript file */
        FILE            *e_lockfp;      /* the lock file for this message */
-       FILE            *e_qfp;         /* queue control file */
        char            *e_message;     /* error message */
        char            *e_statmsg;     /* stat msg (changes per delivery) */
        char            *e_msgboundary; /* MIME-style message part boundary */
        char            *e_message;     /* error message */
        char            *e_statmsg;     /* stat msg (changes per delivery) */
        char            *e_msgboundary; /* MIME-style message part boundary */
@@ -373,8 +383,6 @@ EXTERN struct rewrite       *RewriteRules[MAXRWSETS];
 # define MATCHCLASS    0223    /* match one token in a class */
 # define MATCHNCLASS   0224    /* match anything not in class */
 # define MATCHREPL     0225    /* replacement on RHS for above */
 # define MATCHCLASS    0223    /* match one token in a class */
 # define MATCHNCLASS   0224    /* match anything not in class */
 # define MATCHREPL     0225    /* replacement on RHS for above */
-# define MATCHLOOKUP   '\035'  /* look up and replace a sequence */
-# define MATCHELOOKUP  '\036'  /* end of the sequence */
 
 /* right hand side items */
 # define CANONNET      0226    /* canonical net, next token */
 
 /* right hand side items */
 # define CANONNET      0226    /* canonical net, next token */
@@ -580,6 +588,10 @@ typedef struct symtab      STAB;
 # define s_mailer      s_value.sv_mailer
 # define s_alias       s_value.sv_alias
 # define s_mci         s_value.sv_mci
 # define s_mailer      s_value.sv_mailer
 # define s_alias       s_value.sv_alias
 # define s_mci         s_value.sv_mci
+# define s_mapclass    s_value.sv_mapclass
+# define s_hostsig     s_value.sv_hostsig
+# define s_map         s_value.sv_map
+# define s_namecanon   s_value.sv_namecanon
 
 extern STAB            *stab __P((char *, int, int));
 extern void            stabapply __P((void (*)(STAB *, int), int));
 
 extern STAB            *stab __P((char *, int, int));
 extern void            stabapply __P((void (*)(STAB *, int), int));
@@ -910,10 +922,3 @@ extern void                usrerr();
 extern void            message();
 extern void            nmessage();
 #endif
 extern void            message();
 extern void            nmessage();
 #endif
-
-/*
-**  HACK to fix bug in C compiler on CCI
-*/
-
-#undef isascii
-#define isascii(x)     (((x) & ~0177) == 0)