summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libsoup/soup-server.c22
-rw-r--r--packaging/libsoup.spec2
2 files changed, 5 insertions, 19 deletions
diff --git a/libsoup/soup-server.c b/libsoup/soup-server.c
index 07d801d1..c6b8ab2f 100644
--- a/libsoup/soup-server.c
+++ b/libsoup/soup-server.c
@@ -137,6 +137,8 @@ static void
free_handler (SoupServerHandler *hand)
{
g_free (hand->path);
+ if (hand->destroy)
+ hand->destroy (hand->user_data);
g_slice_free (SoupServerHandler, hand);
}
@@ -1456,13 +1458,6 @@ soup_server_add_handler (SoupServer *server,
priv->default_handler = hand;
}
-static void
-unregister_handler (SoupServerHandler *handler)
-{
- if (handler->destroy)
- handler->destroy (handler->user_data);
-}
-
/**
* soup_server_remove_handler:
* @server: a #SoupServer
@@ -1474,23 +1469,14 @@ void
soup_server_remove_handler (SoupServer *server, const char *path)
{
SoupServerPrivate *priv;
- SoupServerHandler *hand;
g_return_if_fail (SOUP_IS_SERVER (server));
priv = SOUP_SERVER_GET_PRIVATE (server);
if (!path || !*path || !strcmp (path, "/")) {
- if (priv->default_handler) {
- unregister_handler (priv->default_handler);
- free_handler (priv->default_handler);
- priv->default_handler = NULL;
- }
+ g_clear_pointer (&priv->default_handler, free_handler);
return;
- }
-
- hand = soup_path_map_lookup (priv->handlers, path);
- if (hand && !strcmp (path, hand->path)) {
- unregister_handler (hand);
+ } else {
soup_path_map_remove (priv->handlers, path);
}
}
diff --git a/packaging/libsoup.spec b/packaging/libsoup.spec
index daeb7634..9aceed29 100644
--- a/packaging/libsoup.spec
+++ b/packaging/libsoup.spec
@@ -3,7 +3,7 @@
Name: libsoup
Version: 2.46.0
-Release: 0
+Release: 1
License: LGPL-2.0+
Summary: HTTP client/server library for GNOME
Url: http://www.gnome.org