/*****************************************************************************
* Various functions
*****************************************************************************/
-static struct
+static const struct
{
const char psz_ext[8];
const char *psz_mime;
/*****************************************************************************
* Low level
*****************************************************************************/
-static void httpd_HostThread( httpd_host_t * );
+static void* httpd_HostThread( vlc_object_t * );
/* create a new host */
httpd_host_t *httpd_HostNew( vlc_object_t *p_this, const char *psz_host,
psz_host = strdup( psz_hostname );
if( psz_host == NULL )
- {
- msg_Err( p_this, "memory error" );
return NULL;
- }
/* to be sure to avoid multiple creation */
var_Create( p_this->p_libvlc, "httpd_mutex", VLC_VAR_MUTEX );
/* create the new host */
host = (httpd_host_t *)vlc_custom_create( p_this, sizeof (*host),
- VLC_OBJECT_HTTPD_HOST,
+ VLC_OBJECT_GENERIC,
psz_object_type );
if (host == NULL)
goto error;
}
}
-static void httpd_HostThread( httpd_host_t *host )
+static void* httpd_HostThread( vlc_object_t *p_this )
{
+ httpd_host_t *host = (httpd_host_t *)p_this;
tls_session_t *p_tls = NULL;
counter_t *p_total_counter = stats_CounterCreate( host, VLC_VAR_INTEGER, STATS_COUNTER );
counter_t *p_active_counter = stats_CounterCreate( host, VLC_VAR_INTEGER, STATS_COUNTER );
int evfd;
bool b_die;
+ int canc = vlc_savecancel ();
retry:
vlc_object_lock( host );
stats_CounterClean( p_total_counter );
if( p_active_counter )
stats_CounterClean( p_active_counter );
+ vlc_restorecancel (canc);
+ return NULL;
}
#else /* ENABLE_HTTPD */