Commit c551c8b3 authored by Kurt Van Dijck's avatar Kurt Van Dijck Committed by Max Kellermann

raop_output: fix raop_session inbalance

raop_session_free must be called from raop_output_finish, not from raop_output_remove. In raop_output_remove, do close the ntp_server & control port. Signed-off-by: 's avatarKurt Van Dijck <kurt.van.dijck@skynet.be>
parent 9c36e710
...@@ -770,6 +770,11 @@ raop_output_finish(struct audio_output *ao) ...@@ -770,6 +770,11 @@ raop_output_finish(struct audio_output *ao)
g_mutex_free(rd->control_mutex); g_mutex_free(rd->control_mutex);
ao_base_finish(&rd->base); ao_base_finish(&rd->base);
g_free(rd); g_free(rd);
if (raop_session->raop_list == NULL) {
raop_session_free(raop_session);
raop_session = NULL;
}
} }
#define RAOP_VOLUME_MIN -30 #define RAOP_VOLUME_MIN -30
...@@ -870,8 +875,9 @@ raop_output_remove(struct raop_data *rd) ...@@ -870,8 +875,9 @@ raop_output_remove(struct raop_data *rd)
g_mutex_unlock(raop_session->list_mutex); g_mutex_unlock(raop_session->list_mutex);
if (raop_session->raop_list == NULL) { if (raop_session->raop_list == NULL) {
raop_session_free(raop_session); ntp_server_close(&raop_session->ntp);
raop_session = NULL; close(raop_session->ctrl.fd);
raop_session->ctrl.fd = -1;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment