mirror of
https://github.com/owntone/owntone-server.git
synced 2024-12-27 23:55:57 -05:00
[httpd] Change prototype for the close connection callback
Don't include hreq since it isn't fully valid, so caller shouldn't be invited to dereference it.
This commit is contained in:
parent
18a80f15dd
commit
e94838925e
@ -837,7 +837,7 @@ stream_chunk_raw_cb(int fd, short event, void *arg)
|
||||
}
|
||||
|
||||
static void
|
||||
stream_fail_cb(struct httpd_request *hreq, void *arg)
|
||||
stream_fail_cb(void *arg)
|
||||
{
|
||||
struct stream_ctx *st = arg;
|
||||
|
||||
|
@ -300,7 +300,7 @@ update_refresh_cb(int fd, short event, void *arg)
|
||||
}
|
||||
|
||||
static void
|
||||
update_fail_cb(struct httpd_request *hreq, void *arg)
|
||||
update_fail_cb(void *arg)
|
||||
{
|
||||
struct daap_update_request *ur = arg;
|
||||
|
||||
|
@ -773,7 +773,7 @@ playstatusupdate_cb(int fd, short what, void *arg)
|
||||
}
|
||||
|
||||
static void
|
||||
update_fail_cb(struct httpd_request *hreq, void *arg)
|
||||
update_fail_cb(void *arg)
|
||||
{
|
||||
struct dacp_update_request *ur = arg;
|
||||
|
||||
|
@ -57,7 +57,7 @@ typedef struct httpd_backend_data httpd_backend_data;
|
||||
|
||||
typedef char *httpd_uri_path_parts[31];
|
||||
typedef void (*httpd_request_cb)(struct httpd_request *hreq, void *arg);
|
||||
typedef void (*httpd_close_cb)(struct httpd_request *hreq, void *arg);
|
||||
typedef void (*httpd_close_cb)(void *arg);
|
||||
typedef void (*httpd_connection_chunkcb)(httpd_connection *conn, void *arg);
|
||||
typedef void (*httpd_query_iteratecb)(const char *key, const char *val, void *arg);
|
||||
|
||||
|
@ -248,6 +248,9 @@ httpd_request_new(httpd_backend *backend, httpd_server *server, const char *uri,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Since this is async, libevent will already have closed the connection, so
|
||||
// the parts of hreq that are from httpd_connection will now be invalid e.g.
|
||||
// peer_address.
|
||||
static void
|
||||
closecb_worker(evutil_socket_t fd, short event, void *arg)
|
||||
{
|
||||
@ -257,7 +260,7 @@ closecb_worker(evutil_socket_t fd, short event, void *arg)
|
||||
pthread_mutex_lock(&disconnect->lock);
|
||||
|
||||
if (disconnect->cb)
|
||||
disconnect->cb(hreq, disconnect->cbarg);
|
||||
disconnect->cb(disconnect->cbarg);
|
||||
|
||||
pthread_mutex_unlock(&disconnect->lock);
|
||||
|
||||
@ -289,7 +292,7 @@ closecb_httpd(httpd_connection *conn, void *arg)
|
||||
if (!disconnect->cb)
|
||||
return;
|
||||
|
||||
disconnect->cb(hreq, disconnect->cbarg);
|
||||
disconnect->cb(disconnect->cbarg);
|
||||
httpd_send_reply_end(hreq); // hreq is now deallocated
|
||||
}
|
||||
|
||||
|
@ -196,7 +196,7 @@ session_new(struct httpd_request *hreq, bool icy_is_requested)
|
||||
/* ----------------------------- Event callbacks ---------------------------- */
|
||||
|
||||
static void
|
||||
conn_close_cb(struct httpd_request *hreq, void *arg)
|
||||
conn_close_cb(void *arg)
|
||||
{
|
||||
struct streaming_session *session = arg;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user