mirror of
https://github.com/opnsense/src.git
synced 2026-02-15 08:38:13 -05:00
135 lines
5.1 KiB
C
135 lines
5.1 KiB
C
/*
|
|
* Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers.
|
|
* All rights reserved.
|
|
* Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
|
|
* Copyright (c) 1988, 1993
|
|
* The Regents of the University of California. All rights reserved.
|
|
*
|
|
* By using this file, you agree to the terms and conditions set
|
|
* forth in the LICENSE file which can be found at the top level of
|
|
* the sendmail distribution.
|
|
*
|
|
*
|
|
* $Id: sendmail.h,v 8.68 2002/07/01 22:18:53 gshapiro Exp $
|
|
*/
|
|
|
|
/*
|
|
** SENDMAIL.H -- Global definitions for sendmail.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <sm/bitops.h>
|
|
#include <sm/io.h>
|
|
#include <sm/string.h>
|
|
#include "conf.h"
|
|
|
|
/**********************************************************************
|
|
** Table sizes, etc....
|
|
** There shouldn't be much need to change these....
|
|
**********************************************************************/
|
|
#ifndef MAXMAILERS
|
|
# define MAXMAILERS 25 /* maximum mailers known to system */
|
|
#endif /* ! MAXMAILERS */
|
|
|
|
/*
|
|
** Flags passed to safefile/safedirpath.
|
|
*/
|
|
|
|
#define SFF_ANYFILE 0L /* no special restrictions */
|
|
#define SFF_MUSTOWN 0x00000001L /* user must own this file */
|
|
#define SFF_NOSLINK 0x00000002L /* file cannot be a symbolic link */
|
|
#define SFF_ROOTOK 0x00000004L /* ok for root to own this file */
|
|
#define SFF_RUNASREALUID 0x00000008L /* if no ctladdr, run as real uid */
|
|
#define SFF_NOPATHCHECK 0x00000010L /* don't bother checking dir path */
|
|
#define SFF_SETUIDOK 0x00000020L /* set-user-ID files are ok */
|
|
#define SFF_CREAT 0x00000040L /* ok to create file if necessary */
|
|
#define SFF_REGONLY 0x00000080L /* regular files only */
|
|
#define SFF_SAFEDIRPATH 0x00000100L /* no writable directories allowed */
|
|
#define SFF_NOHLINK 0x00000200L /* file cannot have hard links */
|
|
#define SFF_NOWLINK 0x00000400L /* links only in non-writable dirs */
|
|
#define SFF_NOGWFILES 0x00000800L /* disallow world writable files */
|
|
#define SFF_NOWWFILES 0x00001000L /* disallow group writable files */
|
|
#define SFF_OPENASROOT 0x00002000L /* open as root instead of real user */
|
|
#define SFF_NOLOCK 0x00004000L /* don't lock the file */
|
|
#define SFF_NOGRFILES 0x00008000L /* disallow g readable files */
|
|
#define SFF_NOWRFILES 0x00010000L /* disallow o readable files */
|
|
#define SFF_NOTEXCL 0x00020000L /* creates don't need to be exclusive */
|
|
#define SFF_EXECOK 0x00040000L /* executable files are ok (E_SM_ISEXEC) */
|
|
#define SFF_NBLOCK 0x00080000L /* use a non-blocking lock */
|
|
#define SFF_NORFILES (SFF_NOGRFILES|SFF_NOWRFILES)
|
|
|
|
/* pseudo-flags */
|
|
#define SFF_NOLINK (SFF_NOHLINK|SFF_NOSLINK)
|
|
|
|
/* functions */
|
|
extern int safefile __P((char *, UID_T, GID_T, char *, long, int, struct stat *));
|
|
extern int safedirpath __P((char *, UID_T, GID_T, char *, long, int, int));
|
|
extern int safeopen __P((char *, int, int, long));
|
|
extern SM_FILE_T*safefopen __P((char *, int, int, long));
|
|
extern int dfopen __P((char *, int, int, long));
|
|
extern bool filechanged __P((char *, int, struct stat *));
|
|
|
|
/*
|
|
** DontBlameSendmail options
|
|
**
|
|
** Hopefully nobody uses these.
|
|
*/
|
|
|
|
#define DBS_SAFE 0
|
|
#define DBS_ASSUMESAFECHOWN 1
|
|
#define DBS_GROUPWRITABLEDIRPATHSAFE 2
|
|
#define DBS_GROUPWRITABLEFORWARDFILESAFE 3
|
|
#define DBS_GROUPWRITABLEINCLUDEFILESAFE 4
|
|
#define DBS_GROUPWRITABLEALIASFILE 5
|
|
#define DBS_WORLDWRITABLEALIASFILE 6
|
|
#define DBS_FORWARDFILEINUNSAFEDIRPATH 7
|
|
#define DBS_MAPINUNSAFEDIRPATH 8
|
|
#define DBS_LINKEDALIASFILEINWRITABLEDIR 9
|
|
#define DBS_LINKEDCLASSFILEINWRITABLEDIR 10
|
|
#define DBS_LINKEDFORWARDFILEINWRITABLEDIR 11
|
|
#define DBS_LINKEDINCLUDEFILEINWRITABLEDIR 12
|
|
#define DBS_LINKEDMAPINWRITABLEDIR 13
|
|
#define DBS_LINKEDSERVICESWITCHFILEINWRITABLEDIR 14
|
|
#define DBS_FILEDELIVERYTOHARDLINK 15
|
|
#define DBS_FILEDELIVERYTOSYMLINK 16
|
|
#define DBS_WRITEMAPTOHARDLINK 17
|
|
#define DBS_WRITEMAPTOSYMLINK 18
|
|
#define DBS_WRITESTATSTOHARDLINK 19
|
|
#define DBS_WRITESTATSTOSYMLINK 20
|
|
#define DBS_FORWARDFILEINGROUPWRITABLEDIRPATH 21
|
|
#define DBS_INCLUDEFILEINGROUPWRITABLEDIRPATH 22
|
|
#define DBS_CLASSFILEINUNSAFEDIRPATH 23
|
|
#define DBS_ERRORHEADERINUNSAFEDIRPATH 24
|
|
#define DBS_HELPFILEINUNSAFEDIRPATH 25
|
|
#define DBS_FORWARDFILEINUNSAFEDIRPATHSAFE 26
|
|
#define DBS_INCLUDEFILEINUNSAFEDIRPATHSAFE 27
|
|
#define DBS_RUNPROGRAMINUNSAFEDIRPATH 28
|
|
#define DBS_RUNWRITABLEPROGRAM 29
|
|
#define DBS_INCLUDEFILEINUNSAFEDIRPATH 30
|
|
#define DBS_NONROOTSAFEADDR 31
|
|
#define DBS_TRUSTSTICKYBIT 32
|
|
#define DBS_DONTWARNFORWARDFILEINUNSAFEDIRPATH 33
|
|
#define DBS_INSUFFICIENTENTROPY 34
|
|
#define DBS_GROUPREADABLESASLDBFILE 35
|
|
#define DBS_GROUPWRITABLESASLDBFILE 36
|
|
#define DBS_GROUPWRITABLEFORWARDFILE 37
|
|
#define DBS_GROUPWRITABLEINCLUDEFILE 38
|
|
#define DBS_WORLDWRITABLEFORWARDFILE 39
|
|
#define DBS_WORLDWRITABLEINCLUDEFILE 40
|
|
#define DBS_GROUPREADABLEKEYFILE 41
|
|
#if _FFR_GROUPREADABLEAUTHINFOFILE
|
|
# define DBS_GROUPREADABLEAUTHINFOFILE 42
|
|
#endif /* _FFR_GROUPREADABLEAUTHINFOFILE */
|
|
|
|
/* struct defining such things */
|
|
struct dbsval
|
|
{
|
|
char *dbs_name; /* name of DontBlameSendmail flag */
|
|
unsigned char dbs_flag; /* numeric level */
|
|
};
|
|
|
|
/* Flags for submitmode */
|
|
#define SUBMIT_UNKNOWN 0x0000 /* unknown agent type */
|
|
#define SUBMIT_MTA 0x0001 /* act like a message transfer agent */
|
|
#define SUBMIT_MSA 0x0002 /* act like a message submission agent */
|
|
|