commit-mailutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Mailutils branch, master, updated. release-2.2-295-g9bc59f5


From: Sergey Poznyakoff
Subject: [SCM] GNU Mailutils branch, master, updated. release-2.2-295-g9bc59f5
Date: Fri, 17 Dec 2010 22:30:21 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mailutils".

http://git.savannah.gnu.org/cgit/mailutils.git/commit/?id=9bc59f5471cc74db5fef8bccee4423c6a5bbff4f

The branch, master has been updated
       via  9bc59f5471cc74db5fef8bccee4423c6a5bbff4f (commit)
       via  8bf6d37210f6dc0136007dd9a973a7426cce55fb (commit)
       via  6824980f3b4e6ebd2a79a1bbab6ee3183e0b10b3 (commit)
       via  beb782295ca386a70beb0f4374a890e7abfa9216 (commit)
      from  c5f1126fe5883c0a8a22fb0ad8de18b8cfd6650e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9bc59f5471cc74db5fef8bccee4423c6a5bbff4f
Author: Sergey Poznyakoff <address@hidden>
Date:   Sat Dec 18 00:30:10 2010 +0200

    libmu_sieve: minor fix.
    
    * libmu_sieve/util.c (mu_sieve_error): Fix typo.

commit 8bf6d37210f6dc0136007dd9a973a7426cce55fb
Author: Sergey Poznyakoff <address@hidden>
Date:   Fri Dec 17 21:32:47 2010 +0200

    sieve: improve moderator extension.
    
    * libmu_sieve/extensions/moderator.c: Implement the :program tag.
    Use _sget_ functions to reduce memory requirements.
    * sieve/tests/moderator.mbox: New file.
    * sieve/tests/moderator.at: New file.
    * sieve/tests/Makefile.am (EXTRA_DIST): Add moderator.mbox.
    (TESTSUITE_AT): Add moderator.at
    * sieve/tests/testsuite.at (MUT_SIEVE_EXT_NAME): New define.
    (MUT_SIEVE_EXT_TEST): New macro.
    Include moderator.at.

commit 6824980f3b4e6ebd2a79a1bbab6ee3183e0b10b3
Author: Sergey Poznyakoff <address@hidden>
Date:   Fri Dec 17 18:11:45 2010 +0200

    Minor change
    
    * imap4d/util.c (set_xscript_level): Fix typo.

commit beb782295ca386a70beb0f4374a890e7abfa9216
Author: Sergey Poznyakoff <address@hidden>
Date:   Fri Dec 17 16:50:39 2010 +0200

    Improve debugging in the category "auth".
    
    * libmailutils/auth/mu_auth.c: Fix mu_debug calls. Use different levels.
    
    Remove --debug-auth option.  Users should use --debug-level=auth instead.
    
    * libmu_argp/auth.c: Remove.
    * libmu_argp/Makefile.am (libmu_argp_a_SOURCES): Remove auth.c
    * include/mailutils/libargp.h (mu_auth_cmdline): Remove.
    * libmu_argp/cmdline.c (all_cmdline_capa): Remove mu_auth_cmdline.

-----------------------------------------------------------------------

Summary of changes:
 imap4d/util.c                      |    2 +-
 include/mailutils/libargp.h        |    1 -
 libmailutils/auth/mu_auth.c        |   16 +++---
 libmu_argp/Makefile.am             |    1 -
 libmu_argp/auth.c                  |   83 ---------------------------------
 libmu_argp/cmdline.c               |    1 -
 libmu_sieve/extensions/moderator.c |   44 +++++++++++++----
 libmu_sieve/extensions/spamd.c     |    4 +-
 libmu_sieve/util.c                 |    2 +-
 sieve/tests/Makefile.am            |    3 +-
 sieve/tests/moderator.at           |   90 ++++++++++++++++++++++++++++++++++++
 sieve/tests/moderator.mbox         |   78 +++++++++++++++++++++++++++++++
 sieve/tests/testsuite.at           |   23 +++++++++
 13 files changed, 239 insertions(+), 109 deletions(-)
 delete mode 100644 libmu_argp/auth.c
 create mode 100644 sieve/tests/moderator.at
 create mode 100644 sieve/tests/moderator.mbox

