Browse Source

Avoid descriptors leak in lua_http.

tags/0.8.0
Vsevolod Stakhov 9 years ago
parent
commit
ac4f36baa1
1 changed files with 7 additions and 0 deletions
  1. 7
    0
      src/lua/lua_http.c

+ 7
- 0
src/lua/lua_http.c View File

@@ -45,6 +45,7 @@ struct lua_http_cbdata {
struct event_base *ev_base;
struct timeval tv;
rspamd_inet_addr_t addr;
gint fd;
gint cbref;
};

@@ -77,6 +78,10 @@ lua_http_fin (gpointer arg)
rspamd_http_message_free (cbd->msg);
}

if (cbd->fd != -1) {
close (cbd->fd);
}

g_slice_free1 (sizeof (struct lua_http_cbdata), cbd);
}

@@ -151,6 +156,7 @@ lua_http_make_connection (struct lua_http_cbdata *cbd)
msg_info ("cannot connect to %v", cbd->msg->host);
return FALSE;
}
cbd->fd = fd;
cbd->conn = rspamd_http_connection_new (NULL, lua_http_error_handler,
lua_http_finish_handler, RSPAMD_HTTP_CLIENT_SIMPLE, RSPAMD_HTTP_CLIENT);

@@ -333,6 +339,7 @@ lua_http_request (lua_State *L)
cbd->msg = msg;
cbd->ev_base = ev_base;
msec_to_tv (timeout, &cbd->tv);
cbd->fd = -1;
if (session) {
cbd->session = session;
register_async_event (session,

Loading…
Cancel
Save