guard-xmpp-password.diff
changeset 88 0a87df8ad9c1
parent 87 78238d26911a
child 90 bed5beae28c5
--- a/guard-xmpp-password.diff	Wed Nov 12 23:04:36 2014 +0200
+++ b/guard-xmpp-password.diff	Sat Nov 07 17:39:49 2015 +0200
@@ -1,13 +1,15 @@
+# HG changeset patch
+# Parent  43143bc6ddf39de0d04929f589a4fcfa0000b54b
 Guard XMPP password with option guard
 
   * instead of filtering access to stored in public place
     restricted data, better store restricted data somewhere else
   * add xmpp_init() and xmpp_have_password (non-api)
 
-diff -r d5d7361a99c0 mcabber/mcabber/commands.c
---- a/mcabber/mcabber/commands.c	Tue Nov 11 21:10:14 2014 +0200
-+++ b/mcabber/mcabber/commands.c	Tue Nov 11 21:12:47 2014 +0200
-@@ -2286,10 +2286,8 @@
+diff -r 43143bc6ddf3 mcabber/mcabber/commands.c
+--- a/mcabber/mcabber/commands.c	Sat Nov 07 14:31:02 2015 +0200
++++ b/mcabber/mcabber/commands.c	Sat Nov 07 14:37:38 2015 +0200
+@@ -2303,10 +2303,8 @@
  
  static void list_option_cb(char *k, char *v, void *f)
  {
@@ -20,10 +22,10 @@
  }
  
  static void do_set(char *arg)
-diff -r d5d7361a99c0 mcabber/mcabber/main.c
---- a/mcabber/mcabber/main.c	Tue Nov 11 21:10:14 2014 +0200
-+++ b/mcabber/mcabber/main.c	Tue Nov 11 21:12:47 2014 +0200
-@@ -389,6 +389,7 @@
+diff -r 43143bc6ddf3 mcabber/mcabber/main.c
+--- a/mcabber/mcabber/main.c	Sat Nov 07 14:31:02 2015 +0200
++++ b/mcabber/mcabber/main.c	Sat Nov 07 14:37:38 2015 +0200
+@@ -447,6 +447,7 @@
    scr_init_locale_charset();
    ut_init_debug();
    help_init();
@@ -31,20 +33,33 @@
  
    /* Parsing config file... */
    ret = cfg_read_file(configFile, TRUE);
-@@ -410,8 +411,9 @@
+@@ -468,19 +469,21 @@
  
    /* If no password is stored, we ask for it before entering
       ncurses mode -- unless the username is unknown. */
 -  if (settings_opt_get("jid") && !settings_opt_get("password")) {
 +  if (settings_opt_get("jid") && !xmpp_have_password) {
-     char *pwd = ask_password("your Jabber password");
-+    /* Will be intercepted by guard */
-     settings_set(SETTINGS_TYPE_OPTION, "password", pwd);
-     g_free(pwd);
-   }
-diff -r d5d7361a99c0 mcabber/mcabber/xmpp.c
---- a/mcabber/mcabber/xmpp.c	Tue Nov 11 21:10:14 2014 +0200
-+++ b/mcabber/mcabber/xmpp.c	Tue Nov 11 21:12:47 2014 +0200
+     const char *pass_eval = settings_opt_get("password_eval");
+     if (pass_eval) {
+       int status = 0;
+       char *pwd = password_eval(pass_eval, &status);
+       if (status == 0 && pwd) {
++        /* Will be intercepted by guard */
+         settings_set(SETTINGS_TYPE_OPTION, "password", pwd);
+       }
+       g_free(pwd);
+     }
+     // If the password is still unset, ask the user...
+-    if (!settings_opt_get("password")) {
++    if (!xmpp_have_password) {
+       char *pwd = ask_password("your Jabber password");
++      /* Will be intercepted by guard */
+       settings_set(SETTINGS_TYPE_OPTION, "password", pwd);
+       g_free(pwd);
+     }
+diff -r 43143bc6ddf3 mcabber/mcabber/xmpp.c
+--- a/mcabber/mcabber/xmpp.c	Sat Nov 07 14:31:02 2015 +0200
++++ b/mcabber/mcabber/xmpp.c	Sat Nov 07 14:37:38 2015 +0200
 @@ -23,6 +23,8 @@
   */
  #include <stdlib.h>
@@ -54,7 +69,7 @@
  
  #include "xmpp.h"
  #include "xmpp_helper.h"
-@@ -54,6 +56,9 @@
+@@ -56,6 +58,9 @@
  static enum imstatus mywantedstatus = available;
  gchar *mystatusmsg;
  
@@ -64,7 +79,7 @@
  char imstatus2char[imstatus_size+1] = {
      '_', 'o', 'f', 'd', 'n', 'a', 'i', '\0'
  };
-@@ -778,16 +783,15 @@
+@@ -800,16 +805,15 @@
    GError *error = NULL;
  
    if (success) {
@@ -83,7 +98,7 @@
                                      connection_auth_cb, NULL, FALSE, &error)) {
        scr_LogPrint(LPRINT_LOGNORM, "Failed to authenticate: %s",
                     error->message);
-@@ -1687,13 +1691,37 @@
+@@ -1749,13 +1753,37 @@
    }
  }
  
@@ -120,9 +135,9 @@
 -  const char *userjid, *password, *resource, *servername, *ssl_fpr;
 +  const char *userjid, *resource, *servername, *ssl_fpr;
    char *dynresource = NULL;
-   char fpr[16];
+   char fpr[FINGERPRINT_LENGTH] = {0};
    const char *proxy_host;
-@@ -1710,7 +1738,6 @@
+@@ -1772,7 +1800,6 @@
  
    servername  = settings_opt_get("server");
    userjid     = settings_opt_get("jid");
@@ -130,7 +145,7 @@
    resource    = settings_opt_get("resource");
    proxy_host  = settings_opt_get("proxy_host");
    ssl_fpr     = settings_opt_get("ssl_fingerprint");
-@@ -1719,7 +1746,7 @@
+@@ -1781,7 +1808,7 @@
      scr_LogPrint(LPRINT_LOGNORM, "Your JID has not been specified!");
      return -1;
    }
@@ -139,9 +154,9 @@
      scr_LogPrint(LPRINT_LOGNORM, "Your password has not been specified!");
      return -1;
    }
-diff -r d5d7361a99c0 mcabber/mcabber/xmpp.h
---- a/mcabber/mcabber/xmpp.h	Tue Nov 11 21:10:14 2014 +0200
-+++ b/mcabber/mcabber/xmpp.h	Tue Nov 11 21:12:47 2014 +0200
+diff -r 43143bc6ddf3 mcabber/mcabber/xmpp.h
+--- a/mcabber/mcabber/xmpp.h	Sat Nov 07 14:31:02 2015 +0200
++++ b/mcabber/mcabber/xmpp.h	Sat Nov 07 14:37:38 2015 +0200
 @@ -34,7 +34,9 @@
  
  extern LmConnection* lconnection;