1 2struct globals { 3 pid_t helper_pid; 4 unsigned timeout; 5 unsigned opts; 6 char *user; 7 char *pass; 8 FILE *fp0; // initial stdin 9 char *opt_charset; 10 char *content_type; 11}; 12 13#define G (*ptr_to_globals) 14#define timeout (G.timeout ) 15#define opts (G.opts ) 16//#define user (G.user ) 17//#define pass (G.pass ) 18//#define fp0 (G.fp0 ) 19//#define opt_charset (G.opt_charset) 20//#define content_type (G.content_type) 21#define INIT_G() do { \ 22 SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \ 23 G.opt_charset = (char *)CONFIG_FEATURE_MIME_CHARSET; \ 24 G.content_type = (char *)"text/plain"; \ 25} while (0) 26 27//char FAST_FUNC *parse_url(char *url, char **user, char **pass); 28 29void FAST_FUNC launch_helper(const char **argv); 30void FAST_FUNC get_cred_or_die(int fd); 31 32const FAST_FUNC char *command(const char *fmt, const char *param); 33 34void FAST_FUNC encode_base64(char *fname, const char *text, const char *eol); 35