ctdlsh now has two working commands, 'date' and 'passwd'
[citadel.git] / ctdlsh / src / passwd.c
1 /*
2  * (c) 2009-2011 by Art Cancro and citadel.org
3  * This program is released under the terms of the GNU General Public License v3.
4  */
5
6 #include "ctdlsh.h"
7
8 int cmd_passwd(int server_socket, char *cmdbuf) {
9         char buf[1024];
10         time_t now;
11         char account_name[1024];
12         char *p1;
13         char *p2;
14
15         strcpy(account_name, &cmdbuf[7]);
16         sock_printf(server_socket, "AGUP %s\n", account_name);
17         sock_getln(server_socket, buf, sizeof buf);
18         if (buf[0] != '2') {
19                 fprintf(stderr, "No such user.\n");
20                 return(cmdret_error);
21         }
22
23         p1 = readline("Enter new password: ");
24         p2 = readline("Enter it again: ");
25
26         if (strcmp(p1, p2)) {
27                 fprintf(stderr, "Passwords do not match.  Account password is unchanged.\n");
28                 return(cmdret_error);
29         }
30
31         sock_printf(server_socket, "ASUP %s|%s\n", account_name, p2);
32         sock_getln(server_socket, buf, sizeof buf);
33         if (buf[0] != '2') {
34                 fprintf(stderr, "%s\n", &buf[4]);
35                 return(cmdret_error);
36         }
37
38         printf("Password has been changed.\n");
39         return(cmdret_ok);
40 }
41
42
43
44