1 /* common stuff for cgi-fcgi-interp and prefork-interp */
16 #include <sys/types.h>
18 #include <sys/utsname.h>
19 #include <sys/socket.h>
30 #include <nettle/sha.h>
33 #include "timespeccmp.h"
37 extern const char *interp, *ident, *script, *socket_path, *lock_path;
39 extern struct sha256_ctx identsc;
41 extern const char our_name[];
43 bool find_run_base_var_run(void);
44 void find_socket_path(void);
46 int acquire_lock(void);
48 extern const struct cmdinfo cmdinfos[];
50 void process_opts(const char *const **argv_io);
52 void vmsgcore(int estatus, int errnoval, const char *fmt, va_list al);
54 #define DEF_MSG(func, attrs, estatus, errnoval, after) \
55 static void func(const char *fmt, ...) \
56 __attribute__((unused, format(printf,1,2))) attrs; \
57 static void func(const char *fmt, ...) { \
60 vmsgcore(estatus,errnoval,fmt,al); \
64 DEF_MSG(warninge, /*empty*/, 0, errno, { });
65 DEF_MSG(warning , /*empty*/, 0, 0, { });
67 #define DEF_DIE(func, errnoval) \
68 DEF_MSG(func, __attribute__((noreturn)), 127, errnoval, { abort(); })
75 void fusagemessage(FILE *f);
76 void usagemessage(void);
77 void of_help(const struct cmdinfo *ci, const char *val);
78 void of_iassign(const struct cmdinfo *ci, const char *val);
79 void ident_addstring(const struct cmdinfo *ci, const char *string);
80 void off_ident_addenv(const struct cmdinfo *ci, const char *name);