--- 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;