+++ /dev/null
-<?php
-/*
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
- * $Id: functions.php,v 1.7 2009/05/14 02:33:01 indiri69 Exp $
- */
-
-function change_pass_option_link_do() {
- global $optpage_blocks;
-
- sq_change_text_domain('change_pass');
- $optpage_blocks[] = array(
- 'name' => _("Change Password"),
- 'url' => sqm_baseuri() . 'plugins/change_pass/options.php',
- 'desc' => _("Use this to change your email password."),
- 'js' => FALSE
- );
- sq_change_text_domain('squirrelmail');
-}
-
-function change_pass_dochange($change_pass_old, $change_pass_new, $debug = false) {
- global $username, $imapServerAddress;
- $poppass_server = $imapServerAddress;
- $poppass_port = 106;
-
- if(!@include(SM_PATH . 'config/config_change_pass.php')) {
- @include(SM_PATH . 'plugins/change_pass/config.php');
- }
-
- $error_messages = array();
-
- $pop_socket = @fsockopen($poppass_server, $poppass_port, $errno, $errstr);
- if (!$pop_socket) {
- sq_change_text_domain('change_pass');
- $error_messages[] = sprintf(_("Connection error: %s"), "$errstr ($errno)");
- sq_change_text_domain('squirrelmail');
- return $error_messages;
- }
-
- // Look for a 2xx result to continue
- $result = change_pass_readfb($pop_socket, $debug);
- if(preg_match('/^2\d\d/', $result)) {
- // Send the username whose password to change
- if(fwrite($pop_socket, "user $username\r\n")) {
- $result = change_pass_readfb($pop_socket, $debug);
- if(preg_match('/^[23]\d\d/', $result)) {
- // Send the users current password
- if(fwrite($pop_socket, "pass $change_pass_old\r\n")) {
- $result = change_pass_readfb($pop_socket, $debug);
- if(preg_match('/^[23]\d\d/', $result)) {
- // Send the new password
- if(fwrite($pop_socket, "newpass $change_pass_new\r\n")) {
- $result = change_pass_readfb($pop_socket, $debug);
- if(!preg_match('/^2\d\d/', $result)) {
- sq_change_text_domain('change_pass');
- $error_messages[] = _("Password change was not successful!");
- sq_change_text_domain('squirrelmail');
- } else {
- change_pass_closeport($pop_socket, $debug);
- sqauth_save_password($change_pass_new);
- session_write_close();
- header('Location: ' . sqm_baseuri() . 'src/options.php?optmode=submit&optpage=change_pass&plugin_change_pass=1');
- exit;
- }
- }
- }
- }
- }
- }
- }
- change_pass_closeport($pop_socket, $debug);
- return $error_messages;
-}
-
-function change_pass_closeport($pop_socket, $debug = false) {
- if ($debug) {
- $messages[] = "Closing Connection";
- }
- fputs($pop_socket, "quit\r\n");
- fclose($pop_socket);
-}
-
-function change_pass_readfb($pop_socket, $debug = false) {
- $strResp = '';
- $result = '';
-
- if (!feof($pop_socket)) {
- $strResp = fgets($pop_socket, 1024);
- $result = substr(trim($strResp), 0, 3); // 200, 300, 500
- if($debug) {
- $messages[] = "--> $strResp";
- }
- }
- return $result;
-}
-
-function change_pass_info_real() {
- return array(
- 'english_name' => 'Change Password',
- 'authors' => array(
- 'Richie Low' => array(),
- 'Tyler Akins' => array(),
- 'Seth Randall' => array(
- 'email' => 'indiri69@users.sourceforge.net',
- 'sm_site_username' => 'randall',
- ),
- ),
- 'version' => '3.0',
- 'required_sm_version' => '1.4.0',
- 'requires_configuration' => 0,
- 'requires_source_patch' => 0,
- 'required_plugins' => array(),
- 'per_version_requirements' => array(
- '1.5.0' => SQ_INCOMPATIBLE,
- '1.4.16' => array(
- 'required_plugins' => array()
- ),
- '1.4.0' => array(
- 'required_plugins' => array(
- 'compatibility' => array(
- 'version' => '2.0.13',
- 'activate' => FALSE
- )
- )
- )
- ),
- 'summary' => 'Change passwords using a poppass daemon',
- 'details' => 'Works with a compatible poppass daemon to allow users to change their passwords.'
- );
-}
-
-function change_pass_loadinfo_real() {
- global $optpage, $optpage_name;
-
- if ($optpage == 'change_pass') {
- // i18n: is displayed after "Successfully Saved Options:"
- sq_change_text_domain('change_pass');
- $optpage_name = _("User's Password");
- sq_change_text_domain('squirrelmail');
- }
-}