| #include "../include/curses.h" |
| #include <string.h> |
| #include <unistd.h> |
| #include <stdlib.h> |
| |
| void get_iscsi_chap_secret( char * ); |
| void mdelay( int msecs ); |
| |
| int main ( void ) { |
| char secret[16]; |
| initscr(); |
| echo(); |
| werase(stdscr); |
| box( stdscr, '|', '-' ); |
| get_iscsi_chap_secret(secret); |
| |
| mvwprintw( stdscr, 3, 5, "password is \"%s\"", secret ); |
| mdelay(2500); |
| |
| stdscr->scr->exit(stdscr->scr); |
| |
| return 0; |
| } |
| |
| void get_iscsi_chap_secret( char *sec ) { |
| char *title = "Set new iSCSI CHAP secret", |
| *msg = "Configure the iSCSI access secret", |
| pw1[17], pw2[17]; |
| WINDOW *secret; |
| |
| secret = newwin( stdscr->height / 2, |
| stdscr->width / 2, |
| stdscr->height / 4, |
| stdscr->width / 4 ); |
| |
| wborder( secret, '|', '|', '-', '-', '+', '+', '+', '+' ); |
| mvwprintw( secret, 1, 2, "%s", title ); |
| mvwhline( secret, 2, 1, '-' | secret->attrs, secret->width - 2 ); |
| mvwprintw( secret, 4, 2, "%s", msg ); |
| mvwprintw( secret, 6, 3, "secret" ); |
| mvwprintw( secret, 8, 3, "confirm" ); |
| start: |
| mvwhline( secret, 6, 12, '_' | secret->attrs, 16 ); |
| mvwhline( secret, 8, 12, '_' | secret->attrs, 16 ); |
| |
| wmove( secret, 6, 12 ); |
| wgetnstr( secret, pw1, 16 ); |
| wmove( secret, 8, 12 ); |
| wgetnstr( secret, pw2, 16 ); |
| |
| if ( strcmp( pw1, pw2 ) == 0 ) { |
| strcpy( sec, pw1 ); |
| werase( secret ); |
| } |
| else { |
| mvwprintw( secret, 10, 3, "Passwords do not match" ); |
| goto start; |
| } |
| } |
| |
| void mdelay ( int msecs ) { |
| usleep( msecs * 1000 ); |
| } |