Browse Source

[Fix] Fix case when DNS resolver is not initialized

tags/1.2.0
Vsevolod Stakhov 8 years ago
parent
commit
3e2474ff37
1 changed files with 17 additions and 7 deletions
  1. 17
    7
      src/libutil/map.c

+ 17
- 7
src/libutil/map.c View File

@@ -214,7 +214,10 @@ free_http_cbdata (struct http_callback_data *cbd)
rspamd_pubkey_unref (cbd->pk);
}

rspamd_http_connection_free (cbd->conn);
if (cbd->conn) {
rspamd_http_connection_free (cbd->conn);
}

if (cbd->fd != -1) {
close (cbd->fd);
}
@@ -616,6 +619,7 @@ http_callback (gint fd, short what, void *ud)
cbd->out_fd = mkstemp (tmpbuf);

if (cbd->out_fd == -1) {
g_slice_free1 (sizeof (*cbd), cbd);
msg_err_pool ("cannot create tempfile: %s", strerror (errno));
return;
}
@@ -634,12 +638,18 @@ http_callback (gint fd, short what, void *ud)

msg_debug_pool ("reading map data from %s", data->host);
/* Send both A and AAAA requests */
rdns_make_request_full (map->r->r, rspamd_map_dns_callback, cbd,
map->cfg->dns_timeout, map->cfg->dns_retransmits, 1,
data->host, RDNS_REQUEST_A);
rdns_make_request_full (map->r->r, rspamd_map_dns_callback, cbd,
map->cfg->dns_timeout, map->cfg->dns_retransmits, 1,
data->host, RDNS_REQUEST_AAAA);
if (map->r->r) {
rdns_make_request_full (map->r->r, rspamd_map_dns_callback, cbd,
map->cfg->dns_timeout, map->cfg->dns_retransmits, 1,
data->host, RDNS_REQUEST_A);
rdns_make_request_full (map->r->r, rspamd_map_dns_callback, cbd,
map->cfg->dns_timeout, map->cfg->dns_retransmits, 1,
data->host, RDNS_REQUEST_AAAA);
}
else {
msg_warn_pool ("cannot load map: DNS resolver is not initialized");
free_http_cbdata (cbd);
}
}

/* Start watching event for all maps */

Loading…
Cancel
Save