cleanup in teardown calls

This commit is contained in:
fduncanh
2022-03-11 23:47:13 -05:00
parent 532c35326c
commit b3266dc0f8

View File

@@ -280,19 +280,25 @@ conn_request(void *ptr, http_request_t *request, http_response_t **response) {
if (conn->raop->callbacks.conn_teardown) {
conn->raop->callbacks.conn_teardown(conn->raop->callbacks.cls, &teardown_96, &teardown_110);
}
logger_log(conn->raop->logger, LOGGER_DEBUG, "TEARDOWN request, 96=%d, 110=%d", teardown_96, teardown_110);
logger_log(conn->raop->logger, LOGGER_INFO, "TEARDOWN request, 96=%d, 110=%d", teardown_96, teardown_110);
//http_response_add_header(*response, "Connection", "close");
http_response_add_header(*response, "Connection", "close");
if (conn->raop_rtp != NULL && raop_rtp_is_running(conn->raop_rtp)) {
/* Stop our RTP sessions */
raop_rtp_stop(conn->raop_rtp);
} else if (conn->raop_rtp_mirror) {
if (teardown_96) {
if (conn->raop_rtp) {
/* Stop our RTP sessions */
raop_rtp_stop(conn->raop_rtp);
}
} else {
/* Destroy our sessions */
raop_rtp_destroy(conn->raop_rtp);
conn->raop_rtp = NULL;
raop_rtp_mirror_destroy(conn->raop_rtp_mirror);
conn->raop_rtp_mirror = NULL;
if (conn->raop_rtp) {
raop_rtp_destroy(conn->raop_rtp);
conn->raop_rtp = NULL;
}
if (conn->raop_rtp_mirror) {
raop_rtp_mirror_destroy(conn->raop_rtp_mirror);
conn->raop_rtp_mirror = NULL;
}
}
}
if (handler != NULL) {