[phodav] libphodav: remove obsolete soup code



commit 57ae68002f46670552444b11d0789f3dc041b432
Author: Marc-André Lureau <marcandre lureau gmail com>
Date:   Sat Feb 7 00:04:38 2015 +0100

    libphodav: remove obsolete soup code

 libphodav/chezdav.c       |   16 ++++---
 libphodav/phodav-server.c |   98 +--------------------------------------------
 libphodav/phodav-server.h |    5 +--
 3 files changed, 12 insertions(+), 107 deletions(-)
---
diff --git a/libphodav/chezdav.c b/libphodav/chezdav.c
index d4f312a..17acf31 100644
--- a/libphodav/chezdav.c
+++ b/libphodav/chezdav.c
@@ -38,7 +38,8 @@ static GaEntryGroupService *mdns_service;
 #include "libphodav/phodav.h"
 
 static PhodavServer *dav;
-static gint verbose = 0;
+static gint verbose;
+static gint port = 8080;
 
 G_GNUC_PRINTF (1, 2) static void
 my_error (const gchar *format, ...)
@@ -92,7 +93,6 @@ mdns_register_service (void)
         }
     }
 
-  guint port = phodav_server_get_port (dav);
   name = get_realm ();
   mdns_service = ga_entry_group_add_service (mdns_group,
                                              name, "_webdav._tcp",
@@ -192,7 +192,6 @@ main (int argc, char *argv[])
 {
   GError *error = NULL;
   GOptionContext *context;
-  gint port = 8080;
   const gchar *path = NULL;
   GMainLoop *mainloop = NULL;
 
@@ -242,7 +241,7 @@ main (int argc, char *argv[])
   g_unix_signal_add (SIGINT, sighup_received, mainloop);
 #endif
 
-  dav = phodav_server_new (port, path);
+  dav = phodav_server_new (path);
 
   if (htdigest)
     {
@@ -273,11 +272,14 @@ main (int argc, char *argv[])
     my_error (_ ("mDNS failed: %s\n"), error->message);
 #endif
 
-  phodav_server_run (dav);
+  SoupServer *server = phodav_server_get_soup_server (dav);
+  if (!soup_server_listen_local (server, port, 0, &error)) {
+    my_error (_ ("Listen failed: %s\n"), error->message);
+  }
+
   g_main_loop_run (mainloop);
-  phodav_server_quit (dav);
-  g_main_loop_unref (mainloop);
 
+  g_main_loop_unref (mainloop);
 #ifdef WITH_AVAHI
   g_object_unref (mdns_client);
 #endif
diff --git a/libphodav/phodav-server.c b/libphodav/phodav-server.c
index 23e2a4a..81ee4e9 100644
--- a/libphodav/phodav-server.c
+++ b/libphodav/phodav-server.c
@@ -46,7 +46,6 @@ struct _PhodavServer
   GCancellable *cancellable;
   gchar        *root;
   PathHandler  *root_handler; /* weak ref */
-  guint         port;
   GHashTable   *paths;
 };
 
@@ -60,7 +59,6 @@ G_DEFINE_TYPE (PhodavServer, phodav_server, G_TYPE_OBJECT)
 /* Properties */
 enum {
   PROP_0,
-  PROP_PORT,
   PROP_ROOT,
   PROP_SERVER,
 };
@@ -174,9 +172,7 @@ phodav_server_constructed (GObject *gobject)
 {
   PhodavServer *self = PHODAV_SERVER (gobject);
 
-  self->server = soup_server_new (SOUP_SERVER_PORT, self->port,
-                                  SOUP_SERVER_SERVER_HEADER, "PhodavServer ",
-                                  SOUP_SERVER_ASYNC_CONTEXT, self->context,
+  self->server = soup_server_new (SOUP_SERVER_SERVER_HEADER, "PhodavServer ",
                                   NULL);
 
   update_root_handler (self);
@@ -213,10 +209,6 @@ phodav_server_get_property (GObject    *gobject,
 
   switch (prop_id)
     {
-    case PROP_PORT:
-      g_value_set_uint (value, phodav_server_get_port (self));
-      break;
-
     case PROP_ROOT:
       g_value_set_string (value, self->root);
       break;
@@ -241,10 +233,6 @@ phodav_server_set_property (GObject      *gobject,
 
   switch (prop_id)
     {
-    case PROP_PORT:
-      self->port = g_value_get_uint (value);
-      break;
-
     case PROP_ROOT:
       g_free (self->root);
       self->root = g_value_dup_string (value);
@@ -268,16 +256,6 @@ phodav_server_class_init (PhodavServerClass *klass)
   gobject_class->set_property = phodav_server_set_property;
 
   g_object_class_install_property
-    (gobject_class, PROP_PORT,
-    g_param_spec_uint ("port",
-                       "Port",
-                       "Port",
-                       0, G_MAXUINT16, 0,
-                       G_PARAM_CONSTRUCT_ONLY |
-                       G_PARAM_READWRITE |
-                       G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property
     (gobject_class, PROP_ROOT,
     g_param_spec_string ("root",
                          "Root path",
@@ -500,23 +478,6 @@ server_callback (SoupServer *server, SoupMessage *msg,
 }
 
 /**
- * phodav_server_get_port:
- * @server: a %PhodavServer
- *
- * Gets the TCP port that server is listening on. This is most useful
- * when you did not request a specific port, with value 0.
-*
- * Returns: the port @server is listening on.
- **/
-guint
-phodav_server_get_port (PhodavServer *self)
-{
-  g_return_val_if_fail (PHODAV_IS_SERVER (self), 0);
-
-  return soup_server_get_port (self->server);
-}
-
-/**
  * phodav_server_get_soup_server:
  * @server: a %PhodavServer
  *
@@ -532,62 +493,8 @@ phodav_server_get_soup_server (PhodavServer *self)
   return self->server;
 }
 
-static gpointer
-thread_func (gpointer data)
-{
-  PhodavServer *self = data;
-
-  g_debug ("Starting on port %u, serving %s", phodav_server_get_port (self), self->root);
-
-  soup_server_run_async (self->server);
-
-  g_main_loop_run (self->loop);
-
-  return NULL;
-}
-
-/**
- * phodav_server_run:
- * @server: a %PhodavServer
- *
- * Run the server in a separate thread.
- **/
-void
-phodav_server_run (PhodavServer *self)
-{
-  g_return_if_fail (PHODAV_IS_SERVER (self));
-
-  if (self->thread)
-    return;
-
-  g_object_ref (self);
-  self->thread = g_thread_new ("phodav-server", thread_func, self);
-}
-
-/**
- * phodav_server_quit:
- * @server: a %PhodavServer
- *
- * Stops the server from running.
- **/
-void
-phodav_server_quit (PhodavServer *self)
-{
-  g_return_if_fail (PHODAV_IS_SERVER (self));
-
-  if (!self->thread)
-    return;
-
-  soup_server_quit (self->server);
-  g_main_loop_quit (self->loop);
-  g_thread_join (self->thread);
-  self->thread = NULL;
-  g_object_unref (self);
-}
-
 /**
  * phodav_server_new:
- * @port: Port to listen on.
  * @root: (allow-none): Root path.
  *
  * Creates a new #PhodavServer.
@@ -595,10 +502,9 @@ phodav_server_quit (PhodavServer *self)
  * Returns: a new #PhodavServer
  **/
 PhodavServer *
-phodav_server_new (guint port, const gchar *root)
+phodav_server_new (const gchar *root)
 {
   return g_object_new (PHODAV_TYPE_SERVER,
-                       "port", port,
                        "root", root,
                        NULL);
 }
diff --git a/libphodav/phodav-server.h b/libphodav/phodav-server.h
index 7ea3773..dd00564 100644
--- a/libphodav/phodav-server.h
+++ b/libphodav/phodav-server.h
@@ -35,10 +35,7 @@ typedef struct _PhodavServerClass PhodavServerClass;
 
 GType           phodav_server_get_type        (void);
 
-PhodavServer *  phodav_server_new             (guint port, const gchar *root);
-void            phodav_server_run             (PhodavServer *server);
-void            phodav_server_quit            (PhodavServer *server);
-guint           phodav_server_get_port        (PhodavServer *server);
+PhodavServer *  phodav_server_new             (const gchar *root);
 SoupServer *    phodav_server_get_soup_server (PhodavServer *server);
 
 G_END_DECLS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]