[libsoup] SoupRequester: compatibility fix



commit 0ce58e3a12410255c643ce5d7be60b30ec1e4960
Author: Dan Winship <danw gnome org>
Date:   Tue Dec 11 15:34:52 2012 +0100

    SoupRequester: compatibility fix
    
    Epiphany was registering its "ephy-about" handler by directly calling
    soup_session_feature_add_feature() on the SoupRequester, rather than
    calling soup_session_add_feature_by_type() on the session. Fix it so
    that will still work.

 libsoup/soup-requester.c |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/libsoup/soup-requester.c b/libsoup/soup-requester.c
index ce67982..60648e1 100644
--- a/libsoup/soup-requester.c
+++ b/libsoup/soup-requester.c
@@ -74,6 +74,41 @@ soup_requester_detach (SoupSessionFeature *feature, SoupSession *session)
 	soup_requester_default_feature_interface->detach (feature, session);
 }
 
+static gboolean
+soup_requester_add_feature (SoupSessionFeature *feature, GType type)
+{
+	SoupRequester *requester = SOUP_REQUESTER (feature);
+
+	if (!g_type_is_a (type, SOUP_TYPE_REQUEST))
+		return FALSE;
+
+	soup_session_add_feature_by_type (requester->priv->session, type);
+	return TRUE;
+}
+
+static gboolean
+soup_requester_remove_feature (SoupSessionFeature *feature, GType type)
+{
+	SoupRequester *requester = SOUP_REQUESTER (feature);
+
+	if (!g_type_is_a (type, SOUP_TYPE_REQUEST))
+		return FALSE;
+
+	soup_session_remove_feature_by_type (requester->priv->session, type);
+	return TRUE;
+}
+
+static gboolean
+soup_requester_has_feature (SoupSessionFeature *feature, GType type)
+{
+	SoupRequester *requester = SOUP_REQUESTER (feature);
+
+	if (!g_type_is_a (type, SOUP_TYPE_REQUEST))
+		return FALSE;
+
+	return soup_session_has_feature (requester->priv->session, type);
+}
+
 static void
 soup_requester_session_feature_init (SoupSessionFeatureInterface *feature_interface,
 				     gpointer interface_data)
@@ -83,6 +118,9 @@ soup_requester_session_feature_init (SoupSessionFeatureInterface *feature_interf
 
 	feature_interface->attach = soup_requester_attach;
 	feature_interface->detach = soup_requester_detach;
+	feature_interface->add_feature = soup_requester_add_feature;
+	feature_interface->remove_feature = soup_requester_remove_feature;
+	feature_interface->has_feature = soup_requester_has_feature;
 }
 
 SoupRequester *



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