]> git.sesse.net Git - vlc/commitdiff
Hide httpd_t and httpd_host_t within httpd.c
authorRémi Denis-Courmont <rem@videolan.org>
Fri, 1 Dec 2006 20:26:05 +0000 (20:26 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Fri, 1 Dec 2006 20:26:05 +0000 (20:26 +0000)
src/libvlc.h
src/misc/objects.c
src/network/httpd.c
src/network/httpd.h [deleted file]

index 442d9f378eeaafa47eeda365ce433fcce2844a2e..02772d4ad40b3e6b85df0182653d8fbd61a1732f 100644 (file)
@@ -32,4 +32,8 @@ extern const size_t libvlc_config_count;
 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
index bfdd5c5956c07b2e4e2bda53179ac900cc4f04b2..73b599af1eaf8379da42790613053c2cb6c246fb 100644 (file)
@@ -36,6 +36,7 @@
 #   include <stdlib.h>                                          /* realloc() */
 #endif
 
+#include "../libvlc.h"
 #include <vlc_vout.h>
 #include <vlc_aout.h>
 #include "audio_output/aout_internal.h"
@@ -53,7 +54,6 @@
 #include "vlc_filter.h"
 
 #include "vlc_httpd.h"
-#include "../network/httpd.h"
 #include "vlc_vlm.h"
 #include "vlc_vod.h"
 #include "vlc_tls.h"
@@ -87,7 +87,7 @@ static void           ListChildren  ( vlc_list_t *, vlc_object_t *, int );
  *****************************************************************************/
 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;
@@ -285,14 +285,6 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type )
             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";
index 93521835a27e1da91669d32d9ecca484b5adf9c2..e636277e65dd84f568f610a2e3346d14f5832940 100644 (file)
@@ -35,7 +35,7 @@
 #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;
@@ -981,6 +1026,8 @@ httpd_host_t *httpd_HostNew( vlc_object_t *p_this, const char *psz_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,
@@ -1011,7 +1058,10 @@ httpd_host_t *httpd_TLSHostNew( vlc_object_t *p_this, const char *psz_hostname,
     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 );
@@ -1071,7 +1121,12 @@ httpd_host_t *httpd_TLSHostNew( vlc_object_t *p_this, const char *psz_hostname,
         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;
diff --git a/src/network/httpd.h b/src/network/httpd.h
deleted file mode 100644 (file)
index e83c17d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*****************************************************************************
- * 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 */