#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 ); }