Use evhttp_connection's closecb instead of our fail_cb extension

The closecb callback of evhttp_connection does what we need, so no need
to use that extension anymore.
This commit is contained in:
Julien BLACHE 2010-02-14 09:34:29 +01:00
parent b474166e8d
commit 18abda3a97
3 changed files with 15 additions and 19 deletions

View File

@ -127,9 +127,7 @@ static pthread_t tid_httpd;
static void static void
stream_end(struct stream_ctx *st, int failed) stream_end(struct stream_ctx *st, int failed)
{ {
/* This is an extension to the stock evhttp */ evhttp_connection_set_closecb(st->req->evcon, NULL, NULL);
st->req->fail_cb = NULL;
st->req->fail_cb_arg = NULL;
if (!failed) if (!failed)
evhttp_send_reply_end(st->req); evhttp_send_reply_end(st->req);
@ -292,7 +290,7 @@ stream_chunk_raw_cb(int fd, short event, void *arg)
} }
static void static void
stream_fail_cb(struct evhttp_request *req, void *arg) stream_fail_cb(struct evhttp_connection *evcon, void *arg)
{ {
struct stream_ctx *st; struct stream_ctx *st;
@ -583,9 +581,7 @@ httpd_stream_file(struct evhttp_request *req, int id)
} }
#endif #endif
/* This is an extension to the stock evhttp */ evhttp_connection_set_closecb(req->evcon, stream_fail_cb, st);
req->fail_cb = stream_fail_cb;
req->fail_cb_arg = st;
DPRINTF(E_INFO, L_HTTPD, "Kicking off streaming for %s\n", mfi->path); DPRINTF(E_INFO, L_HTTPD, "Kicking off streaming for %s\n", mfi->path);

View File

@ -589,7 +589,7 @@ daap_session_find(struct evhttp_request *req, struct evkeyvalq *query, struct ev
/* Update requests helpers */ /* Update requests helpers */
static void static void
update_fail_cb(struct evhttp_request *req, void *arg) update_fail_cb(struct evhttp_connection *evcon, void *arg)
{ {
struct daap_update_request *ur; struct daap_update_request *ur;
struct daap_update_request *p; struct daap_update_request *p;
@ -598,6 +598,8 @@ update_fail_cb(struct evhttp_request *req, void *arg)
DPRINTF(E_DBG, L_DAAP, "Update request: client closed connection\n"); DPRINTF(E_DBG, L_DAAP, "Update request: client closed connection\n");
evhttp_connection_set_closecb(ur->req->evcon, NULL, NULL);
if (ur == update_requests) if (ur == update_requests)
update_requests = ur->next; update_requests = ur->next;
else else
@ -1179,12 +1181,10 @@ daap_reply_update(struct evhttp_request *req, struct evbuffer *evbuf, char **uri
ur->next = update_requests; ur->next = update_requests;
update_requests = ur; update_requests = ur;
/* Set fail_cb; this is an extension to the stock evhttp and will /* If the connection fails before we have an update to push out
* get called if the connection fails before we have an update to * to the client, we need to know.
* push out to the client.
*/ */
req->fail_cb = update_fail_cb; evhttp_connection_set_closecb(req->evcon, update_fail_cb, ur);
req->fail_cb_arg = ur;
} }
static void static void

View File

@ -67,7 +67,7 @@ static struct dacp_update_request *update_requests;
/* Update requests helpers */ /* Update requests helpers */
static void static void
update_fail_cb(struct evhttp_request *req, void *arg) update_fail_cb(struct evhttp_connection *evcon, void *arg)
{ {
struct dacp_update_request *ur; struct dacp_update_request *ur;
struct dacp_update_request *p; struct dacp_update_request *p;
@ -76,6 +76,8 @@ update_fail_cb(struct evhttp_request *req, void *arg)
DPRINTF(E_DBG, L_DACP, "Update request: client closed connection\n"); DPRINTF(E_DBG, L_DACP, "Update request: client closed connection\n");
evhttp_connection_set_closecb(ur->req->evcon, NULL, NULL);
if (ur == update_requests) if (ur == update_requests)
update_requests = ur->next; update_requests = ur->next;
else else
@ -306,12 +308,10 @@ dacp_reply_playstatusupdate(struct evhttp_request *req, struct evbuffer *evbuf,
ur->next = update_requests; ur->next = update_requests;
update_requests = ur; update_requests = ur;
/* Set fail_cb; this is an extension to the stock evhttp and will /* If the connection fails before we have an update to push out
* get called if the connection fails before we have an update to * to the client, we need to know.
* push out to the client.
*/ */
req->fail_cb = update_fail_cb; evhttp_connection_set_closecb(req->evcon, update_fail_cb, ur);
req->fail_cb_arg = ur;
} }
static void static void