[gvfs] sftp: add more debug prints when logging



commit 09e2583e8e3630598208abad620e719df8fac4c3
Author: Ondrej Holy <oholy redhat com>
Date:   Mon Oct 20 21:14:39 2014 +0200

    sftp: add more debug prints when logging
    
    This commit adds more debugging output for sftp backend for easier
    debugging login issues.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=736311

 daemon/gvfsbackendsftp.c |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)
---
diff --git a/daemon/gvfsbackendsftp.c b/daemon/gvfsbackendsftp.c
index 0fc5809..005a9eb 100644
--- a/daemon/gvfsbackendsftp.c
+++ b/daemon/gvfsbackendsftp.c
@@ -75,6 +75,15 @@
  * fstat
  */
 
+
+#define PRINT_DEBUG
+
+#ifdef PRINT_DEBUG
+#define DEBUG(msg...) g_print("### SFTP: " msg)
+#else
+#define DEBUG(...)
+#endif
+
 #if defined(HAVE_GRANTPT) || defined(HAVE_OPENPTY)
 /* We only use this on systems with unix98 or BSD ptys */
 #define USE_PTY 1
@@ -503,6 +512,14 @@ spawn_ssh (GVfsBackend *backend,
            int *slave_fd,
            GError **error)
 {
+#ifdef PRINT_DEBUG
+  DEBUG ("spawn_ssh: ");
+  const char **arg;
+  for (arg = (const char **)args; *arg != NULL; arg++)
+    g_print ("%s ", *arg);
+  g_print ("\n");
+#endif
+
 #ifdef USE_PTY
   *tty_fd = pty_open(pid, PTY_REAP_CHILD, NULL,
                     args[0], args, NULL,
@@ -865,6 +882,13 @@ handle_login (GVfsBackend *backend,
   const gchar *authtype = NULL;
   gchar *object = NULL;
   char *prompt;
+#ifdef PRINT_DEBUG
+  static int i = 0;
+  i++;
+#endif
+
+  DEBUG ("handle_login #%d - user: %s, host: %s, port: %d\n",
+         i, op_backend->user, op_backend->host, op_backend->port);
   
   if (op_backend->client_vendor == SFTP_VENDOR_SSH) 
     prompt_fd = stderr_fd;
@@ -911,6 +935,8 @@ handle_login (GVfsBackend *backend,
       
       buffer[len] = 0;
 
+      DEBUG ("handle_login #%d - prompt: \"%s\"\n", i, buffer);
+
       /*
        * If the input URI contains a username
        *     if the input URI contains a password, we attempt one login and return 
GNOME_VFS_ERROR_ACCESS_DENIED on failure.
@@ -957,6 +983,8 @@ handle_login (GVfsBackend *backend,
             {
               GAskPasswordFlags flags = G_ASK_PASSWORD_NEED_PASSWORD;
               
+              DEBUG ("handle_login #%d - asking for password...\n", i);
+
               if (g_vfs_keyring_is_available ())
                 flags |= G_ASK_PASSWORD_SAVING_SUPPORTED;
              if (strcmp (authtype, "password") == 0 &&
@@ -1008,14 +1036,22 @@ handle_login (GVfsBackend *backend,
               */
              new_password = op_backend->tmp_password;
              op_backend->tmp_password = NULL;
+
+              DEBUG ("handle_login #%d - using credentials from previous login attempt...\n", i);
            }
           else
-            password_in_keyring = TRUE;
+            {
+              password_in_keyring = TRUE;
+
+              DEBUG ("handle_login #%d - using credentials from keyring...\n", i);
+            }
 
          if (new_user &&
              (op_backend->user == NULL ||
               strcmp (new_user, op_backend->user) != 0))
            {
+             DEBUG ("handle_login #%d - new_user: %s\n", i, new_user);
+
              g_free (op_backend->user);
              op_backend->user = new_user;
 
@@ -1073,6 +1109,8 @@ handle_login (GVfsBackend *backend,
          gint choice;
          gchar *message;
 
+          DEBUG ("handle_login #%d - confirming authenticity of host...\n", i);
+
          get_hostname_and_fingerprint_from_line (buffer, &hostname, &fingerprint);
 
          message = g_strdup_printf (_("Can't verify the identity of ā€œ%sā€.\n"
@@ -1123,6 +1161,8 @@ handle_login (GVfsBackend *backend,
   
   if (ret_val)
     {
+      DEBUG ("handle_login #%d - password_save: %d\n", i, op_backend->password_save);
+
       /* Login succeed, save password in keyring */
       g_vfs_keyring_save_password (op_backend->user,
                                    op_backend->host,
@@ -1138,6 +1178,8 @@ handle_login (GVfsBackend *backend,
                                    op_backend->password_save);
     }
 
+  DEBUG ("handle_login #%d - ret_val: %d\n", i, ret_val);
+
   g_free (object);
   g_free (new_password);
   g_object_unref (prompt_stream);


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