struct redirector_param *param = (struct redirector_param *)arg;
char url_buf[1024];
int r;
- struct timeval timeout;
+ struct timeval *timeout;
char *p, *c;
switch (param->state) {
case STATE_CONNECT:
/* We have write readiness after connect call, so reinit event */
if (what == EV_WRITE) {
- timeout.tv_sec = surbl_module_ctx->read_timeout / 1000;
- timeout.tv_usec = surbl_module_ctx->read_timeout - timeout.tv_sec * 1000;
+ timeout = memory_pool_alloc (param->task->task_pool, sizeof (struct timeval));
+ timeout->tv_sec = surbl_module_ctx->read_timeout / 1000;
+ timeout->tv_usec = surbl_module_ctx->read_timeout - timeout->tv_sec * 1000;
event_del (¶m->ev);
event_set (¶m->ev, param->sock, EV_READ | EV_PERSIST, redirector_callback, (void *)param);
- event_add (¶m->ev, &timeout);
+ event_add (¶m->ev, timeout);
r = snprintf (url_buf, sizeof (url_buf), "GET %s HTTP/1.0\r\n\r\n", struri (param->url));
if (write (param->sock, url_buf, r) == -1) {
msg_err ("redirector_callback: write failed %s", strerror (errno));
{
int s;
struct redirector_param *param;
- struct timeval timeout;
+ struct timeval *timeout;
s = make_tcp_socket (&surbl_module_ctx->redirector_addr, surbl_module_ctx->redirector_port, FALSE);
param->state = STATE_CONNECT;
param->sock = s;
param->tree = url_tree;
- timeout.tv_sec = surbl_module_ctx->connect_timeout / 1000;
- timeout.tv_usec = surbl_module_ctx->connect_timeout - timeout.tv_sec * 1000;
+ timeout = memory_pool_alloc (task->task_pool, sizeof (struct timeval));
+ timeout->tv_sec = surbl_module_ctx->connect_timeout / 1000;
+ timeout->tv_usec = surbl_module_ctx->connect_timeout - timeout->tv_sec * 1000;
event_set (¶m->ev, s, EV_WRITE, redirector_callback, (void *)param);
- event_add (¶m->ev, &timeout);
+ event_add (¶m->ev, timeout);
}
static gboolean
if ((defined($cfg{check_regexp}) && $request->uri !~ $cfg{check_regexp}) ||
(defined($cfg{check_domains}) && scalar(grep {$_ eq $domain} @{$cfg{check_domains}}) == 0)) {
- write_log ($heap->{remote_ip}, "Uri is not checked: " . $request->uri);
+ write_log ($heap->{remote_ip}, "Uri is not checked: " . $request->uri) if $cfg{debug};
my $new_response = HTTP::Response->new(200);
$new_response->header("Uri", $request->uri);
$new_response->header("Connection", "close");