diff --git a/imap4d/util.c b/imap4d/util.c
index 81faaf9..95a46d9 100644
--- a/imap4d/util.c
+++ b/imap4d/util.c
@@ -678,7 +678,7 @@ set_xscript_level (int xlev)
       if (xlev != MU_XSCRIPT_NORMAL)
        {
          if (mu_debug_level_p (MU_DEBCAT_REMOTE, 
-                               MU_XSCRIPT_SECURE ?
+                               xlev == MU_XSCRIPT_SECURE ?
                                  MU_DEBUG_TRACE6 : MU_DEBUG_TRACE7))
            return MU_XSCRIPT_NORMAL;
        }
diff --git a/include/mailutils/libargp.h b/include/mailutils/libargp.h
index 603b859..f0b4dda 100644
--- a/include/mailutils/libargp.h
+++ b/include/mailutils/libargp.h
@@ -60,7 +60,6 @@ extern struct mu_cmdline_capa mu_tls_cmdline;
 extern struct mu_cmdline_capa mu_radius_cmdline;
 extern struct mu_cmdline_capa mu_sql_cmdline;
 extern struct mu_cmdline_capa mu_virtdomain_cmdline;
-extern struct mu_cmdline_capa mu_auth_cmdline;
 
 extern void mu_libargp_init (void);
   
