X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/6294d633e80db8e89697db796e6f6025d5af0cae..ad7871609881e73855d0b04da49b486cd93efca7:/usr/src/usr.sbin/sendmail/src/conf.c diff --git a/usr/src/usr.sbin/sendmail/src/conf.c b/usr/src/usr.sbin/sendmail/src/conf.c index 1c5097ef5e..be4ff27216 100644 --- a/usr/src/usr.sbin/sendmail/src/conf.c +++ b/usr/src/usr.sbin/sendmail/src/conf.c @@ -1,13 +1,39 @@ /* * 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. + * + * 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. */ #ifndef lint -static char sccsid[] = "@(#)conf.c 6.62 (Berkeley) %G%"; +static char sccsid[] = "@(#)conf.c 8.1 (Berkeley) 6/7/93"; #endif /* not lint */ # include @@ -41,7 +67,7 @@ static char sccsid[] = "@(#)conf.c 6.62 (Berkeley) %G%"; - /* +/* ** Header info table ** Final (null) entry contains the flags used for any other field. ** @@ -801,10 +827,8 @@ refuseconnections() ** SETPROCTITLE -- set process title for ps ** ** Parameters: -** fmt -- a printf style format string. If NULL, the first -** parameter is a literal proctitle previously -** returned by getproctitle. -** va_alist -- possible parameters to fmt. +** fmt -- a printf style format string. +** a, b, c -- possible parameters to fmt. ** ** Returns: ** none. @@ -830,8 +854,6 @@ refuseconnections() # endif #endif -char ProcTitleBuf[MAXLINE]; - /*VARARGS1*/ #ifdef __STDC__ setproctitle(char *fmt, ...) @@ -844,6 +866,7 @@ setproctitle(fmt, va_alist) # ifdef SETPROCTITLE register char *p; register int i; + SETPROC_STATIC char buf[MAXLINE]; VA_LOCAL_DECL # ifdef __hpux union pstun pst; @@ -851,32 +874,33 @@ setproctitle(fmt, va_alist) extern char **Argv; extern char *LastArgv; - VA_START(fmt); - if (fmt == NULL) - { - /* restore old proctitle */ - (void) strcpy(ProcTitleBuf, va_arg(ap, char *)); - } - else - { - p = ProcTitleBuf; + p = buf; - /* print sendmail: heading for grep */ - (void) strcpy(p, "sendmail: "); - p += strlen(p); + /* print sendmail: heading for grep */ + (void) strcpy(p, "sendmail: "); + p += strlen(p); - /* print the argument string */ - (void) vsprintf(p, fmt, ap); - } + /* print the argument string */ + VA_START(fmt); + (void) vsprintf(p, fmt, ap); VA_END; - i = strlen(ProcTitleBuf); + i = strlen(buf); + +# ifdef __hpux + pst.pst_command = buf; + pstat(PSTAT_SETCMD, pst, i, 0, 0); +# else +# ifdef PS_STRINGS + PS_STRINGS->ps_nargvstr = 1; + PS_STRINGS->ps_argvstr = buf; +# else if (i > LastArgv - Argv[0] - 2) { i = LastArgv - Argv[0] - 2; - ProcTitleBuf[i] = '\0'; + buf[i] = '\0'; } - (void) strcpy(Argv[0], ProcTitleBuf); + (void) strcpy(Argv[0], buf); p = &Argv[0][i]; while (p < LastArgv) *p++ = ' '; @@ -1162,7 +1186,6 @@ enoughspace(msize) # define FSBLOCKSIZE fs.f_bsize # endif # endif - long blocksneeded; extern int errno; if (MinBlocksFree <= 0 && msize <= 0)