Thomas Bruederli
2013-06-20 07c6c69eca8751c0e96a846afb30c24ab2638b1f
commit | author | age
48e9c1 1 <?php
T 2
3 /**
4  * vpopmail Password Driver
5  *
6  * Driver to change passwords via vpopmaild
7  *
8  * @version 2.0
9  * @author Johannes Hessellund
10  *
11  */
12
13 class rcube_vpopmaild_password
14 {
15     function save($curpass, $passwd)
16     {
17         $rcmail = rcmail::get_instance();
18     //    include('Net/Socket.php');
19         $vpopmaild = new Net_Socket();
20
21         if (PEAR::isError($vpopmaild->connect($rcmail->config->get('password_vpopmaild_host'),
d6938b 22             $rcmail->config->get('password_vpopmaild_port'), null))) {
48e9c1 23             return PASSWORD_CONNECT_ERROR;
T 24         }
25
26         $result = $vpopmaild->readLine();
27         if(!preg_match('/^\+OK/', $result)) {
28             $vpopmaild->disconnect();
29             return PASSWORD_CONNECT_ERROR;
30         }
31
32         $vpopmaild->writeLine("slogin ". $_SESSION['username'] . " " . $curpass);
33         $result = $vpopmaild->readLine();
34
35         if(!preg_match('/^\+OK/', $result) ) {
36             $vpopmaild->writeLine("quit");
37             $vpopmaild->disconnect();
38             return PASSWORD_ERROR;
39         }
40
41         $vpopmaild->writeLine("mod_user ". $_SESSION['username']);
42         $vpopmaild->writeLine("clear_text_password ". $passwd);
43         $vpopmaild->writeLine(".");
44         $result = $vpopmaild->readLine();
45         $vpopmaild->writeLine("quit");
46         $vpopmaild->disconnect();
47
48         if (!preg_match('/^\+OK/', $result))
49             return PASSWORD_ERROR;
50
51         return PASSWORD_SUCCESS;
52     }
53 }