Happy New Year
[squirrelmail.git] / plugins / change_password / backend / poppassd.php
index d4ab89022852fc3fc216a0d5c3ce3b2ddfc87752..69d64840f9e134fd053f9e80539bc8d79ff37c16 100644 (file)
@@ -1,9 +1,14 @@
 <?php
 
 /**
- * $id$
  * Poppassd change password backend
- * Author: Seth Randall <sethr@missoulafcu.org>
+ *
+ * @author Seth Randall <sethr at missoulafcu.org>
+ * @copyright 2004-2018 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package plugins
+ * @subpackage change_password
  */
 
 /**
@@ -18,21 +23,14 @@ global $poppassd_server;
 
 $poppassd_server = '';
 
+/* get overrides from config.php */
+if (isset($cpw_poppassd['server'])) $poppassd_server=$cpw_poppassd['server'];
+
 /**
  * Define here the name of your password changing function.
  */
 global $squirrelmail_plugin_hooks;
 $squirrelmail_plugin_hooks['change_password_dochange']['poppassd'] = 'cpw_poppassd_dochange';
-$squirrelmail_plugin_hooks['change_password_init']['template'] = 'cpw_poppassd_init';
-
-
-/**
- * Use this function to do any backend-specific initialization,
- * e.g. checking requirements, before the password change form
- * is displayed to the user.
- */
-function cpw_poppassd_init() {
-}
 
 /**
  * This is the function that is specific to your backend. It takes
@@ -44,7 +42,7 @@ function cpw_poppassd_init() {
  * CPW_CURRENT_NOMATCH -> "Your current password is not correct."
  * CPW_INVALID_PW -> "Your new password contains invalid characters."
  *
- * @param array data The username/currentpw/newpw data. 
+ * @param array data The username/currentpw/newpw data.
  * @return array Array of error messages.
  */
 function cpw_poppassd_dochange($data) {
@@ -88,8 +86,13 @@ function cpw_poppassd_go($username, $old_pw, $new_pw, $debug = 0) {
     global $poppassd_server;
     global $imapServerAddress;
 
+    /** sqimap_get_user_server() function */
+    include_once(SM_PATH . 'functions/imap_general.php');
+
     if($poppassd_server == '') {
-        $poppassd_server = $imapServerAddress;
+        // if poppassd address is not set, use imap server's address
+        // make sure that setting contains address and not mapping
+        $poppassd_server = sqimap_get_user_server($imapServerAddress,$username);
     }
 
     $messages = array();
@@ -99,7 +102,7 @@ function cpw_poppassd_go($username, $old_pw, $new_pw, $debug = 0) {
     }
     $pop_socket = fsockopen($poppassd_server, 106, $errno, $errstr);
     if (!$pop_socket) {
-        $messages[] = _("ERROR:") .  "$errstr ($errno)";
+        $messages[] = _("ERROR") . ': ' . "$errstr ($errno)";
         return $messages;
     }
 
@@ -132,5 +135,3 @@ function cpw_poppassd_go($username, $old_pw, $new_pw, $debug = 0) {
 
     return $messages;
 }
-
-?>