home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Previous Section Next Section

HAS...

Has specific system-call support port, edit sendmail/conf.h

Macros that begin with HAS tell sendmail whether your system supports (has) certain system-library routines or variables. In general, you should need to define or undefine the compile-time macros shown in Table 3-3 only if you are porting sendmail to a new system. In that instance you should also read sendmail/README for the latest information and pitfalls.

Each of these is turned on or off with an assignment of 1 or 0:

APPENDDEF(`confENVDEF', `-DHASSETSID=1')  turn on
APPENDDEF(`confENVDEF', `-DHASSETSID=0')  turn off

"Turning on" tells sendmail that your site has support for this system call (setsid(2) in this instance). "Turning off" tells sendmail to work around the lack of that support. When porting to a new system, you can test with one of the preceding confENVDEF statements and, if successful, put a permanent porting entry into sendmail/conf.h.

Table 3-3. HAS... compile-time macros for specific system-call support

Compile-time macro

System call

HASFCHMOD

fchmod(2)

HASFCHOWN

fchown(2)

HASFLOCK

flock(2)

HASGETDTABLESIZE

getdtablesize(2)

HASGETUSERSHELL

getusershell(3)

HASINITGROUPS

initgroups(3)

HASLSTAT

lstat(2)

HASNICE

nice(2)

HASRANDOM

random(3)

HASRRESVPORT

rresvport(3)

HASSETREUID

setreuid(2)

HASSETREGID

setregid(2)

HASSETRESGID

setresgid(2)

HASSETREUID

setreuid(2)

HASSETRLIMIT

setrlimit(2)

HASSETSID

setsid(2)

HASSETUSERCONTEXT

setusercontext(3)

HASSETVBUF

setvbuf(3)

HASSIGSETMASK

sigsetmask(2)

HASSNPRINTF

snprintf(3) and vsnprintf(3)

HASSRANDOMDEV

srandomdev(3)

HASSTRERROR

strerror(3)

HASULIMIT

ulimit(2)

HASUNAME

uname(2)

HASUNSETENV

unsetenv(3)

HASURANDOMDEV

/dev/urandom(4)

HASWAITPID

waitpid(2)

HAS_ST_GEN

st_gen in stat(2) structure

If you are running a precompiled binary of sendmail, you can use the -d0.10 debugging switch (-d0.10) to determine if any of these are defined (each is defined that appears in the list). New ports should be reported to sendmail@sendmail.org so that they can be folded into future releases.

    Previous Section Next Section