1/* vi: set sw=4 ts=4: */ 2/* 3 * helper routines 4 * 5 * Copyright (C) 2008 by Vladimir Dronnikov <dronnikov@gmail.com> 6 * 7 * Licensed under GPLv2, see file LICENSE in this source tree. 8 */ 9 10struct globals { 11 pid_t helper_pid; 12 unsigned timeout; 13 unsigned verbose; 14 unsigned opts; 15 char *user; 16 char *pass; 17 FILE *fp0; // initial stdin 18 char *opt_charset; 19}; 20 21#define G (*ptr_to_globals) 22#define timeout (G.timeout ) 23#define verbose (G.verbose ) 24#define opts (G.opts ) 25#define INIT_G() do { \ 26 SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \ 27 G.opt_charset = (char *)CONFIG_FEATURE_MIME_CHARSET; \ 28} while (0) 29 30//char FAST_FUNC *parse_url(char *url, char **user, char **pass); 31 32void launch_helper(const char **argv) FAST_FUNC; 33void get_cred_or_die(int fd) FAST_FUNC; 34 35char *send_mail_command(const char *fmt, const char *param) FAST_FUNC; 36 37void encode_base64(char *fname, const char *text, const char *eol) FAST_FUNC; 38