OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Thomas Lotterer
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src openpkg-web          Date:   28-Oct-2003 11:42:16
  Branch: HEAD                             Handle: 2003102810421402

  Modified files:
    openpkg-src/postfix     postfix.patch postfix.spec
    openpkg-web             news.txt

  Log:
    PR#285 patch to use soft not hard limits with setrlimit(2)

  Summary:
    Revision    Changes     Path
    1.3         +82 -0      openpkg-src/postfix/postfix.patch
    1.179       +4  -1      openpkg-src/postfix/postfix.spec
    1.7199      +1  -0      openpkg-web/news.txt
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/postfix/postfix.patch
  ============================================================================
  $ cvs diff -u -r1.2 -r1.3 postfix.patch
  --- openpkg-src/postfix/postfix.patch 22 Jul 2003 14:19:09 -0000      1.2
  +++ openpkg-src/postfix/postfix.patch 28 Oct 2003 10:42:16 -0000      1.3
  @@ -23,3 +23,85 @@
    #endif
        }
        if (msg_verbose)
  +
  +https://rt.openpkg.org/Ticket/Display.html?id=285
  +    USE_SOFTLIMITONLY kludge
  +
  +Index: src/util/file_limit.c
  +--- src/util/file_limit.c.orig       2000-08-22 23:44:44.000000000 +0200
  ++++ src/util/file_limit.c    2003-10-28 11:11:47.000000000 +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       2003-09-14 03:34:33.000000000 +0200
  ++++ src/util/msg_syslog.c    2003-10-28 11:14:00.000000000 +0100
  +@@ -50,6 +50,11 @@
  + #include <syslog.h>
  + #include <string.h>
  + #include <time.h>
  ++#ifdef USE_SOFTLIMITONLY
  ++#include <sys/time.h>
  ++#include <sys/resource.h>
  ++#include <signal.h>
  ++#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 */
  +
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/postfix/postfix.spec
  ============================================================================
  $ cvs diff -u -r1.178 -r1.179 postfix.spec
  --- openpkg-src/postfix/postfix.spec  17 Oct 2003 21:41:35 -0000      1.178
  +++ openpkg-src/postfix/postfix.spec  28 Oct 2003 10:42:16 -0000      1.179
  @@ -39,7 +39,7 @@
   Group:        Mail
   License:      IPL
   Version:      %{V_postfix}
  -Release:      20031017
  +Release:      20031028
   
   #   package options
   %option       with_fsl       yes
  @@ -182,7 +182,10 @@
       CCARGS="$CCARGS -DHAS_LDAP"
       AUXLIBS="$AUXLIBS -lldap -llber -lssl -lcrypto"
   %endif
  +%if "%{with_fsl}" == "yes"
       AUXLIBS="$AUXLIBS %{l_fsl_ldflags} %{l_fsl_libs}"
  +    CCARGS="$CCARGS -DUSE_SOFTLIMITONLY"
  +%endif
   %if "%{with_fdsetsize}" != "no"
   %if "%{with_fdsetsize}" == "yes"
       CCARGS="$CCARGS -DFD_SETSIZE=1024"
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/news.txt
  ============================================================================
  $ cvs diff -u -r1.7198 -r1.7199 news.txt
  --- openpkg-web/news.txt      28 Oct 2003 08:27:33 -0000      1.7198
  +++ openpkg-web/news.txt      28 Oct 2003 10:42:14 -0000      1.7199
  @@ -1,3 +1,4 @@
  +28-Oct-2003: Upgraded package: P<postfix-2.0.16-20031028>
   28-Oct-2003: Upgraded package: P<fsl-1.3.0-1.3.2>
   28-Oct-2003: Upgraded package: P<openpkg-20031028-20031028>
   27-Oct-2003: Upgraded package: P<dbtool-1.6-20031027>
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to