]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
controls: add a helper to convert control to timet safely
authorBaptiste Daroussin <bapt@FreeBSD.org>
Tue, 2 Nov 2021 17:13:45 +0000 (18:13 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Wed, 3 Nov 2021 13:10:28 +0000 (14:10 +0100)
include/controls.h
src/Makefile.am
src/controls.c

index 19bc9ab3a1f9a57c9d1df6e6608a38d86071c22b..2f563d2a0b1e3c1bc57d635b5f5866d193c3ff31 100644 (file)
@@ -30,5 +30,6 @@ char *ctrlvalue(struct mlmmj_list *list, const char *ctrlstr);
 char *ctrlcontent(struct mlmmj_list *list, const char *ctrlstr);
 char *textcontent(struct mlmmj_list *list, const char *ctrlstr);
 struct strlist *ctrlvalues(struct mlmmj_list *list, const char *ctrlstr);
+time_t ctrltimet(struct mlmmj_list *list, const char *ctrlstr);
 
 #endif /* STATCTRL_H */
index 60e75fe1d0879e5d384261e68ea70239a86d26ea..3080418ddbea2b5774c1e5d23307a2694bfd27db 100644 (file)
@@ -27,7 +27,7 @@ mlmmj_process_SOURCES = mlmmj.c mlmmj-process.c  find_email_adr.c \
                        mylocking.c listcontrol.c random-int.c strgen.c \
                        print-version.c send_help.c prepstdreply.c \
                        do_all_the_voodoo_here.c mygetline.c gethdrline.c \
-                       log_error.c controls.c dumpfd2fd.c \
+                       log_error.c controls.c dumpfd2fd.c utils.c \
                        subscriberfuncs.c memory.c log_oper.c \
                        send_list.c readn.c getlistdelim.c unistr.c
 
@@ -35,20 +35,20 @@ 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 \
+                       controls.c readn.c getlistdelim.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 \
+                       prepstdreply.c memory.c controls.c readn.c utils.c \
                        getlistdelim.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
+                      getlistdelim.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 \
index fbe671d01c28290531b5f2ce9b8bd50cfb72cc37..07e7e15d35b717271878fae54572b23e30b80683 100644 (file)
@@ -35,6 +35,7 @@
 #include "memory.h"
 #include "log_error.h"
 #include "chomp.h"
+#include "utils.h"
 
 static void
 open_control(struct mlmmj_list *list)
@@ -167,3 +168,17 @@ statctrl(struct mlmmj_list *list, const char *ctrlstr)
 
        return 1;
 }
+
+time_t
+ctrltimet(struct mlmmj_list *list, const char *ctrlstr)
+{
+       const char *errstr;
+       char *val = ctrlvalue(list, ctrlstr);
+       time_t ret;
+
+       ret = strtotimet(val, &errstr);
+       if (errstr != NULL) {
+               log_error(LOG_ARGS, "Invalid value for '%s': %s", ctrlstr, errstr);
+       }
+       return (ret);
+}