SCCS-vsn: usr.sbin/sendmail/src/arpadate.c 3.7
SCCS-vsn: usr.sbin/sendmail/src/conf.c 3.32
SCCS-vsn: usr.sbin/sendmail/src/sendmail.h 3.45
SCCS-vsn: usr.sbin/sendmail/src/useful.h 3.4
SCCS-vsn: usr.sbin/sendmail/src/util.c 3.9
SCCS-vsn: usr.sbin/sendmail/src/version.c 3.39
SCCS-vsn: usr.sbin/sendmail/src/main.c 3.40
SCCS-vsn: usr.sbin/sendmail/src/readcf.c 3.15
SCCS-vsn: usr.sbin/sendmail/src/stab.c 3.9
# include <sys/types.h>
# include <sys/timeb.h>
# endif
# include <sys/types.h>
# include <sys/timeb.h>
# endif
-static char SccsId[] = "@(#)arpadate.c 3.6.1.1 %G%";
+static char SccsId[] = "@(#)arpadate.c 3.7 %G%";
/*
** ARPADATE -- Create date in ARPANET format
/*
** ARPADATE -- Create date in ARPANET format
** the format is and work appropriately.
*/
** the format is and work appropriately.
*/
struct cvttab
{
char *old;
struct cvttab
{
char *old;
-static char SccsId[] = "@(#)conf.c 3.31.1.1 %G%";
+static char SccsId[] = "@(#)conf.c 3.32 %G%";
\f/*
** Header info table
** Final (null) entry contains the flags used for any other field.
\f/*
** Header info table
** Final (null) entry contains the flags used for any other field.
index(s, c)
register char *s;
register char c;
index(s, c)
register char *s;
register char c;
checkcompat(to)
register ADDRESS *to;
{
checkcompat(to)
register ADDRESS *to;
{
if (to->q_mailer != MN_LOCAL && MsgSize > 100000)
{
usrerr("Message exceeds 100000 bytes");
NoReturn++;
return (FALSE);
}
if (to->q_mailer != MN_LOCAL && MsgSize > 100000)
{
usrerr("Message exceeds 100000 bytes");
NoReturn++;
return (FALSE);
}
+# ifdef ING70
+ s = stab("arpa", ST_MAILER, ST_FIND);
+ if (s != NULL && From.q_mailer != MN_LOCAL && to->q_mailer == s->st_mailer->m_mno)
+ {
+ usrerr("No ARPA mail through this machine: see your system administration");
+ return (FALSE);
+ }
+# endif ING70
# include <syslog.h>
# endif LOG
# include <syslog.h>
# endif LOG
-static char SccsId[] = "@(#)main.c 3.39 %G%";
+static char SccsId[] = "@(#)main.c 3.40 %G%";
/*
** SENDMAIL -- Post mail to a set of destinations.
/*
** SENDMAIL -- Post mail to a set of destinations.
readcf(ConfFile, safecf);
readcf(ConfFile, safecf);
p = getenv("HOME");
if (p != NULL)
{
p = getenv("HOME");
if (p != NULL)
{
if (access(cfbuf, 2) == 0)
readcf(cfbuf, FALSE);
}
if (access(cfbuf, 2) == 0)
readcf(cfbuf, FALSE);
}
initaliases(AliasFile, aliasinit);
# ifdef DBM
initaliases(AliasFile, aliasinit);
# ifdef DBM
-static char SccsId[] = "@(#)readcf.c 3.14 %G%";
+static char SccsId[] = "@(#)readcf.c 3.15 %G%";
/*
** READCF -- read control file.
/*
** READCF -- read control file.
char *margv[MAXPV + 1];
register int i;
extern int NextMailer;
char *margv[MAXPV + 1];
register int i;
extern int NextMailer;
if (NextMailer >= MAXMAILERS)
{
if (NextMailer >= MAXMAILERS)
{
m->m_from = newstr(mfrom);
m->m_badstat = EX_UNAVAILABLE;
m->m_sendq = NULL;
m->m_from = newstr(mfrom);
m->m_badstat = EX_UNAVAILABLE;
m->m_sendq = NULL;
Mailer[NextMailer++] = m;
/* collect the argument vector */
Mailer[NextMailer++] = m;
/* collect the argument vector */
/* save the argv */
m->m_argv = (char **) xalloc((unsigned) (sizeof margv[0] * i));
bmove((char *) margv, (char *) m->m_argv, sizeof margv[0] * i);
/* save the argv */
m->m_argv = (char **) xalloc((unsigned) (sizeof margv[0] * i));
bmove((char *) margv, (char *) m->m_argv, sizeof margv[0] * i);
+ s = stab(m->m_name, ST_MAILER, ST_ENTER);
+ s->s_mailer = m;
}
\f/*
** PRINTRULES -- print rewrite rules (for debugging)
}
\f/*
** PRINTRULES -- print rewrite rules (for debugging)
/*
** SENDMAIL.H -- Global definitions for sendmail.
**
/*
** SENDMAIL.H -- Global definitions for sendmail.
**
-** @(#)sendmail.h 3.44.1.1 %G%
+** @(#)sendmail.h 3.45 %G%
char *m_mailer; /* pathname of the mailer to use */
u_long m_flags; /* status flags, see below */
short m_badstat; /* the status code to use on unknown error */
char *m_mailer; /* pathname of the mailer to use */
u_long m_flags; /* status flags, see below */
short m_badstat; /* the status code to use on unknown error */
+ short m_mno; /* mailer number internally */
char *m_from; /* pattern for From: header */
char **m_argv; /* template argument vector */
ADDRESS *m_sendq; /* list of addresses to send to */
char *m_from; /* pattern for From: header */
char **m_argv; /* template argument vector */
ADDRESS *m_sendq; /* list of addresses to send to */
-static char SccsId[] = "@(#)stab.c 3.8 %G%";
+static char SccsId[] = "@(#)stab.c 3.9 %G%";
/*
** STAB -- manage the symbol table
/*
** STAB -- manage the symbol table
hfunc = ((hfunc << 7) | lower(*p)) % STABSIZE;
# ifdef DEBUG
hfunc = ((hfunc << 7) | lower(*p)) % STABSIZE;
# ifdef DEBUG
printf("(hfunc=%d) ", hfunc);
# endif DEBUG
ps = &SymTab[hfunc];
while ((s = *ps) != NULL && (!sameword(name, s->s_name) || s->s_type != type))
printf("(hfunc=%d) ", hfunc);
# endif DEBUG
ps = &SymTab[hfunc];
while ((s = *ps) != NULL && (!sameword(name, s->s_name) || s->s_type != type))
/*
** Dispose of the entry.
/*
** Dispose of the entry.
/*
** USEFUL.H -- Some useful stuff.
**
/*
** USEFUL.H -- Some useful stuff.
**
extern char *ctime();
# ifndef V6
extern char *getenv();
extern char *ctime();
# ifndef V6
extern char *getenv();
+# else V6
+typedef char *u_short;
+typedef long u_long;
+typedef char u_char;
+typedef int void;
+# endif V6
# include <ctype.h>
# include "conf.h"
# include <ctype.h>
# include "conf.h"
-static char SccsId[] = "@(#)util.c 3.8.1.1 %G%";
+static char SccsId[] = "@(#)util.c 3.9 %G%";
/*
** STRIPQUOTES -- Strip quotes & quote bits from a string.
/*
** STRIPQUOTES -- Strip quotes & quote bits from a string.
{
register char *bp = buf;
{
register char *bp = buf;
while (*p != '\0' && *p != ',' && *p != ';')
{
if (*p == '&')
while (*p != '\0' && *p != ',' && *p != ';')
{
if (*p == '&')
-static char SccsId[] = "@(#)SendMail version 3.38.1.1 of %G%";
+static char SccsId[] = "@(#)SendMail version 3.39 of %G%";
-char Version[] = "3.38.1.1 [%G%]";
+char Version[] = "3.39 [%G%]";