Commit db615241 authored by Laurent Aimar's avatar Laurent Aimar

Fixed statistic counter leaks per host.

parent 5f0520d3
...@@ -94,10 +94,6 @@ struct httpd_host_t ...@@ -94,10 +94,6 @@ struct httpd_host_t
int *fds; int *fds;
unsigned nfd; unsigned nfd;
/* Statistics */
counter_t *p_active_counter;
counter_t *p_total_counter;
vlc_mutex_t lock; vlc_mutex_t lock;
/* all registered url (becarefull that 2 httpd_url_t could point at the same url) /* all registered url (becarefull that 2 httpd_url_t could point at the same url)
...@@ -2016,11 +2012,8 @@ static void httpd_ClientTlsHsOut( httpd_client_t *cl ) ...@@ -2016,11 +2012,8 @@ static void httpd_ClientTlsHsOut( httpd_client_t *cl )
static void httpd_HostThread( httpd_host_t *host ) static void httpd_HostThread( httpd_host_t *host )
{ {
tls_session_t *p_tls = NULL; tls_session_t *p_tls = NULL;
counter_t *p_total_counter = stats_CounterCreate( host, VLC_VAR_INTEGER, STATS_COUNTER );
host->p_total_counter = stats_CounterCreate( host, counter_t *p_active_counter = stats_CounterCreate( host, VLC_VAR_INTEGER, STATS_COUNTER );
VLC_VAR_INTEGER, STATS_COUNTER );
host->p_active_counter = stats_CounterCreate( host,
VLC_VAR_INTEGER, STATS_COUNTER );
while( !host->b_die ) while( !host->b_die )
{ {
...@@ -2058,7 +2051,7 @@ static void httpd_HostThread( httpd_host_t *host ) ...@@ -2058,7 +2051,7 @@ static void httpd_HostThread( httpd_host_t *host )
cl->i_activity_date+cl->i_activity_timeout < now) ) ) ) cl->i_activity_date+cl->i_activity_timeout < now) ) ) )
{ {
httpd_ClientClean( cl ); httpd_ClientClean( cl );
stats_UpdateInteger( host, host->p_active_counter, -1, NULL ); stats_UpdateInteger( host, p_active_counter, -1, NULL );
TAB_REMOVE( host->i_client, host->client, cl ); TAB_REMOVE( host->i_client, host->client, cl );
free( cl ); free( cl );
i_client--; i_client--;
...@@ -2511,8 +2504,8 @@ static void httpd_HostThread( httpd_host_t *host ) ...@@ -2511,8 +2504,8 @@ static void httpd_HostThread( httpd_host_t *host )
break; // wasted TLS session, cannot accept() anymore break; // wasted TLS session, cannot accept() anymore
} }
stats_UpdateInteger( host, host->p_total_counter, 1, NULL ); stats_UpdateInteger( host, p_total_counter, 1, NULL );
stats_UpdateInteger( host, host->p_active_counter, 1, NULL ); stats_UpdateInteger( host, p_active_counter, 1, NULL );
cl = httpd_ClientNew( fd, p_tls, now ); cl = httpd_ClientNew( fd, p_tls, now );
p_tls = NULL; p_tls = NULL;
vlc_mutex_lock( &host->lock ); vlc_mutex_lock( &host->lock );
...@@ -2529,6 +2522,10 @@ static void httpd_HostThread( httpd_host_t *host ) ...@@ -2529,6 +2522,10 @@ static void httpd_HostThread( httpd_host_t *host )
if( p_tls != NULL ) if( p_tls != NULL )
tls_ServerSessionClose( p_tls ); tls_ServerSessionClose( p_tls );
if( p_total_counter )
stats_CounterClean( p_total_counter );
if( p_active_counter )
stats_CounterClean( p_active_counter );
} }
#else /* ENABLE_HTTPD */ #else /* ENABLE_HTTPD */
......
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