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 */
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
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 \
#include "memory.h"
#include "log_error.h"
#include "chomp.h"
+#include "utils.h"
static void
open_control(struct mlmmj_list *list)
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);
+}