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 10 struct globals { 11 pid_t helper_pid; 12 unsigned timeout; 13 unsigned verbose; 14 char *user; 15 char *pass; 16 FILE *fp0; // initial stdin 17 char *opt_charset; 18 }; 19 20 #define G (*ptr_to_globals) 21 #define INIT_G() do { \ 22 SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \ 23 G.opt_charset = (char *)CONFIG_FEATURE_MIME_CHARSET; \ 24 } while (0) 25 26 //char FAST_FUNC *parse_url(char *url, char **user, char **pass); 27 28 void launch_helper(const char **argv) FAST_FUNC; 29 void get_cred_or_die(int fd) FAST_FUNC; 30 31 void send_r_n(const char *s) FAST_FUNC; 32 char *send_mail_command(const char *fmt, const char *param) FAST_FUNC; 33 34 void printbuf_base64(const char *buf, unsigned len) FAST_FUNC; 35 void printstr_base64(const char *buf) FAST_FUNC; 36 void printfile_base64(const char *fname) FAST_FUNC; 37