From 53f0a66f6efda442a2916389a005de3c6321384b Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Wed, 14 Feb 2018 12:54:08 +0000
Subject: [PATCH] Reconfigure for bdsmail

---
 src/freedombone-app-bdsmail | 54 ++++++++++++++++++++++++++-----------
 1 file changed, 38 insertions(+), 16 deletions(-)

diff --git a/src/freedombone-app-bdsmail b/src/freedombone-app-bdsmail
index 7c781b78c..d7905ffd7 100755
--- a/src/freedombone-app-bdsmail
+++ b/src/freedombone-app-bdsmail
@@ -112,9 +112,44 @@ function change_password_bdsmail {
     new_user_password="$2"
 }
 
+function bdsmail_update_domain {
+    sed -i "s|set from=.*|set from=username@$(bdsmail_domain)|g" /etc/skel/.mutt/bdsmail
+    for d in /home/*/ ; do
+        USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
+        if [[ $(is_valid_user "$USERNAME") == "1" ]]; then
+            cp /etc/skel/.mutt/bdsmail /home/${USERNAME}/.mutt/bdsmail
+            sed -i "s|set from=.*|set from=${USERNAME}@$(bdsmail_domain)|g" /home/${USERNAME}/.mutt/bdsmail
+            chown ${USERNAME}:${USERNAME} /home/${USERNAME}/.mutt/bdsmail
+        fi
+    done
+}
+
+function bdsmail_wait_for_key_generation {
+    # wait for domain to be generated by the daemon
+    # This can take a while, probably because i2p is connecting
+    bds_domain=
+    sleep_ctr=0
+    while [ ! $bds_domain ]; do
+        echo $"Waiting for i2p domain to be generated ${sleep_ctr}/100"
+        systemctl restart bdsmail
+        sleep 30
+        bds_domain=$(bdsmail_domain)
+        sleep_ctr=$((sleep_ctr + 1))
+        if [ $sleep_ctr -gt 100 ]; then
+            break
+        fi
+    done
+}
+
 function reconfigure_bdsmail {
-    # This is used if you need to switch identity. Dump old keys and generate new ones
-    echo -n ''
+    systemctl stop bdsmail
+    rm $BDSMAIL_DIR/*.dat
+    rm $BDSMAIL_DIR/*.pem
+    bdsmail_wait_for_key_generation
+    if [ ! -f $BDSMAIL_DIR/bdsmail-privkey.dat ]; then
+        return
+    fi
+    bdsmail_update_domain
 }
 
 function upgrade_bdsmail {
@@ -362,20 +397,7 @@ function install_bdsmail {
     echo $'This may take a while.'
     echo ''
 
-    # wait for domain to be generated by the daemon
-    # This can take a while, probably because i2p is connecting
-    bds_domain=
-    sleep_ctr=0
-    while [ ! $bds_domain ]; do
-        echo $"Waiting for i2p domain to be generated ${sleep_ctr}/100"
-        systemctl restart bdsmail
-        sleep 30
-        bds_domain=$(bdsmail_domain)
-        sleep_ctr=$((sleep_ctr + 1))
-        if [ $sleep_ctr -gt 100 ]; then
-            break
-        fi
-    done
+    bdsmail_wait_for_key_generation
 
     if [ ! $bds_domain ]; then
         systemctl stop bdsmail
-- 
GitLab