From aa4d426b4d3527d7e166df1a05058c9a4a0f6683 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 30 Apr 2021 00:33:56 +0200 Subject: initial/final commit --- utilities.h | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 utilities.h (limited to 'utilities.h') diff --git a/utilities.h b/utilities.h new file mode 100644 index 0000000..23044ca --- /dev/null +++ b/utilities.h @@ -0,0 +1,83 @@ +#ifndef UTILITIES_H +#define UTILITIES_H + +#include +#include + +#ifdef __cplusplus +#include "vmime/vmime.hpp" + +vmime::shared_ptr +windows_root_certs_verifier(void); + +extern "C" { +#endif + +enum bool_param { + PARAM_NO, + PARAM_YES, + PARAM_NOT_GIVEN +}; + +struct config { + const char *host; + const char *login; + const char *password; + const char *subject; + const char *reply_to; + const char *from; + const char *dest_dir; + const char **files; + size_t nfiles; + const char *msg_body; + size_t msg_size; + const char **to; + size_t nto; + int port_POP3; + int port_SMTP; + enum bool_param use_SSL; + enum bool_param use_AUTH; + int timeout; + enum bool_param del_msgs; + enum bool_param save_body; + enum bool_param save_subj; +}; + +void _finish(bool ok); +#define PRINT_ERROR(message...) \ + ((fprintf(stderr, message) && false) || fprintf(stderr, "\r\n")) +#define FAIL(message...) _finish(PRINT_ERROR(message) && false) +#define FAIL_NOMSG() _finish(false) +#define SUCCEED() _finish(true) + +void *dirtyalloc(size_t size); + +void read_config(const char *filename, struct config *config); + +void get_config(int argc, const char **argv, struct config *config); + +int dummy_errback(const char *fmt, ...); + +int provisional_wide_char_fgetc(FILE *stream); + +bool is_valid_port_number(int port); + +void free_config(struct config *config); + +void validate_config(struct config *config); + +void perform_work(const struct config *config); + +inline static bool is_empty_string(const char *string) +{ + return string == NULL || *string == '\0'; +} + +#define MESSAGES_EXTERN +#include "messages.c" + +#ifdef __cplusplus +} +#endif + +#endif /* UTILITIES_H */ -- cgit v1.2.3