]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
delimiter: now parsing delimiter is handled directly withing mlmmj_list
authorBaptiste Daroussin <bapt@FreeBSD.org>
Wed, 3 Nov 2021 10:54:27 +0000 (11:54 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Wed, 3 Nov 2021 13:17:22 +0000 (14:17 +0100)
include/getlistdelim.h [deleted file]
src/Makefile.am
src/getlistdelim.c [deleted file]
src/listcontrol.c
src/mlmmj.c
src/prepstdreply.c
tests/Makefile.am
tests/mlmmj.c

diff --git a/include/getlistdelim.h b/include/getlistdelim.h
deleted file mode 100644 (file)
index ee5657e..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2005 Joel Aelwyn <joel@lightbearer.com>
- *
- * $Id$
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- */
-
-#ifndef GETLISTDELIM_H
-#define GETLISTDELIM_H
-
-char *getlistdelim(const char *listdir);
-
-#endif /* GETLISTDELIM_H */
index 23fb1b6549b5b64f36b28eb65d0419ccdda8637c..0a67dcdcf8374106b5b073bfb78c1fd5e7f98934 100644 (file)
@@ -15,8 +15,7 @@ mlmmj_send_SOURCES = mlmmj.c mlmmj-send.c  mail-functions.c itoa.c chomp.c \
                      incindexfile.c checkwait_smtpreply.c  utils.c \
                     mylocking.c init_sockfd.c strgen.c random-int.c \
                     print-version.c log_error.c mygetline.c memory.c \
-                    controls.c getaddrsfromfd.c readn.c \
-                    getlistdelim.c
+                    controls.c getaddrsfromfd.c readn.c
 
 mlmmj_receive_SOURCES = mlmmj-receive.c  random-int.c strgen.c \
                        print-version.c log_error.c dumpfd2fd.c memory.c \
@@ -29,31 +28,30 @@ mlmmj_process_SOURCES = mlmmj.c mlmmj-process.c  find_email_adr.c \
                        do_all_the_voodoo_here.c mygetline.c gethdrline.c \
                        log_error.c controls.c dumpfd2fd.c \
                        subscriberfuncs.c memory.c log_oper.c \
-                       send_list.c readn.c getlistdelim.c unistr.c
+                       send_list.c readn.c unistr.c
 
 mlmmj_sub_SOURCES = mlmmj.c mlmmj-sub.c  mylocking.c \
                         chomp.c random-int.c strgen.c \
                        subscriberfuncs.c print-version.c \
                        log_error.c mygetline.c prepstdreply.c memory.c \
-                       controls.c readn.c getlistdelim.c utils.c \
-                       unistr.c
+                       controls.c readn.c utils.c unistr.c
 
 mlmmj_unsub_SOURCES = mlmmj.c mlmmj-unsub.c  mylocking.c \
                         chomp.c subscriberfuncs.c random-int.c \
                        strgen.c print-version.c log_error.c mygetline.c \
                        prepstdreply.c memory.c controls.c readn.c utils.c \
-                       getlistdelim.c unistr.c
+                       unistr.c
                        
 mlmmj_bounce_SOURCES = mlmmj.c mlmmj-bounce.c print-version.c log_error.c \
                       subscriberfuncs.c strgen.c random-int.c  \
                       prepstdreply.c mygetline.c chomp.c  \
                       memory.c find_email_adr.c gethdrline.c readn.c \
-                      getlistdelim.c unistr.c controls.c utils.c
+                      unistr.c controls.c utils.c
 
 mlmmj_maintd_SOURCES = mlmmj.c mlmmj-maintd.c print-version.c log_error.c mygetline.c \
                       strgen.c random-int.c chomp.c  memory.c \
                       send_digest.c  dumpfd2fd.c utils.c \
-                      mylocking.c log_oper.c readn.c getlistdelim.c \
+                      mylocking.c log_oper.c readn.c \
                       prepstdreply.c gethdrline.c unistr.c controls.c
 
 mlmmj_list_SOURCES = mlmmj-list.c strgen.c  print-version.c memory.c \
diff --git a/src/getlistdelim.c b/src/getlistdelim.c
deleted file mode 100644 (file)
index 903a73f..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 2005 Joel Aelwyn <joel@lightbearer.com>
- *
- * $Id$
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to
- * deal in the Software without restriction, including without limitation the
- * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS+ * IN THE SOFTWARE.
- */
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#include "mlmmj.h"
-#include "getlistdelim.h"
-#include "chomp.h"
-#include "log_error.h"
-#include "mygetline.h"
-#include "strgen.h"
-#include "memory.h"
-
-char *getlistdelim(const char *listdir)
-{
-       char *delimfn, *delimstr;
-       int delimfd;
-
-       delimfn = concatstr(2, listdir, "/control/delimiter");
-       if(-1 != (delimfd = open(delimfn, O_RDONLY))){
-               delimstr = mygetline(delimfd);
-               close(delimfd);
-
-               if(NULL == delimstr){
-                       log_error(LOG_ARGS,
-                                 "FATAL. Could not get list delimiter from %s",
-                                 delimfn);
-                       myfree(delimfn);
-                       exit(EXIT_FAILURE);
-               }
-       
-               chomp(delimstr);
-       
-               if(0 == strlen(delimstr)){
-                       log_error(LOG_ARGS,
-                                 "FATAL. Zero-length delimiter found from %s",
-                                 delimfn);
-                       myfree(delimfn);
-                       exit(EXIT_FAILURE);
-               }
-       } else
-               delimstr = mystrdup(DEFAULT_RECIPDELIM);
-
-       myfree(delimfn);
-
-       return delimstr;
-}
index f5db37686d832fda9933ddbc47f98f8e6a53614b..06eb2f17bc0eaf7ef24025a0174ff0a2e2fa390e 100644 (file)
@@ -34,7 +34,6 @@
 
 #include "mlmmj.h"
 #include "listcontrol.h"
-#include "getlistdelim.h"
 #include "strgen.h"
 #include "prepstdreply.h"
 #include "send_help.h"
index a3575e355b458d615a24c7097fe0c5c0cca03f50..f8a036deebeb069f861fcb8877f20e0e71635a11 100644 (file)
@@ -29,7 +29,6 @@
 #include "memory.h"
 #include "strgen.h"
 #include "mlmmj.h"
-#include "getlistdelim.h"
 #include "controls.h"
 
 void
@@ -77,7 +76,10 @@ mlmmj_list_open(struct mlmmj_list *list)
                mlmmj_list_close(list);
                return (false);
        }
