116 msg_fatal(
"usage: %s [-c config_dir] [-v] class service request", myname);
121 int main(
int argc,
char **argv)
142 for (fd = 0; fd < 3; fd++)
143 if (
fstat(fd, &st) == -1
144 && (close(fd), open(
"/dev/null", O_RDWR, 0)) != fd)
157 if ((slash = strrchr(argv[0],
'/')) != 0 && slash[1])
165 while ((c =
GETOPT(argc, argv,
"c:v")) > 0) {
178 if (argc != optind + 3)
180 class = argv[optind];
181 service = argv[optind + 1];
182 request = argv[optind + 2];
198 if (
mail_trigger(
class, service, request, strlen(request)) < 0) {
199 msg_warn(
"Cannot contact class %s service %s - perhaps the mail system is down",
char * mystrdup(const char *str)
char * var_import_environ
void set_mail_conf_str(const char *, const char *)
ARGV * argv_free(ARGV *argvp)
#define VAR_IMPORT_ENVIRON
int mail_trigger(const char *, const char *, const char *, ssize_t)
void mail_conf_read(void)
ARGV * mail_parm_split(const char *name, const char *value)
char * safe_getenv(const char *)
void msg_warn(const char *fmt,...)
#define MAIL_VERSION_STAMP_ALLOCATE
NORETURN msg_fatal(const char *fmt,...)
void update_env(char **preserve_list)
#define GETOPT(argc, argv, str)
MAIL_VERSION_STAMP_DECLARE
void msg_vstream_init(const char *name, VSTREAM *vp)
void event_drain(int time_limit)
int main(int argc, char **argv)