]> git.sur5r.net Git - ngadmin/blob - cli/com_password.c
Cli: refactor, change coding style
[ngadmin] / cli / com_password.c
1
2 #include "commands.h"
3
4
5 bool do_password_change (int nb, const char **com, struct ngadmin *nga)
6 {
7         int i;
8         const struct swi_attr *sa;
9         
10         
11         if (nb != 1) {
12                 printf("Usage: password change <value>\n");
13                 return false;
14         }
15         
16         sa = ngadmin_getCurrentSwitch(nga);
17         if (sa == NULL) {
18                 printf("must be logged\n");
19                 return false;
20         }
21         
22         i = ngadmin_changePassword(nga, com[0]);
23         printErrCode(i);
24         
25         
26         return true;
27 }
28
29
30 bool do_password_set (int nb, const char **com, struct ngadmin *nga)
31 {
32         int i;
33         char buf[64];
34         const char *pass;
35         
36         
37         if (nb > 1) {
38                 printf("Usage: password set [<value>]\n");
39                 return false;
40         }
41         
42         if (nb == 0) {
43                 printf("Enter password: ");
44                 fflush(stdout);
45                 current_term.c_lflag &= ~ECHO;
46                 tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
47                 pass = fgets(buf, sizeof(buf), stdin);
48                 trim(buf, strlen(buf));
49                 current_term.c_lflag |= ECHO;
50                 tcsetattr(STDIN_FILENO, TCSANOW, &current_term);
51                 putchar('\n');
52         } else {
53                 pass = com[0];
54         }
55         
56         if (pass != NULL) {
57                 i = ngadmin_setPassword(nga, pass);
58                 printErrCode(i);
59         }
60         
61         
62         return true;
63 }
64
65