Index: makedefs --- makedefs.orig 2005-02-22 13:35:52 +0100 +++ makedefs 2005-09-23 14:27:15 +0200 @@ -116,6 +116,10 @@ ;; FreeBSD.5*) SYSTYPE=FREEBSD5 ;; + FreeBSD.6*) SYSTYPE=FREEBSD6 + ;; + FreeBSD.7*) SYSTYPE=FREEBSD7 + ;; OpenBSD.2*) SYSTYPE=OPENBSD2 ;; OpenBSD.3*) SYSTYPE=OPENBSD3 Index: src/util/file_limit.c --- src/util/file_limit.c.orig 2003-10-22 20:48:36 +0200 +++ src/util/file_limit.c 2005-03-11 10:30:43 +0100 @@ -80,12 +80,21 @@ void set_file_limit(off_t limit) { #ifdef USE_ULIMIT +#ifdef USE_SOFTLIMITONLY +#error "USE_ULIMIT and USE_SOFTLIMITONLY are mutual exclusive" +#endif if (ulimit(UL_SETFSIZE, limit / ULIMIT_BLOCK_SIZE) < 0) msg_fatal("ulimit: %m"); #else struct rlimit rlim; +#ifdef USE_SOFTLIMITONLY + if (getrlimit(RLIMIT_FSIZE, &rlim) < 0) + rlim.rlim_max = RLIM_INFINITY; + rlim.rlim_cur = limit; +#else rlim.rlim_cur = rlim.rlim_max = limit; +#endif if (setrlimit(RLIMIT_FSIZE, &rlim) < 0) msg_fatal("setrlimit: %m"); #ifdef SIGXFSZ Index: src/util/msg_syslog.c --- src/util/msg_syslog.c.orig 2005-01-19 02:22:19 +0100 +++ src/util/msg_syslog.c 2005-03-11 10:30:43 +0100 @@ -50,6 +50,11 @@ #include #include #include +#ifdef USE_SOFTLIMITONLY +#include +#include +#include +#endif /* Application-specific. */ @@ -144,6 +149,9 @@ static void msg_syslog_print(int level, const char *text) { +#ifdef USE_SOFTLIMITONLY + struct rlimit save, rlim; +#endif static int log_level[] = { LOG_INFO, LOG_WARNING, LOG_ERR, LOG_CRIT, LOG_CRIT, }; @@ -154,6 +162,15 @@ if (level < 0 || level >= (int) (sizeof(log_level) / sizeof(log_level[0]))) msg_panic("msg_syslog_print: invalid severity level: %d", level); +#ifdef USE_SOFTLIMITONLY + if (getrlimit(RLIMIT_FSIZE, &save) < 0) { + save.rlim_cur = RLIM_INFINITY; + save.rlim_max = RLIM_INFINITY; + } + rlim.rlim_cur = save.rlim_max; + rlim.rlim_max = save.rlim_max; + (void)setrlimit(RLIMIT_FSIZE, &rlim); +#endif if (level == MSG_INFO) { syslog(syslog_facility | log_level[level], "%.*s", (int) MSG_SYSLOG_RECLEN, text); @@ -161,6 +178,9 @@ syslog(syslog_facility | log_level[level], "%s: %.*s", severity_name[level], (int) MSG_SYSLOG_RECLEN, text); } +#ifdef USE_SOFTLIMITONLY + (void)setrlimit(RLIMIT_FSIZE, &save); +#endif } /* msg_syslog_init - initialize */ Index: src/util/sys_defs.h --- src/util/sys_defs.h.orig 2005-02-04 01:07:44 +0100 +++ src/util/sys_defs.h 2005-03-11 10:30:49 +0100 @@ -24,7 +24,7 @@ * 4.4BSD and close derivatives. */ #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) \ - || defined(FREEBSD5) || defined(FREEBSD6) \ + || defined(FREEBSD5) || defined(FREEBSD6) || defined(FREEBSD7) \ || defined(BSDI2) || defined(BSDI3) || defined(BSDI4) \ || defined(OPENBSD2) || defined(OPENBSD3) \ || defined(NETBSD1) || defined(NETBSD2) \