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