Handle upgrade for libpam-radius-auth.
authorValentin Vidic <Valentin.Vidic@CARNet.hr>
Mon, 13 Feb 2012 12:09:08 +0000 (13:09 +0100)
committerValentin Vidic <Valentin.Vidic@CARNet.hr>
Mon, 13 Feb 2012 12:09:08 +0000 (13:09 +0100)
src/functions.sh

index 209d79a..6beb99b 100644 (file)
@@ -925,6 +925,8 @@ upgrade_amavis () {
 
 # handle freerdius upgrade
 upgrade_freeradius () {
+  local password
+
   pkg freeradius-aai lt 2.1.10-1 || return 0
 
   # aai team prevents a normal upgrade
@@ -932,6 +934,20 @@ upgrade_freeradius () {
   pkgrm freeradius-aai freeradius-ldap freeradius
   rm -rf /etc/freeradius/certs
   pkgadd freeradius-aai
+
+  # sync localhost passwords
+  if pkg libpam-radius-auth && [ -f "/etc/pam_radius_auth.conf" ]; then
+    pkgadd libpam-radius-auth
+    password=$(
+      sed -n '/^[[:space:]]*client[[:space:]]\+localhost/,/^[[:space:]]*}/ { /^[[:space:]]*secret[[:space:]]*=[[:space:]]*\([^[:space:]]*\)/s//\1/p }' /etc/freeradius/clients.conf
+    )
+    if [ "$password" ] \
+       && ! grep -q "^127.0.0.1[[:space:]]\+$password[[:space:]]\+" \
+         /etc/pam_radius_auth.conf
+    then
+      sed -i.$backup_ext "s/^\(127.0.0.1[[:space:]]*\)[^[:space:]]*\(.*\)/\1$password\2/" /etc/pam_radius_auth.conf
+    fi
+  fi
 }
 
 # handle mysql 5.0 to 5.1 upgrade