diff --git a/src/backend.c b/src/backend.c index 1c79948..8eb4f68 100644 --- a/src/backend.c +++ b/src/backend.c @@ -87,16 +87,24 @@ f2b_backend_destroy(f2b_backend_t *backend) { free(backend); } -bool -f2b_backend_ban(f2b_backend_t *backend, const char *ip) { - assert(backend != NULL); +#define BACKEND_CMD_ARG0(CMD) \ +bool \ +f2b_backend_ ## CMD(f2b_backend_t *backend) { \ + assert(backend != NULL); \ + return backend->CMD(backend->cfg); \ +} - return backend->ban(backend->cfg, ip); +#define BACKEND_CMD_ARG1(CMD) \ +bool \ +f2b_backend_ ## CMD(f2b_backend_t *backend, const char *ip) { \ + assert(backend != NULL); \ + return backend->CMD(backend->cfg, ip); \ } -bool -f2b_backend_unban(f2b_backend_t *backend, const char *ip) { - assert(backend != NULL); +BACKEND_CMD_ARG0(ping) +BACKEND_CMD_ARG0(start) +BACKEND_CMD_ARG0(stop) - return backend->unban(backend->cfg, ip); -} +BACKEND_CMD_ARG1(check) +BACKEND_CMD_ARG1(ban) +BACKEND_CMD_ARG1(unban) diff --git a/src/backend.h b/src/backend.h index 779f6ab..c88b640 100644 --- a/src/backend.h +++ b/src/backend.h @@ -22,7 +22,12 @@ typedef struct f2b_backend_t { f2b_backend_t * f2b_backend_create (f2b_config_section_t *config, const char *id); void f2b_backend_destroy(f2b_backend_t *b); +bool f2b_backend_start (f2b_backend_t *b); +bool f2b_backend_stop (f2b_backend_t *b); +bool f2b_backend_ping (f2b_backend_t *b); + bool f2b_backend_ban (f2b_backend_t *b, const char *ip); +bool f2b_backend_check (f2b_backend_t *b, const char *ip); bool f2b_backend_unban (f2b_backend_t *b, const char *ip); #endif /* BACKEND_H_ */