extern const struct hotkey libvlc_hotkeys[];
extern const size_t libvlc_hotkeys_size;
+extern vlc_object_t *
+vlc_custom_create (vlc_object_t *p_this, size_t i_size, int i_type,
+ const char *psz_type);
+
#endif
# include <stdlib.h> /* realloc() */
#endif
+#include "../libvlc.h"
#include <vlc_vout.h>
#include <vlc_aout.h>
#include "audio_output/aout_internal.h"
#include "vlc_filter.h"
#include "vlc_httpd.h"
-#include "../network/httpd.h"
#include "vlc_vlm.h"
#include "vlc_vod.h"
#include "vlc_tls.h"
*****************************************************************************/
static vlc_mutex_t structure_lock;
-static vlc_object_t *vlc_custom_create( vlc_object_t *p_this, size_t i_size,
+vlc_object_t *vlc_custom_create( vlc_object_t *p_this, size_t i_size,
int i_type, const char *psz_type )
{
vlc_object_t * p_new;
i_size = sizeof(sout_instance_t);
psz_type = "stream output";
break;
- case VLC_OBJECT_HTTPD:
- i_size = sizeof( httpd_t );
- psz_type = "http server";
- break;
- case VLC_OBJECT_HTTPD_HOST:
- i_size = sizeof( httpd_host_t );
- psz_type = "http server";
- break;
case VLC_OBJECT_VLM:
i_size = sizeof( vlm_t );
psz_type = "vlm dameon";
#include <vlc_network.h>
#include <vlc_tls.h>
#include <vlc_acl.h>
-#include "httpd.h"
+#include "../libvlc.h"
#include <string.h>
#include <errno.h>
static void httpd_ClientClean( httpd_client_t *cl );
+struct httpd_t
+{
+ VLC_COMMON_MEMBERS
+
+ int i_host;
+ httpd_host_t **host;
+};
+
+
+/* each host run in his own thread */
+struct httpd_host_t
+{
+ VLC_COMMON_MEMBERS
+
+ httpd_t *httpd;
+
+ /* ref count */
+ int i_ref;
+
+ /* address/port and socket for listening at connections */
+ char *psz_hostname;
+ int i_port;
+ int *fd;
+
+ /* Statistics */
+ counter_t *p_active_counter;
+ counter_t *p_total_counter;
+
+ vlc_mutex_t lock;
+
+ /* all registered url (becarefull that 2 httpd_url_t could point at the same url)
+ * This will slow down the url research but make my live easier
+ * All url will have their cb trigger, but only the first one can answer
+ * */
+ int i_url;
+ httpd_url_t **url;
+
+ int i_client;
+ httpd_client_t **client;
+
+ /* TLS data */
+ tls_server_t *p_tls;
+};
+
+
struct httpd_url_t
{
httpd_host_t *host;
);
}
+static const char psz_object_type[] = "http server";
+
httpd_host_t *httpd_TLSHostNew( vlc_object_t *p_this, const char *psz_hostname,
int i_port,
const char *psz_cert, const char *psz_key,
if( !(httpd = vlc_object_find( p_this, VLC_OBJECT_HTTPD, FIND_ANYWHERE )) )
{
msg_Info( p_this, "creating httpd" );
- if( ( httpd = vlc_object_create( p_this, VLC_OBJECT_HTTPD ) ) == NULL )
+ httpd = (httpd_t *)vlc_custom_create( p_this, sizeof (*httpd),
+ VLC_OBJECT_HTTPD,
+ psz_object_type );
+ if (httpd == NULL)
{
vlc_mutex_unlock( lockval.p_address );
free( psz_host );
p_tls = NULL;
/* create the new host */
- host = vlc_object_create( p_this, VLC_OBJECT_HTTPD_HOST );
+ host = (httpd_host_t *)vlc_custom_create( p_this, sizeof (*host),
+ VLC_OBJECT_HTTPD_HOST,
+ psz_object_type );
+ if (host == NULL)
+ goto error;
+
host->httpd = httpd;
vlc_mutex_init( httpd, &host->lock );
host->i_ref = 1;
+++ /dev/null
-/*****************************************************************************
- * httpd.h: builtin HTTP/RTSP server internals.
- *****************************************************************************
- * Copyright (C) 2004-2006 the VideoLAN team
- * $Id$
- *
- * Authors: Laurent Aimar <fenrir@via.ecp.fr>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef _LIBVLC_HTTPD_H
-#define _LIBVLC_HTTPD_H 1
-
-struct httpd_t
-{
- VLC_COMMON_MEMBERS
-
- int i_host;
- httpd_host_t **host;
-};
-
-
-/* each host run in his own thread */
-struct httpd_host_t
-{
- VLC_COMMON_MEMBERS
-
- httpd_t *httpd;
-
- /* ref count */
- int i_ref;
-
- /* address/port and socket for listening at connections */
- char *psz_hostname;
- int i_port;
- int *fd;
-
- /* Statistics */
- counter_t *p_active_counter;
- counter_t *p_total_counter;
-
- vlc_mutex_t lock;
-
- /* all registered url (becarefull that 2 httpd_url_t could point at the same url)
- * This will slow down the url research but make my live easier
- * All url will have their cb trigger, but only the first one can answer
- * */
- int i_url;
- httpd_url_t **url;
-
- int i_client;
- httpd_client_t **client;
-
- /* TLS data */
- tls_server_t *p_tls;
-};
-#endif /* _LIBVLC_HTTPD_H */