[libsoup] Remove SoupPasswordManager from the stable API



commit cffc17dbb59e76a1623f0bd01f44e3e79df35fe7
Author: Dan Winship <danw gnome org>
Date:   Mon Sep 7 09:57:26 2009 -0400

    Remove SoupPasswordManager from the stable API
    
    See http://bugzilla.gnome.org/show_bug.cgi?id=594377

 libsoup/Makefile.am                   |    3 +-
 libsoup/soup-auth.c                   |    2 +
 libsoup/soup-auth.h                   |    4 ++
 libsoup/soup-gnome-features.h         |    5 ++
 libsoup/soup-gnome.h                  |    1 -
 libsoup/soup-password-manager-gnome.c |    8 +--
 libsoup/soup-password-manager-gnome.h |    8 +--
 libsoup/soup-password-manager.c       |    2 +
 libsoup/soup-password-manager.h       |    4 ++
 libsoup/soup-session-async.c          |    2 +
 libsoup/soup-session-sync.c           |    2 +
 tests/get.c                           |   86 ---------------------------------
 12 files changed, 26 insertions(+), 101 deletions(-)
---
diff --git a/libsoup/Makefile.am b/libsoup/Makefile.am
index a436d4e..c25b534 100644
--- a/libsoup/Makefile.am
+++ b/libsoup/Makefile.am
@@ -171,8 +171,7 @@ libsoupgnomeincludedir = $(includedir)/libsoup-gnome-2.4/libsoup
 libsoupgnomeinclude_HEADERS =	\
 	soup-cookie-jar-sqlite.h\
 	soup-gnome.h		\
-	soup-gnome-features.h	\
-	soup-password-manager-gnome.h
+	soup-gnome-features.h
 
 lib_LTLIBRARIES += libsoup-gnome-2.4.la
 
diff --git a/libsoup/soup-auth.c b/libsoup/soup-auth.c
index a3f2ae7..774cf2c 100644
--- a/libsoup/soup-auth.c
+++ b/libsoup/soup-auth.c
@@ -9,6 +9,8 @@
 #include <config.h>
 #endif
 
+#define LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
+
 #include <string.h>
 
 #include "soup-auth.h"
diff --git a/libsoup/soup-auth.h b/libsoup/soup-auth.h
index 1259df8..453f51d 100644
--- a/libsoup/soup-auth.h
+++ b/libsoup/soup-auth.h
@@ -72,12 +72,14 @@ const char *soup_auth_get_host              (SoupAuth      *auth);
 const char *soup_auth_get_realm             (SoupAuth      *auth);
 char       *soup_auth_get_info              (SoupAuth      *auth);
 
+#ifdef LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
 GSList     *soup_auth_get_saved_users       (SoupAuth      *auth);
 const char *soup_auth_get_saved_password    (SoupAuth      *auth,
 					     const char    *user);
 void        soup_auth_save_password         (SoupAuth      *auth,
 					     const char    *username,
 					     const char    *password);
