+++ /dev/null
-/* 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 */
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 \
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 \
+++ /dev/null
-/* 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;
-}
#include "mlmmj.h"
#include "listcontrol.h"
-#include "getlistdelim.h"
#include "strgen.h"
#include "prepstdreply.h"
#include "send_help.h"
#include "memory.h"
#include "strgen.h"
#include "mlmmj.h"
-#include "getlistdelim.h"
#include "controls.h"
void
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);
#include "wrappers.h"
#include "memory.h"
#include "mlmmj.h"
-#include "getlistdelim.h"
#include "unistr.h"
$(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@
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);
}