blob: fa0c5b3785be5a9345933828d4dbcbcb7e1d1280
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 | 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 | |
32 | void launch_helper(const char **argv) FAST_FUNC; |
33 | void get_cred_or_die(int fd) FAST_FUNC; |
34 | |
35 | char *send_mail_command(const char *fmt, const char *param) FAST_FUNC; |
36 | |
37 | void encode_base64(char *fname, const char *text, const char *eol) FAST_FUNC; |
38 |