1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2025-02-02 15:07:36 -05:00

Feature: Added event source-listener-attach

This commit is contained in:
Philipp Schafft 2023-04-18 12:15:58 +00:00
parent 6331270e70
commit f188c5b1df

View File

@ -767,7 +767,6 @@ static void source_init (source_t *source)
void source_main (source_t *source) void source_main (source_t *source)
{ {
refbuf_t *refbuf; refbuf_t *refbuf;
client_t *client;
avl_node *client_node; avl_node *client_node;
source_init (source); source_init (source);
@ -829,7 +828,7 @@ void source_main (source_t *source)
client_node = avl_get_first(source->client_tree); client_node = avl_get_first(source->client_tree);
while (client_node) { while (client_node) {
client = (client_t *) client_node->key; client_t *client = (client_t *) client_node->key;
send_to_listener(source, client, remove_from_q); send_to_listener(source, client, remove_from_q);
@ -848,6 +847,7 @@ void source_main (source_t *source)
/** add pending clients **/ /** add pending clients **/
client_node = avl_get_first(source->pending_tree); client_node = avl_get_first(source->pending_tree);
while (client_node) { while (client_node) {
client_t *client = (client_t *)client_node->key;
if(source->max_listeners != -1 && if(source->max_listeners != -1 &&
source->listeners >= (unsigned long)source->max_listeners) source->listeners >= (unsigned long)source->max_listeners)
@ -857,7 +857,6 @@ void source_main (source_t *source)
* and doesn't give the listening client any information about * and doesn't give the listening client any information about
* why they were disconnected * why they were disconnected
*/ */
client = (client_t *)client_node->key;
client_node = avl_get_next(client_node); client_node = avl_get_next(client_node);
avl_delete(source->pending_tree, (void *)client, _free_client); avl_delete(source->pending_tree, (void *)client, _free_client);
@ -872,6 +871,7 @@ void source_main (source_t *source)
source->listeners++; source->listeners++;
ICECAST_LOG_DEBUG("Client added for mountpoint (%s)", source->mount); ICECAST_LOG_DEBUG("Client added for mountpoint (%s)", source->mount);
stats_event_inc(source->mount, "connections"); stats_event_inc(source->mount, "connections");
event_emit_va("source-listener-attach", EVENT_EXTRA_SOURCE, source, EVENT_EXTRA_CLIENT, client, EVENT_EXTRA_LIST_END);
client_node = avl_get_next(client_node); client_node = avl_get_next(client_node);
} }