diff options
Diffstat (limited to 'contrib/ipfilter/lib/save_execute.c')
-rw-r--r-- | contrib/ipfilter/lib/save_execute.c | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/contrib/ipfilter/lib/save_execute.c b/contrib/ipfilter/lib/save_execute.c deleted file mode 100644 index 68a3a3754900..000000000000 --- a/contrib/ipfilter/lib/save_execute.c +++ /dev/null @@ -1,80 +0,0 @@ -#include "ipf.h" -#include "ipmon.h" - -static void *execute_parse(char **); -static void execute_destroy(void *); -static int execute_send(void *, ipmon_msg_t *); -static void execute_print(void *); - -typedef struct execute_opts_s { - char *path; -} execute_opts_t; - -ipmon_saver_t executesaver = { - "execute", - execute_destroy, - NULL, /* dup */ - NULL, /* match */ - execute_parse, - execute_print, - execute_send -}; - - -static void * -execute_parse(char **strings) -{ - execute_opts_t *ctx; - - ctx = calloc(1, sizeof(*ctx)); - - if (ctx != NULL && strings[0] != NULL && strings[0][0] != '\0') { - ctx->path = strdup(strings[0]); - - } else { - free(ctx); - return NULL; - } - - return ctx; -} - - -static void -execute_print(ctx) - void *ctx; -{ - execute_opts_t *exe = ctx; - - printf("%s", exe->path); -} - - -static void -execute_destroy(ctx) - void *ctx; -{ - execute_opts_t *exe = ctx; - - if (exe != NULL) - free(exe->path); - free(exe); -} - - -static int -execute_send(ctx, msg) - void *ctx; - ipmon_msg_t *msg; -{ - execute_opts_t *exe = ctx; - FILE *fp; - - fp = popen(exe->path, "w"); - if (fp != NULL) { - fwrite(msg->imm_msg, msg->imm_msglen, 1, fp); - pclose(fp); - } - return 0; -} - |