diff --git a/libmailutils/auth/mu_auth.c b/libmailutils/auth/mu_auth.c
index a1b9f2c..a3aa1b8 100644
--- a/libmailutils/auth/mu_auth.c
+++ b/libmailutils/auth/mu_auth.c
@@ -55,7 +55,7 @@
      mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE,                                \
                       ("source=%s, name=%s, passwd=%s, uid=%lu, gid=%lu, "    \
                        "gecos=%s, dir=%s, shell=%s, mailbox=%s, quota=%lu, "  \
-                       "change_uid=%d\n",                                     \
+                       "change_uid=%d",                                       \
                        S ((a)->source),                                       \
                        S ((a)->name),                                         \
                        S ((a)->passwd),                                       \
@@ -191,11 +191,11 @@ mu_auth_runlist (mu_list_t flist, struct mu_auth_data 
**return_data,
            mu_iterator_next (itr))
         {
           mu_iterator_current (itr, (void **)&ep);
-          mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE,
+          mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE2,
                    ("Trying %s...", ep->name));
           rc = ep->fun (return_data, key, ep->func_data, data);
-          mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE, 
-                    ("result: %d=%s\n", rc, mu_strerror (rc)));
+         mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE2, 
+                   ("%s yields %d=%s", ep->name, rc, mu_strerror (rc)));
           if (rc == 0)
             {
               if (return_data)
@@ -244,13 +244,13 @@ mu_get_auth (struct mu_auth_data **auth, enum 
mu_auth_key_type type,
   switch (type)
     {
     case mu_auth_key_name:
-      mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE,
+      mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE1,
                 ("Getting auth info for user %s", (char*) key));
       list = mu_auth_by_name_list;
       break;
 
     case mu_auth_key_uid:
-      mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE, 
+      mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE1, 
                 ("Getting auth info for UID %lu",
                 (unsigned long) *(uid_t*) key));
       list = mu_auth_by_uid_list;
@@ -289,8 +289,8 @@ mu_authenticate (struct mu_auth_data *auth_data, const char 
*pass)
 {
   if (!auth_data)
     return EINVAL;
-  mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE, 
-            ("mu_authenticate, user %s, source %s\n", 
+  mu_debug (MU_DEBCAT_AUTH, MU_DEBUG_TRACE1, 
+            ("mu_authenticate, user %s, source %s", 
              auth_data->name, auth_data->source));
   if (!mu_authenticate_list)
     mu_auth_begin_setup ();
diff --git a/libmu_argp/Makefile.am b/libmu_argp/Makefile.am
index 1045562..6b60fd2 100644
--- a/libmu_argp/Makefile.am
+++ b/libmu_argp/Makefile.am
@@ -25,7 +25,6 @@ AM_CPPFLAGS = \
 lib_LIBRARIES = libmu_argp.a
 
 libmu_argp_a_SOURCES =\
- auth.c\
  cmdline.c\
  cmdline.h\
  common.c\
diff --git a/libmu_argp/auth.c b/libmu_argp/auth.c
deleted file mode 100644
index 13c8a6f..0000000
--- a/libmu_argp/auth.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* GNU Mailutils -- a suite of utilities for electronic mail
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
-
-   This library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 3 of the License, or (at your option) any later version.
-
-   This library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General
-   Public License along with this library.  If not, see
-   <http://www.gnu.org/licenses/>. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-#include "cmdline.h"
-#include "mailutils/mu_auth.h"
-
-
-/* ************************************************************************* */
-/* Traditional configuration                                                 */
-/* ************************************************************************* */
-
-enum {
-  OPT_DEBUG_AUTH=256
-};
-
-static error_t mu_auth_argp_parser (int key, char *arg,
-                                   struct argp_state *state);
-
-/* Options used by programs that use extended authentication mechanisms. */
-static struct argp_option mu_auth_argp_option[] = {
-  { "debug-auth", OPT_DEBUG_AUTH, NULL, 0,
-    N_("debug authentication functions") },
-  { NULL,      0, NULL, 0, NULL, 0 }
-};
-
-static struct argp mu_auth_argp = {
-  mu_auth_argp_option,
-  mu_auth_argp_parser,
-};
-
-static struct argp_child mu_auth_argp_child = {
-  &mu_auth_argp,
-  0,
-  NULL,
-  0
-};
-
-static error_t
-mu_auth_argp_parser (int key, char *arg, struct argp_state *state)
-{
-  static mu_list_t lst;
-  
-  switch (key)
-    {
-    case ARGP_KEY_INIT:
-      mu_argp_node_list_init (&lst);
-      break;
-      
-    case ARGP_KEY_FINI:
-      mu_argp_node_list_finish (lst, "auth", NULL);
-      break;
-
-    case OPT_DEBUG_AUTH:
-      mu_debug_set_category_level (MU_DEBCAT_AUTH,
-                                   MU_DEBUG_LEVEL_UPTO (MU_DEBUG_TRACE7));
-      break;
-      
-    default:
-      return ARGP_ERR_UNKNOWN;
-    }
-  return 0;
-}
-
-struct mu_cmdline_capa mu_auth_cmdline = {
-  "auth", &mu_auth_argp_child
-};
diff --git a/libmu_argp/cmdline.c b/libmu_argp/cmdline.c
index 0323e03..379297f 100644
--- a/libmu_argp/cmdline.c
+++ b/libmu_argp/cmdline.c
@@ -27,7 +27,6 @@ static struct mu_cmdline_capa *all_cmdline_capa[] = {
   &mu_mailer_cmdline,
   &mu_debug_cmdline,
   &mu_tls_cmdline,
-  &mu_auth_cmdline,
   &mu_sieve_cmdline,
   NULL
 };
diff --git a/libmu_sieve/extensions/moderator.c 
b/libmu_sieve/extensions/moderator.c
index d1377e6..760cf96 100644
--- a/libmu_sieve/extensions/moderator.c
+++ b/libmu_sieve/extensions/moderator.c
@@ -31,6 +31,7 @@
 
      moderator [:keep]
                [:address <address: string>]
+              [:program <sieve-program: string>]
               [:source <sieve-file: string>]
 
    The moderator action spawns an inferior Sieve machine and filters the
@@ -40,9 +41,15 @@
    reply can be modified using :address tag. After discarding the message,
    moderator marks it as deleted, unless it is given :keep tag.
 
-   If :source tag is given, its argument sieve-file specifies the Sieve
-   source file to be used on the message. Otherwise, moderator will create
-   a copy of the existing Sieve machine.
+   If :source tag is given, its argument sieve-file specifies a Sieve
+   source file to be used on the message. If :program tag is given, its
+   argument supplies a Sieve program to be used on this message. Only
+   one of :program or :source may be specified. Supplying them both, or
+   supplying several instances of the same keyword, is an error. The
+   behavior of the action in this case is undefined.
+   
+   If neither :program nor :source is supplied, moderator will create
+   a copy of the existing Sieve machine and use it on the message.
 
    The action checks the message structure: it will bail out if the message
    does not have exactly 3 MIME parts, or if parts 2 and 3 are not of
@@ -93,6 +100,24 @@ moderator_filter_message (mu_sieve_machine_t mach, 
mu_list_t tags,
       if (rc)
        mu_sieve_error (mach, _("cannot compile source `%s'"), arg->v.string);
     }
+  else if (mu_sieve_tag_lookup (tags, "program", &arg))
+    {
+      struct mu_locus locus;
+      
+      rc = mu_sieve_machine_inherit (mach, &newmach);
+      if (rc)
+       {
+         mu_sieve_error (mach, _("cannot initialize sieve machine: %s"),
+                         mu_strerror (rc));
+         return 1;
+       }
+      mu_sieve_get_locus (mach, &locus);
+      rc = mu_sieve_compile_buffer (newmach,
+                                   arg->v.string, strlen (arg->v.string),
+                                   locus.mu_file, locus.mu_line);
+      if (rc)
+       mu_sieve_error (mach, _("cannot compile subprogram"));
+    }
   else
     rc = mu_sieve_machine_dup (mach, &newmach);
 
@@ -119,15 +144,15 @@ copy_header (mu_sieve_machine_t mach,
             mu_header_t to_hdr, char *to, mu_header_t from_hdr, char *from)
 {
   int rc;
-  char *value = NULL;
-  if ((rc = mu_header_aget_value (from_hdr, from, &value)))
+  const char *value = NULL;
+  
+  if ((rc = mu_header_sget_value (from_hdr, from, &value)))
     {
       mu_sieve_error (mach, _("cannot get `%s:' header: %s"),
                      from, mu_strerror (rc));
       return rc;
     }
   rc = mu_header_set_value (to_hdr, to, value, 0);
-  free (value);
   return rc;
 }
 
@@ -194,7 +219,7 @@ moderator_message_get_part (mu_sieve_machine_t mach,
   int rc;
   mu_message_t tmp;
   mu_header_t hdr = NULL;
-  char *value;
+  const char *value;
 
   if ((rc = mu_message_get_part (msg, index, &tmp)))
     {
@@ -204,13 +229,12 @@ moderator_message_get_part (mu_sieve_machine_t mach,
     }
   
   mu_message_get_header (tmp, &hdr);
-  if (mu_header_aget_value (hdr, MU_HEADER_CONTENT_TYPE, &value) == 0
+  if (mu_header_sget_value (hdr, MU_HEADER_CONTENT_TYPE, &value) == 0
       && memcmp (value, "message/rfc822", 14) == 0)
     {
       mu_stream_t str;
       mu_body_t body;
 
-      free (value);
       mu_message_get_body (tmp, &body);
       mu_body_get_streamref (body, &str);
 
@@ -229,7 +253,6 @@ moderator_message_get_part (mu_sieve_machine_t mach,
       mu_sieve_error (mach,
                      _("expected message type message/rfc822, but found %s"),
                      value);
-      free (value);
       return 1;
     }
   else
@@ -333,6 +356,7 @@ static mu_sieve_tag_def_t moderator_tags[] = {
   { "keep", SVT_VOID },
   { "address", SVT_STRING },
   { "source", SVT_STRING },
+  { "program", SVT_STRING },
   { NULL }
 };
 
diff --git a/libmu_sieve/extensions/spamd.c b/libmu_sieve/extensions/spamd.c
index f7a6142..fb746e1 100644
--- a/libmu_sieve/extensions/spamd.c
+++ b/libmu_sieve/extensions/spamd.c
@@ -95,7 +95,7 @@ spamd_send_message (mu_stream_t stream, mu_message_t msg)
   rc = mu_message_get_streamref (msg, &mstr);
   if (rc)
     return rc;
-  rc = mu_filter_create (&flt, mstr, "rfc822", MU_FILTER_ENCODE,
+  rc = mu_filter_create (&flt, mstr, "CRLF", MU_FILTER_ENCODE,
                         MU_STREAM_READ|MU_STREAM_SEEK);
   if (rc)
     {
@@ -264,7 +264,7 @@ spamd_test (mu_sieve_machine_t mach, mu_list_t args, 
mu_list_t tags)
   if (mu_sieve_get_debug_level (mach) & MU_SIEVE_DEBUG_TRACE)
     {
       mu_sieve_debug (mach, "spamd_test %lu",
-                  (unsigned long) mu_sieve_get_message_num (mach));
+                     (unsigned long) mu_sieve_get_message_num (mach));
     }
   
   if (mu_sieve_is_dry_run (mach))
diff --git a/libmu_sieve/util.c b/libmu_sieve/util.c
index e775983..943662a 100644
--- a/libmu_sieve/util.c
+++ b/libmu_sieve/util.c
@@ -213,7 +213,7 @@ mu_sieve_error (mu_sieve_machine_t mach, const char *fmt, 
...)
                    MU_LOG_ERROR, MU_LOGMODE_LOCUS);
   if (mach->identifier)
     mu_stream_printf (mach->errstream, "%s: ", mach->identifier);
-  mu_stream_printf (mach->errstream, fmt, ap);
+  mu_stream_vprintf (mach->errstream, fmt, ap);
   mu_stream_write (mach->errstream, "\n", 1, NULL);
   va_end (ap);
 }
diff --git a/sieve/tests/Makefile.am b/sieve/tests/Makefile.am
index 967b60e..3fd4990 100644
--- a/sieve/tests/Makefile.am
+++ b/sieve/tests/Makefile.am
@@ -14,7 +14,7 @@
 # You should have received a copy of the GNU General Public License
 # along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>.
 
-EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 
+EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 moderator.mbox
 DISTCLEANFILES       = atconfig $(check_SCRIPTS)
 MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
 #SUBDIRS = etc
@@ -53,6 +53,7 @@ TESTSUITE_AT = \
   i-casemap.at\
   i-numeric.at\
   i-octet.at\
+  moderator.at\
   mul-addr.at\
   not.at\
   redirect.at\
diff --git a/sieve/tests/moderator.at b/sieve/tests/moderator.at
new file mode 100644
index 0000000..12f1582
--- /dev/null
+++ b/sieve/tests/moderator.at
@@ -0,0 +1,90 @@
+# This file is part of GNU Mailutils. -*- Autotest -*-
+# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+#
+# GNU Mailutils is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3, or (at
+# your option) any later version.
+#
+# GNU Mailutils is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Mailutils.  If not, see <http://www.gnu.org/licenses/>.
+
+m4_pushdef([MUT_SIEVE_EXT_NAME],[moderator])
+
+MUT_SIEVE_EXT_TEST([program discard],[mod00],
+[require "moderator";
+
+moderator :program "discard;";
+],
+[cp ${abs_top_srcdir}/sieve/tests/moderator.mbox mailbox
+chmod +w mailbox
+
+MTA_DIAG=`pwd`/mta.diag
+export MTA_DIAG
+sieve MUT_SIEVE_CMDLINE dnl
+ --clearpath -L "${abs_top_builddir}/libmu_sieve/extensions" -f ./mailbox prog 
|| exit 1
+sed 's/ENVELOPE FROM:.*/ENVELOPE FROM/' ./mta.diag
+],
+[ENVELOPE FROM
+ENVELOPE TO: <address@hidden>
+   0: Subject: confirm 7e02c99a82a21a2349291a4f142ee2347bb5fd0b
+   1: To: address@hidden
+   2:
+END OF MESSAGE
+],
+[DISCARD on msg uid 0: marking as deleted
+MODERATOR on msg uid 1: discarding message
+])
+
+MUT_SIEVE_EXT_TEST([program address discard],[mod01],
+[require "moderator";
+
+moderator :program "discard;" :address "<address@hidden>";
+],
+[cp ${abs_top_srcdir}/sieve/tests/moderator.mbox mailbox
+chmod +w mailbox
+
+MTA_DIAG=`pwd`/mta.diag
+export MTA_DIAG
+sieve MUT_SIEVE_CMDLINE dnl
+ --clearpath -L "${abs_top_builddir}/libmu_sieve/extensions" -f ./mailbox prog 
|| exit 1
+cat ./mta.diag
+],
+[ENVELOPE FROM: address@hidden
+ENVELOPE TO: <address@hidden>
+   0: From: <address@hidden>
+   1: Subject: confirm 7e02c99a82a21a2349291a4f142ee2347bb5fd0b
+   2: To: address@hidden
+   3:
+END OF MESSAGE
+],
+[DISCARD on msg uid 0: marking as deleted
+MODERATOR on msg uid 1: discarding message
+])
+
+MUT_SIEVE_EXT_TEST([program keep],[mod02],
+[require "moderator";
+
+moderator :program "keep;";
+],
+[cp ${abs_top_srcdir}/sieve/tests/moderator.mbox mailbox
+chmod +w mailbox
+
+MTA_DIAG=`pwd`/mta.diag
+export MTA_DIAG
+sieve MUT_SIEVE_CMDLINE dnl
+ --clearpath -L "${abs_top_builddir}/libmu_sieve/extensions" -f ./mailbox prog 
|| exit $?
+test -f ./mta.diag && echo ./mta.diag
+exit 0
+],
+[],
+[KEEP on msg uid 0
+MODERATOR on msg uid 1: keeping message
+])
+
+m4_popdef([MUT_SIEVE_EXT_NAME])
diff --git a/sieve/tests/moderator.mbox b/sieve/tests/moderator.mbox
new file mode 100644
index 0000000..5f73f6c
--- /dev/null
+++ b/sieve/tests/moderator.mbox
@@ -0,0 +1,78 @@
+From address@hidden Sat Jul  2 01:36:47 2005
+Subject: Bug-foobar post from address@hidden requires approval
+From: address@hidden
+To: address@hidden
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="===============1223730756=="
+Message-ID: <address@hidden>
+Date: Fri, 01 Jul 2005 18:35:23 -0400
+Precedence: bulk
+X-BeenThere: address@hidden
+X-Mailman-Version: 2.1.5
+List-Id: Bug reports for GNU foobar <bug-foobar.example.org>
+X-List-Administrivia: yes
+Sender: address@hidden
+Errors-To: address@hidden
+X-IMAPbase: 1292609256 2
+Status: 
+X-UID: 1
+
+--===============1223730756==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+
+As list administrator, your authorization is requested for the
+following mailing list posting:
+
+    List:    address@hidden
+    From:    address@hidden
+    Subject: Problems building foobar
+    Reason:  Post by non-member to a members-only list
+
+At your convenience, visit:
+
+    http://lists.example.org/mailman/admindb/bug-foobar
+        
+to approve or deny the request.
+
+--===============1223730756==
+Content-Type: message/rfc822
+MIME-Version: 1.0
+
+Envelope-to: address@hidden
+Subject: Problems building foobar
+Date: Fri, 1 Jul 2005 15:26:59 -0700
+Message-ID: <address@hidden>
+Thread-Topic: Problems building foobar
+Thread-Index: AcV+i/85qSfLCmCAToipt+481y99vw==
+From: address@hidden
+To: <address@hidden>
+
+Hi,
+
+I'm trying to build foobar under Linux and am getting the following
+error.  Please help.
+
+blah blah blah
+
+--===============1223730756==
+Content-Type: message/rfc822
+MIME-Version: 1.0
+
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: confirm 7e02c99a82a21a2349291a4f142ee2347bb5fd0b
+Sender: address@hidden
+From: address@hidden
+
+If you reply to this message, keeping the Subject: header intact,
+Mailman will discard the held message.  Do this if the message is
+spam.  If you reply to this message and include an Approved: header
+with the list password in it, the message will be approved for posting
+to the list.  The Approved: header can also appear in the first line
+of the body of the reply.
+--===============1223730756==--
+
+
diff --git a/sieve/tests/testsuite.at b/sieve/tests/testsuite.at
index 7f6a161..c51a4dc 100644
--- a/sieve/tests/testsuite.at
+++ b/sieve/tests/testsuite.at
@@ -78,6 +78,27 @@ m4_define([MUT_PREREQ_CAPA],[
 sieve --show-config-options | grep '^$1' > /dev/null 2>&1 || AT_SKIP_TEST
 ])
 
+dnl ------------------------------------------------------------
+m4_define([MUT_SIEVE_EXT_NAME])
+
+dnl ------------------------------------------------------------
+dnl MUT_SIEVE_EXT_TEST([NAME],[KW = `'], [PROG], [TEST],
+dnl                    [STDOUT = `'],[STDERR = `'])
+m4_define([MUT_SIEVE_EXT_TEST],[
+AT_SETUP(MUT_SIEVE_EXT_NAME[: $1])
+AT_KEYWORDS([MUT_SIEVE_EXT_NAME $2])
+
+AT_CHECK([
+MUT_PREREQ_CAPA([HAVE_LIBLTDL])
+
+AT_DATA([prog],[$3])
+$4
+],
+[0],
+[$5],[$6])
+AT_CLEANUP])
+
+
 AT_INIT
 
 AT_TESTED([sieve])
@@ -103,5 +124,7 @@ m4_include([size.at])
 m4_include([redirect.at])
 m4_include([reject.at])
 m4_include([ext.at])
+m4_include([moderator.at])
+
 
 


hooks/post-receive
-- 
GNU Mailutils



reply via email to

[Prev in Thread] Current Thread [Next in Thread]