diff --git a/src/util/Makefile b/src/util/Makefile index 21c7b967..d72661e2 100644 --- a/src/util/Makefile +++ b/src/util/Makefile @@ -1,7 +1,7 @@ BLIB = ../bin/blib.a CFLAGS = -Os -all : hijack prototester +all : hijack prototester mucurses_test hijack : hijack.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -Wall -lpcap -o $@ $< @@ -12,5 +12,11 @@ prototester.o : prototester.c prototester : prototester.o $(BLIB) $(CC) -o $@ $< -lc $(BLIB) +mucurses_test.o : mucurses_test.c + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -Wall -o $@ -c $< + +mucurses_test : mucurses_test.o $(BLIB) + $(CC) -o $@ $< -lc $(BLIB) + clean : - rm -f hijack prototester *.o + rm -f hijack prototester mucurses_test *.o diff --git a/src/util/mucurses_test.c b/src/util/mucurses_test.c new file mode 100644 index 00000000..85c9a3b7 --- /dev/null +++ b/src/util/mucurses_test.c @@ -0,0 +1,63 @@ +#include "../include/curses.h" +#include +#include +#include + +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[16], pw2[16]; + 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, 12 ); + wmove( secret, 8, 12 ); + wgetnstr( secret, pw2, 12 ); + + 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 ); +}