]> git.donarmstrong.com Git - roundcube.git/blob - plugins/password/drivers/poppassd.php
Imported Upstream version 0.3
[roundcube.git] / plugins / password / drivers / poppassd.php
1 <?php
2
3 /**
4  * Poppassd Password Driver
5  *
6  * Driver to change passwords via Poppassd/Courierpassd
7  *
8  * @version 1.0
9  * @author Philip Weir
10  *
11  */
12
13 function password_save($curpass, $passwd)
14 {
15     $rcmail = rcmail::get_instance();
16 //    include('Net/Socket.php');
17     $poppassd = new Net_Socket();
18
19     if (PEAR::isError($poppassd->connect($rcmail->config->get('password_pop_host'), $rcmail->config->get('password_pop_port'), null))) {
20         return PASSWORD_CONNECT_ERROR;
21     }
22     else {
23         $result = $poppassd->readLine();
24         if(!preg_match('/^2\d\d/', $result)) {
25             $poppassd->disconnect();
26             return PASSWORD_ERROR;
27         }
28         else {
29             $poppassd->writeLine("user ". $_SESSION['username']);
30             $result = $poppassd->readLine();
31             if(!preg_match('/^[23]\d\d/', $result) ) {
32                 $poppassd->disconnect();
33                 return PASSWORD_CONNECT_ERROR;
34             }
35             else {
36                 $poppassd->writeLine("pass ". $curpass);
37                 $result = $poppassd->readLine();
38                 if(!preg_match('/^[23]\d\d/', $result) ) {
39                     $poppassd->disconnect();
40                     return PASSWORD_ERROR;
41                 }
42                 else {
43                     $poppassd->writeLine("newpass ". $passwd);
44                     $result = $poppassd->readLine();
45                     $poppassd->disconnect();
46                     if (!preg_match('/^2\d\d/', $result))
47                         return PASSWORD_ERROR;
48                     else
49                         return PASSWORD_SUCCESS;
50                 }
51             }
52         }
53     }
54 }
55
56 ?>