X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=postlicyd%2Fiplist.c;h=867f88b7757e965418dfe6fba7aa5b0152373925;hb=ae0c2eb5d2ea501fd9e458fc138696c268a14569;hp=3c14fda47e2fbca60adc442f508055a41b30cf4f;hpb=f47b916bf7581b0070431eb70f43710e4c79fc98;p=apps%2Fpfixtools.git diff --git a/postlicyd/iplist.c b/postlicyd/iplist.c index 3c14fda..867f88b 100644 --- a/postlicyd/iplist.c +++ b/postlicyd/iplist.c @@ -299,7 +299,7 @@ static bool rbl_filter_constructor(filter_t *filter) lock = false; } else { PARSE_CHECK(false, "illegal locking state %.*s", - p - current, current); + (int)(p - current), current); } break; @@ -307,7 +307,7 @@ static bool rbl_filter_constructor(filter_t *filter) weight = strtol(current, &next, 10); PARSE_CHECK(next == p && weight >= 0 && weight <= 1024, "illegal weight value %.*s", - (p - current), current); + (int)(p - current), current); break; case 2: @@ -342,7 +342,7 @@ static bool rbl_filter_constructor(filter_t *filter) weight = strtol(current, &next, 10); PARSE_CHECK(next == p && weight >= 0 && weight <= 1024, "illegal weight value %.*s", - (p - current), current); + (int)(p - current), current); break; case 1: @@ -378,7 +378,7 @@ static bool rbl_filter_constructor(filter_t *filter) } }} - PARSE_CHECK(data->rbls.len, + PARSE_CHECK(data->rbls.len || data->host_offsets.len, "no file parameter in the filter %s", filter->name); filter->data = data; return true; @@ -391,7 +391,8 @@ static void rbl_filter_destructor(filter_t *filter) filter->data = data; } -static filter_result_t rbl_filter(const filter_t *filter, const query_t *query) +static filter_result_t rbl_filter(const filter_t *filter, const query_t *query, + filter_context_t *context) { uint32_t ip; int32_t sum = 0; @@ -450,7 +451,8 @@ static filter_result_t rbl_filter(const filter_t *filter, const query_t *query) static int rbl_init(void) { filter_type_t type = filter_register("iplist", rbl_filter_constructor, - rbl_filter_destructor, rbl_filter); + rbl_filter_destructor, rbl_filter, + NULL, NULL); /* Hooks. */ (void)filter_hook_register(type, "abort"); @@ -458,6 +460,7 @@ static int rbl_init(void) (void)filter_hook_register(type, "fail"); (void)filter_hook_register(type, "hard_match"); (void)filter_hook_register(type, "soft_match"); + (void)filter_hook_register(type, "async"); /* Parameters. */