+#endif
 
 void        soup_auth_authenticate          (SoupAuth      *auth,
 					     const char    *username,
@@ -92,9 +94,11 @@ GSList     *soup_auth_get_protection_space  (SoupAuth      *auth,
 void        soup_auth_free_protection_space (SoupAuth      *auth,
 					     GSList        *space);
 
+#ifdef LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
 void        soup_auth_has_saved_password    (SoupAuth      *auth,
 					     const char    *username,
 					     const char    *password);
+#endif
 
 G_END_DECLS
 
diff --git a/libsoup/soup-gnome-features.h b/libsoup/soup-gnome-features.h
index d722d73..8090978 100644
--- a/libsoup/soup-gnome-features.h
+++ b/libsoup/soup-gnome-features.h
@@ -16,6 +16,11 @@ GType soup_proxy_resolver_gnome_get_type (void);
 GType soup_gnome_features_2_26_get_type (void);
 #define SOUP_TYPE_GNOME_FEATURES_2_26 (soup_gnome_features_2_26_get_type ())
 
+#ifdef LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
+GType soup_password_manager_gnome_get_type (void);
+#define SOUP_TYPE_PASSWORD_MANAGER_GNOME (soup_password_manager_gnome_get_type ())
+#endif /* LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY */
+
 G_END_DECLS
 
 #endif /* SOUP_GNOME_FEATURES_H */
diff --git a/libsoup/soup-gnome.h b/libsoup/soup-gnome.h
index 6703cf0..a2134a4 100644
--- a/libsoup/soup-gnome.h
+++ b/libsoup/soup-gnome.h
@@ -10,6 +10,5 @@
 
 #include <libsoup/soup-cookie-jar-sqlite.h>
 #include <libsoup/soup-gnome-features.h>
-#include <libsoup/soup-password-manager-gnome.h>
 
 #endif /* SOUP_GNOME_H */
diff --git a/libsoup/soup-password-manager-gnome.c b/libsoup/soup-password-manager-gnome.c
index 9b56eae..d376191 100644
--- a/libsoup/soup-password-manager-gnome.c
+++ b/libsoup/soup-password-manager-gnome.c
@@ -9,6 +9,8 @@
 #include <config.h>
 #endif
 
+#define LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
+
 #include "soup-password-manager-gnome.h"
 #include "soup-auth.h"
 #include "soup-session-feature.h"
@@ -52,12 +54,6 @@ soup_password_manager_gnome_interface_init (SoupPasswordManagerInterface *passwo
 	password_manager_interface->get_passwords_sync = get_passwords_sync;
 }
 
-SoupPasswordManager *
-soup_password_manager_gnome_new (void)
-{
-	return g_object_new (SOUP_TYPE_PASSWORD_MANAGER_GNOME, NULL);
-}
-
 
 static void
 save_password_callback (GnomeKeyringResult result, guint32 val, gpointer data)
diff --git a/libsoup/soup-password-manager-gnome.h b/libsoup/soup-password-manager-gnome.h
index ad6d362..290e3ec 100644
--- a/libsoup/soup-password-manager-gnome.h
+++ b/libsoup/soup-password-manager-gnome.h
@@ -6,9 +6,9 @@
 #ifndef SOUP_PASSWORD_MANAGER_GNOME_H
 #define SOUP_PASSWORD_MANAGER_GNOME_H 1
 
-#include <libsoup/soup-password-manager.h>
+#include "soup-password-manager.h"
+#include "soup-gnome-features.h"
 
-#define SOUP_TYPE_PASSWORD_MANAGER_GNOME            (soup_password_manager_gnome_get_type ())
 #define SOUP_PASSWORD_MANAGER_GNOME(object)         (G_TYPE_CHECK_INSTANCE_CAST ((object), SOUP_TYPE_PASSWORD_MANAGER_GNOME, SoupPasswordManagerGNOME))
 #define SOUP_PASSWORD_MANAGER_GNOME_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_PASSWORD_MANAGER_GNOME, SoupPasswordManagerGNOMEClass))
 #define SOUP_IS_PASSWORD_MANAGER_GNOME(object)      (G_TYPE_CHECK_INSTANCE_TYPE ((object), SOUP_TYPE_PASSWORD_MANAGER_GNOME))
@@ -25,8 +25,4 @@ typedef struct {
 
 } SoupPasswordManagerGNOMEClass;
 
-GType soup_password_manager_gnome_get_type (void);
-
-SoupPasswordManager *soup_password_manager_gnome_new (void);
-
 #endif /* SOUP_PASSWORD_MANAGER_GNOME_H */
diff --git a/libsoup/soup-password-manager.c b/libsoup/soup-password-manager.c
index 5654dc3..1ee9260 100644
--- a/libsoup/soup-password-manager.c
+++ b/libsoup/soup-password-manager.c
@@ -9,6 +9,8 @@
 #include <config.h>
 #endif
 
+#define LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
+
 #include "soup-password-manager.h"
 #include "soup-session-feature.h"
 
diff --git a/libsoup/soup-password-manager.h b/libsoup/soup-password-manager.h
index 2cd0270..75f5cd8 100644
--- a/libsoup/soup-password-manager.h
+++ b/libsoup/soup-password-manager.h
@@ -6,6 +6,8 @@
 #ifndef SOUP_PASSWORD_MANAGER_H
 #define SOUP_PASSWORD_MANAGER_H 1
 
+#ifdef LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
+
 #include <libsoup/soup-types.h>
 #include <gio/gio.h>
 
@@ -52,4 +54,6 @@ void  soup_password_manager_get_passwords_sync  (SoupPasswordManager  *password_
 						 SoupAuth             *auth,
 						 GCancellable         *cancellable);
 
+#endif /* LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY */
+
 #endif /* SOUP_PASSWORD_MANAGER_H */
diff --git a/libsoup/soup-session-async.c b/libsoup/soup-session-async.c
index 9d0ef71..731138c 100644
--- a/libsoup/soup-session-async.c
+++ b/libsoup/soup-session-async.c
@@ -9,6 +9,8 @@
 #include <config.h>
 #endif
 
+#define LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
+
 #include "soup-address.h"
 #include "soup-session-async.h"
 #include "soup-session-private.h"
diff --git a/libsoup/soup-session-sync.c b/libsoup/soup-session-sync.c
index 5eecabd..eba77e4 100644
--- a/libsoup/soup-session-sync.c
+++ b/libsoup/soup-session-sync.c
@@ -9,6 +9,8 @@
 #include <config.h>
 #endif
 
+#define LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY
+
 #include "soup-address.h"
 #include "soup-session-sync.h"
 #include "soup-session-private.h"
diff --git a/tests/get.c b/tests/get.c
index a654ec4..b0e5c57 100644
--- a/tests/get.c
+++ b/tests/get.c
@@ -22,10 +22,6 @@
 #include <libsoup/soup.h>
 #endif
 
-#ifdef G_OS_UNIX
-#include <termios.h>
-#endif
-
 static SoupSession *session;
 static GMainLoop *loop;
 static gboolean debug = FALSE;
@@ -78,83 +74,6 @@ get_url (const char *url)
 }
 
 static void
-authenticate (SoupSession *session, SoupMessage *msg,
-	      SoupAuth *auth, gpointer user_data)
-{
-	char *uri;
-	GSList *saved_users;
-#ifdef G_OS_UNIX
-	struct termios t;
-	int old_lflag;
-#endif
-	char user[80], pwbuf[80];
-	const char *password;
-
-#ifdef G_OS_UNIX
-	if (tcgetattr (STDIN_FILENO, &t) != 0)
-		return;
-#endif
-
-	uri = soup_uri_to_string (soup_message_get_uri (msg), FALSE);
-	fprintf (stderr, "Authentication required for %s:\n", uri);
-	g_free (uri);
-	fprintf (stderr, "  Realm: %s, Auth type: %s\n",
-		soup_auth_get_realm (auth), soup_auth_get_scheme_name (auth));
-
-	saved_users = soup_auth_get_saved_users (auth);
-	if (saved_users) {
-		GSList *u;
-
-		fprintf (stderr, "  Passwords saved for: ");
-		for (u = saved_users; u; u = u->next) {
-			if (u != saved_users)
-				fprintf (stderr, ", ");
-			fprintf (stderr, "%s", (char *)u->data);
-		}
-		fprintf (stderr, "\n");
-	}
-	g_slist_free (saved_users);
-
-	fprintf (stderr, "  username: ");
-	fflush (stderr);
-
-	if (!fgets (user, sizeof (user), stdin) || user[0] == '\n')
-		return;
-	*strchr (user, '\n') = '\0';
-
-	password = soup_auth_get_saved_password (auth, user);
-	if (!password) {
-		fprintf (stderr, "  password: ");
-		fflush (stderr);
-
-#ifdef G_OS_UNIX
-		old_lflag = t.c_lflag;
-		t.c_lflag = (t.c_lflag | ICANON | ECHONL) & ~ECHO;
-		tcsetattr (STDIN_FILENO, TCSANOW, &t);
-#endif
-
-		/* For some reason, fgets can return EINTR on
-		 * Linux if ECHO is false...
-		 */
-		do
-			password = fgets (pwbuf, sizeof (pwbuf), stdin);
-		while (password == NULL && errno == EINTR);
-
-#ifdef G_OS_UNIX
-		t.c_lflag = old_lflag;
-		tcsetattr (STDIN_FILENO, TCSANOW, &t);
-#endif
-
-		if (!password || pwbuf[0] == '\n')
-			return;
-		*strchr (pwbuf, '\n') = '\0';
-	}
-
-	soup_auth_authenticate (auth, user, password);
-	soup_auth_save_password (auth, user, password);
-}
-
-static void
 usage (void)
 {
 	fprintf (stderr, "Usage: get [-c CAfile] [-p proxy URL] [-h] [-d] URL\n");
@@ -171,7 +90,6 @@ main (int argc, char **argv)
 
 	g_thread_init (NULL);
 	g_type_init ();
-	g_set_application_name ("get");
 
 	method = SOUP_METHOD_GET;
 
@@ -226,7 +144,6 @@ main (int argc, char **argv)
 			SOUP_SESSION_SSL_CA_FILE, cafile,
 #ifdef HAVE_GNOME
 			SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_GNOME_FEATURES_2_26,
-			SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PASSWORD_MANAGER_GNOME,
 #endif
 			SOUP_SESSION_USER_AGENT, "get ",
 			NULL);
@@ -235,13 +152,10 @@ main (int argc, char **argv)
 			SOUP_SESSION_SSL_CA_FILE, cafile,
 #ifdef HAVE_GNOME
 			SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_GNOME_FEATURES_2_26,
-			SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PASSWORD_MANAGER_GNOME,
 #endif
 			SOUP_SESSION_USER_AGENT, "get ",
 			NULL);
 	}
-	g_signal_connect (session, "authenticate",
-			  G_CALLBACK (authenticate), NULL);
 
 	/* Need to do this after creating the session, since adding
 	 * SOUP_TYPE_GNOME_FEATURE_2_26 will add a proxy resolver, thereby



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