X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Frouters%2Fiplookup.c;h=21a65f30e26661efc34adf94c468ff7d3539822a;hb=a06afb97d53eb100c7f1b5b00da746d071d52415;hp=ff67af38dd8b512832ee8c1aca559829533e3379;hpb=c8f419afe4b673ce93b7db07eb3093d8a07afb5f;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/routers/iplookup.c b/src/src/routers/iplookup.c index ff67af38d..21a65f30e 100644 --- a/src/src/routers/iplookup.c +++ b/src/src/routers/iplookup.c @@ -21,21 +21,21 @@ optionlist iplookup_router_options[] = { { "hosts", opt_stringptr, - (void *)(offsetof(iplookup_router_options_block, hosts)) }, + OPT_OFF(iplookup_router_options_block, hosts) }, { "optional", opt_bool, - (void *)(offsetof(iplookup_router_options_block, optional)) }, + OPT_OFF(iplookup_router_options_block, optional) }, { "port", opt_int, - (void *)(offsetof(iplookup_router_options_block, port)) }, + OPT_OFF(iplookup_router_options_block, port) }, { "protocol", opt_stringptr, - (void *)(offsetof(iplookup_router_options_block, protocol_name)) }, + OPT_OFF(iplookup_router_options_block, protocol_name) }, { "query", opt_stringptr, - (void *)(offsetof(iplookup_router_options_block, query)) }, + OPT_OFF(iplookup_router_options_block, query) }, { "reroute", opt_stringptr, - (void *)(offsetof(iplookup_router_options_block, reroute)) }, + OPT_OFF(iplookup_router_options_block, reroute) }, { "response_pattern", opt_stringptr, - (void *)(offsetof(iplookup_router_options_block, response_pattern)) }, + OPT_OFF(iplookup_router_options_block, response_pattern) }, { "timeout", opt_time, - (void *)(offsetof(iplookup_router_options_block, timeout)) } + OPT_OFF(iplookup_router_options_block, timeout) } }; /* Size of the options list. An extern variable has to be used so that its @@ -160,7 +160,7 @@ uschar *reply; uschar *hostname, *reroute, *domain; const uschar *listptr; uschar host_buffer[256]; -host_item *host = store_get(sizeof(host_item)); +host_item *host = store_get(sizeof(host_item), FALSE); address_item *new_addr; iplookup_router_options_block *ob = (iplookup_router_options_block *)(rblock->options_block); @@ -176,7 +176,7 @@ pw = pw; DEBUG(D_route) debug_printf("%s router called for %s: domain = %s\n", rblock->name, addr->address, addr->domain); -reply = store_get(256); +reply = store_get(256, TRUE); /* tainted data */ /* Build the query string to send. If not explicitly given, a default of "user@domain user@domain" is used. */ @@ -279,7 +279,7 @@ while ((hostname = string_nextinlist(&listptr, &sep, host_buffer, /* Read the response and close the socket. If the read fails, try the next IP address. */ - count = ip_recv(&query_cctx, reply, sizeof(reply) - 1, ob->timeout); + count = ip_recv(&query_cctx, reply, sizeof(reply) - 1, time(NULL) + ob->timeout); (void)close(query_cctx.sock); if (count <= 0) {