1 #include "../include/curses.h" 2 #include <string.h> 3 #include <unistd.h> 4 #include <stdlib.h> 5 6 void get_iscsi_chap_secret( char * ); 7 void mdelay( int msecs ); 8 9 int main ( void ) { 10 char secret[16]; 11 initscr(); 12 echo(); 13 werase(stdscr); 14 box( stdscr, '|', '-' ); 15 get_iscsi_chap_secret(secret); 16 17 mvwprintw( stdscr, 3, 5, "password is \"%s\"", secret ); 18 mdelay(2500); 19 20 stdscr->scr->exit(stdscr->scr); 21 22 return 0; 23 } 24 25 void get_iscsi_chap_secret( char *sec ) { 26 char *title = "Set new iSCSI CHAP secret", 27 *msg = "Configure the iSCSI access secret", 28 pw1[17], pw2[17]; 29 WINDOW *secret; 30 31 secret = newwin( stdscr->height / 2, 32 stdscr->width / 2, 33 stdscr->height / 4, 34 stdscr->width / 4 ); 35 36 wborder( secret, '|', '|', '-', '-', '+', '+', '+', '+' ); 37 mvwprintw( secret, 1, 2, "%s", title ); 38 mvwhline( secret, 2, 1, '-' | secret->attrs, secret->width - 2 ); 39 mvwprintw( secret, 4, 2, "%s", msg ); 40 mvwprintw( secret, 6, 3, "secret" ); 41 mvwprintw( secret, 8, 3, "confirm" ); 42 start: 43 mvwhline( secret, 6, 12, '_' | secret->attrs, 16 ); 44 mvwhline( secret, 8, 12, '_' | secret->attrs, 16 ); 45 46 wmove( secret, 6, 12 ); 47 wgetnstr( secret, pw1, 16 ); 48 wmove( secret, 8, 12 ); 49 wgetnstr( secret, pw2, 16 ); 50 51 if ( strcmp( pw1, pw2 ) == 0 ) { 52 strcpy( sec, pw1 ); 53 werase( secret ); 54 } 55 else { 56 mvwprintw( secret, 10, 3, "Passwords do not match" ); 57 goto start; 58 } 59 } 60 61 void mdelay ( int msecs ) { 62 usleep( msecs * 1000 ); 63 } 64