-       list->delim = getlistdelim(list->dir);
+       list->delim = ctrlvalue(list, "delimiter");
+       if (list->delim == NULL)
+               list->delim = mystrdup(DEFAULT_RECIPDELIM);
+
        if (!splitlistaddr(list->addr, &list->name, &list->fqdn)) {
                warnx("%s: is not a valid mailing list address, "
                    "missing '@'", list->addr);
index 4639814dd1e83c6ea28cd7653dcccc0cd6304abd..a020eb66c0f1702b774400323e5eacd41f5e0ee8 100644 (file)
@@ -41,7 +41,6 @@
 #include "wrappers.h"
 #include "memory.h"
 #include "mlmmj.h"
-#include "getlistdelim.h"
 #include "unistr.h"
 
 
index 24d0fcb82f5b828b5e8f6d3ded87783f35486c8d..df7d531f101a38a118afdad1977c91bacadfbd30 100644 (file)
@@ -6,7 +6,7 @@ mlmmj_SOURCES = mlmmj.c $(top_srcdir)/src/prepstdreply.c $(top_srcdir)/include/p
               $(top_srcdir)/src/memory.c $(top_srcdir)/src/controls.c $(top_srcdir)/src/utils.c \
               $(top_srcdir)/src/strgen.c $(top_srcdir)/src/random-int.c $(top_srcdir)/src/readn.c \
               $(top_srcdir)/src/log_error.c $(top_srcdir)/src/chomp.c $(top_srcdir)/src/mygetline.c $(top_srcdir)/src/unistr.c \
-              $(top_srcdir)/src/mlmmj.c $(top_srcdir)/src/getlistdelim.c
+              $(top_srcdir)/src/mlmmj.c
 mlmmj_CFLAGS = @ATF_CFLAGS@ -g -Wall -pedantic -Wsign-compare -DDEFAULTTEXTDIR='"@textlibdir@"' -I$(top_srcdir)/include
 mlmmj_LDADD =  @ATF_LIBS@
 
index 7797ebb8c2f2fa6c8591d46716f52b5424fda3c0..43b6821466633839c598760375fe3c76224fb856 100644 (file)
@@ -153,6 +153,15 @@ ATF_TC_BODY(mlmmj_list, tc)
        mlmmj_list_init(&list);
        list.dir = "list";
        ATF_CHECK(mlmmj_list_open(&list) == true);
+       ATF_CHECK_STREQ_MSG(list.delim, "+", "Invalid delimiter");
+
+       fp = fopen("list/control/delimiter", "w");
+       fputs("#bla#", fp);
+       fclose(fp);
+       mlmmj_list_init(&list);
+       list.dir = "list";
+       ATF_CHECK(mlmmj_list_open(&list) == true);
+       ATF_CHECK_STREQ_MSG(list.delim, "#bla#", "Invalid delimiter");
        fclose(f);
 }