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


Previous Section Next Section

SFS_TYPE

How to determine free disk space port, edit sendmail/conf.h

The sendmail program can temporarily fail incoming mail messages if they are too large for the queueing disk. This ability is enabled by giving a positive, non-zero size to the MinFreeBlocks option (See this section). The method sendmail uses to measure the free space on a disk varies from system to system. This SFS_TYPE compile-time macro defines which of several methods sendmail will use. Those available are shown in Table 3-11.

Table 3-11. Method to determine free disk space

Compile-time macro

Description

SFS_NONE

Your system has no way to determine the free space on a disk. This causes the MinFreeBlocks option (MinFreeBlocks) to be ignored.

SFS_USTAT

Your system uses the ustat(2) system call to get information about mounted filesystems.

SFS_4ARGS

Your system uses the four-argument form of the statfs(2) system call and <sys/statfs.h>. If you define this, you can also define SFS_BAVAIL as the field name for the statfs C-language structure (by default, f_bavail).

SFS_VFS

Your system uses the two-argument form of the statfs(2) system call and <sys/vfs.h>.

SFS_MOUNT

Your system uses the two-argument form of the statfs(2) system call and <sys/mount.h>.

SFS_STATFS

Your system uses the two-argument form of the statfs(2) system call and <sys/statfs.h>.

SFS_STATVFS

Your system uses the statvfs(2) system call.

In general, SFS_TYPE is correctly defined for all supported systems. You should need to modify it only if you are porting to a new system. To do so, you will need to edit sendmail/conf.h (include/sm/conf.h beginning with V8.12).

You can use the -d4.80 debugging switch (-d4.80) to watch sendmail check for enough disk space. The only way to tell whether a precompiled version of sendmail has this ability is by setting the MinFreeBlocks option to a positive value and watching the -d4.80 output. If bavail= in that output is always -1, no matter what, your support was defined as SFS_NONE.

New ports should be reported to sendmail@sendmail.org so that they can be folded into future releases.

    Previous Section Next Section