/*
* 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
*/
/*
# 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
# include <time.h>
# include <errno.h>
-# include "conf.h"
# include "conf.h"
# include "useful.h"
\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
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_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;
# 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
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 */
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 */
# 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 */
# 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 void message();
extern void nmessage();
#endif
-
-/*
-** HACK to fix bug in C compiler on CCI
-*/
-
-#undef isascii
-#define isascii(x) (((x) & ~0177) == 0)