#include "buffer.h" #include "fmt.h" #include "select.h" #include "exit.h" #include "auto_spawn.h" #define MAXSPAWN 1000 /* Silent spawn limit increased to 1000 */ char num[FMT_ULONG]; fd_set fds; int main() { unsigned long hiddenlimit; unsigned long maxnumd; hiddenlimit = sizeof(fds) * 8; maxnumd = (hiddenlimit - 5) / 2; if (auto_spawn < 1) { buffer_puts(buffer_2,"Oops. You have set conf-spawn lower than 1.\n"); buffer_flush(buffer_2); _exit(1); } if (auto_spawn > MAXSPAWN) { buffer_puts(buffer_2,"Oops. You have set conf-spawn higher than MAXSPAWN.\n"); buffer_flush(buffer_2); _exit(1); } if (auto_spawn > maxnumd) { buffer_puts(buffer_2,"Oops. Your system's FD_SET() has a hidden limit of "); buffer_put(buffer_2,num,fmt_ulong(num,hiddenlimit)); buffer_puts(buffer_2," descriptors.\n\ This means that the qmail daemons could crash if you set the run-time\n\ concurrency higher than "); buffer_put(buffer_2,num,fmt_ulong(num,maxnumd)); buffer_puts(buffer_2,". So I'm going to insist that the concurrency\n\ limit in conf-spawn be at most "); buffer_put(buffer_2,num,fmt_ulong(num,maxnumd)); buffer_puts(buffer_2,". Right now it's "); buffer_put(buffer_2,num,fmt_ulong(num,(unsigned long) auto_spawn)); buffer_puts(buffer_2,".\n"); buffer_flush(buffer_2); _exit(1); } _exit(0); }