diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 7 | ||||
-rw-r--r-- | src/Makefile.in | 37 | ||||
-rw-r--r-- | src/aconfig.h.in | 6 | ||||
-rw-r--r-- | src/main.c | 1 | ||||
-rw-r--r-- | src/ui_nask.c | 48 |
5 files changed, 87 insertions, 12 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 202e7a2..9fa6b3e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,6 @@ bin_PROGRAMS=naskpass naskshell naskpass_check -naskpass_SOURCES=main.c log.c opt.c status.c ui_ani.c ui.c ui_input.c ui_ipc.c ui_txtwindow.c ui_statusbar.c ui_nask.c +naskpass_SOURCES=main.c log.c opt.c utils.c status.c ui_ani.c ui.c ui_input.c ui_ipc.c ui_txtwindow.c ui_statusbar.c ui_nask.c +naskpass_LDFLAGS= naskpass_check_SOURCES=check/check.c naskshell_SOURCES=shell/shell.c if DEBUG @@ -7,3 +8,7 @@ naskpass_CFLAGS=-O0 -g3 -DDEBUG else naskpass_CFLAGS=-fPIC -fomit-frame-pointer -fexpensive-optimizations -Os endif +if RESOLVE +naskpass_CFLAGS+=-DHAVE_RESOLVE +naskpass_LDFLAGS+=-lresolv +endif diff --git a/src/Makefile.in b/src/Makefile.in index 4a5a4cf..718ab6d 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -80,6 +80,8 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = naskpass$(EXEEXT) naskshell$(EXEEXT) \ naskpass_check$(EXEEXT) +@RESOLVE_TRUE@am__append_1 = -DHAVE_RESOLVE +@RESOLVE_TRUE@am__append_2 = -lresolv subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/aconfig.h.in $(top_srcdir)/build/depcomp @@ -94,15 +96,15 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_naskpass_OBJECTS = naskpass-main.$(OBJEXT) naskpass-log.$(OBJEXT) \ - naskpass-opt.$(OBJEXT) naskpass-status.$(OBJEXT) \ - naskpass-ui_ani.$(OBJEXT) naskpass-ui.$(OBJEXT) \ - naskpass-ui_input.$(OBJEXT) naskpass-ui_ipc.$(OBJEXT) \ - naskpass-ui_txtwindow.$(OBJEXT) \ + naskpass-opt.$(OBJEXT) naskpass-utils.$(OBJEXT) \ + naskpass-status.$(OBJEXT) naskpass-ui_ani.$(OBJEXT) \ + naskpass-ui.$(OBJEXT) naskpass-ui_input.$(OBJEXT) \ + naskpass-ui_ipc.$(OBJEXT) naskpass-ui_txtwindow.$(OBJEXT) \ naskpass-ui_statusbar.$(OBJEXT) naskpass-ui_nask.$(OBJEXT) naskpass_OBJECTS = $(am_naskpass_OBJECTS) naskpass_LDADD = $(LDADD) -naskpass_LINK = $(CCLD) $(naskpass_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ - $(LDFLAGS) -o $@ +naskpass_LINK = $(CCLD) $(naskpass_CFLAGS) $(CFLAGS) \ + $(naskpass_LDFLAGS) $(LDFLAGS) -o $@ am__dirstamp = $(am__leading_dot)dirstamp am_naskpass_check_OBJECTS = check/check.$(OBJEXT) naskpass_check_OBJECTS = $(am_naskpass_check_OBJECTS) @@ -273,11 +275,13 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -naskpass_SOURCES = main.c log.c opt.c status.c ui_ani.c ui.c ui_input.c ui_ipc.c ui_txtwindow.c ui_statusbar.c ui_nask.c +naskpass_SOURCES = main.c log.c opt.c utils.c status.c ui_ani.c ui.c ui_input.c ui_ipc.c ui_txtwindow.c ui_statusbar.c ui_nask.c +naskpass_LDFLAGS = $(am__append_2) naskpass_check_SOURCES = check/check.c naskshell_SOURCES = shell/shell.c -@DEBUG_FALSE@naskpass_CFLAGS = -fPIC -fomit-frame-pointer -fexpensive-optimizations -Os -@DEBUG_TRUE@naskpass_CFLAGS = -O0 -g3 -DDEBUG +@DEBUG_FALSE@naskpass_CFLAGS = -fPIC -fomit-frame-pointer \ +@DEBUG_FALSE@ -fexpensive-optimizations -Os $(am__append_1) +@DEBUG_TRUE@naskpass_CFLAGS = -O0 -g3 -DDEBUG $(am__append_1) all: aconfig.h $(MAKE) $(AM_MAKEFLAGS) all-am @@ -418,6 +422,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_nask.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_statusbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-ui_txtwindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/naskpass-utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@check/$(DEPDIR)/check.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shell/$(DEPDIR)/shell.Po@am__quote@ @@ -479,6 +484,20 @@ naskpass-opt.obj: opt.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-opt.obj `if test -f 'opt.c'; then $(CYGPATH_W) 'opt.c'; else $(CYGPATH_W) '$(srcdir)/opt.c'; fi` +naskpass-utils.o: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -MT naskpass-utils.o -MD -MP -MF $(DEPDIR)/naskpass-utils.Tpo -c -o naskpass-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/naskpass-utils.Tpo $(DEPDIR)/naskpass-utils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils.c' object='naskpass-utils.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c + +naskpass-utils.obj: utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -MT naskpass-utils.obj -MD -MP -MF $(DEPDIR)/naskpass-utils.Tpo -c -o naskpass-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/naskpass-utils.Tpo $(DEPDIR)/naskpass-utils.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils.c' object='naskpass-utils.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -c -o naskpass-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi` + naskpass-status.o: status.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(naskpass_CFLAGS) $(CFLAGS) -MT naskpass-status.o -MD -MP -MF $(DEPDIR)/naskpass-status.Tpo -c -o naskpass-status.o `test -f 'status.c' || echo '$(srcdir)/'`status.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/naskpass-status.Tpo $(DEPDIR)/naskpass-status.Po diff --git a/src/aconfig.h.in b/src/aconfig.h.in index 333f005..cbae5a0 100644 --- a/src/aconfig.h.in +++ b/src/aconfig.h.in @@ -87,6 +87,12 @@ and to 0 otherwise. */ #undef HAVE_REALLOC +/* Define to 1 if you have libc resolv. */ +#undef HAVE_RESOLVE + +/* Define to 1 if you have the <resolv.h> header file. */ +#undef HAVE_RESOLV_H + /* Define to 1 if you have the <semaphore.h> header file. */ #undef HAVE_SEMAPHORE_H @@ -77,6 +77,7 @@ run_cryptcreate(char *pass, char *crypt_cmd) void sigfunc(int signal) { switch (signal) { + case SIGSEGV: case SIGTERM: ui_ipc_semtrywait(SEM_UI); break; diff --git a/src/ui_nask.c b/src/ui_nask.c index 4857de6..32a8dcc 100644 --- a/src/ui_nask.c +++ b/src/ui_nask.c @@ -11,10 +11,13 @@ #include "ui_txtwindow.h" #include "ui_nask.h" +#include "utils.h" #include "status.h" #define APP_TIMEOUT 60 #define APP_TIMEOUT_FMT "%02d" +#define NETUPD_INTERVAL 5 +#define NETUPD_STRLEN 128 #define BSTR_LEN 3 #define PASSWD_WIDTH 35 #define PASSWD_HEIGHT 5 @@ -30,9 +33,10 @@ static struct input *pw_input; static struct anic *heartbeat; -static struct statusbar *higher, *lower; +static struct statusbar *higher, *lower, *netinfo; static struct txtwindow *busywnd, *errwnd; -static int atmout = APP_TIMEOUT; +static unsigned int atmout = APP_TIMEOUT; +static unsigned int netupd = 0; static char *title = NULL; static char busy_str[BSTR_LEN+1] = ".\0\0\0"; @@ -54,6 +58,41 @@ higher_statusbar_update(WINDOW *win, struct statusbar *bar, bool ui_timeout) } static int +netinfo_statusbar_update(WINDOW *win, struct statusbar *bar, bool ui_timeout) +{ + if (ui_timeout == TRUE) { + if (netupd == 0) { + netupd = NETUPD_INTERVAL; + size_t len = 0; + char buf[NETUPD_STRLEN+1]; + char *dev, *gwIp, *myIp; + memset(buf, '\0', NETUPD_STRLEN+1); + if (utGetDefaultGwInfo(&dev, &gwIp) == 0) { + if (utGetIpFromNetDev(dev, &myIp) == 0) { +#ifdef HAVE_RESOLVE + char *dom, *srv; + if (utGetDomainInfo(&dom, &srv) == 0) { + snprintf(buf, NETUPD_STRLEN, "netdev: %s // address: %s // gateway: %s // dns: %s // domain: %s", dev, myIp, gwIp, srv, dom); + } + free(dom); + free(srv); +#else + snprintf(buf, NETUPD_STRLEN, "netdev: %s // address: %s // gateway: %s", dev, myIp, gwIp); +#endif + free(myIp); + } + free(dev); + free(gwIp); + } + set_statusbar_text(bar, buf); + } else { + netupd--; + } + } + return DOUI_OK; +} + +static int busywnd_update(WINDOW *win, struct txtwindow *tw, bool ui_timeout) { if (ui_timeout == TRUE && tw->active == TRUE) { @@ -153,6 +192,8 @@ init_ui_elements(unsigned int max_x, unsigned int max_y) higher_statusbar_update); lower = init_statusbar(max_y - 1, max_x, COLOR_PAIR(3), lower_statusbar_update); + netinfo = init_statusbar(1, max_x, COLOR_PAIR(2), + netinfo_statusbar_update); busywnd = init_txtwindow_centered(INFOWND_WIDTH, INFOWND_HEIGHT, busywnd_update); errwnd = init_txtwindow_centered(INFOWND_WIDTH, INFOWND_HEIGHT, @@ -161,6 +202,7 @@ init_ui_elements(unsigned int max_x, unsigned int max_y) register_input(NULL, pw_input, passwd_input_cb); register_statusbar(higher); register_statusbar(lower); + register_statusbar(netinfo); register_anic_default(heartbeat); register_txtwindow(busywnd); register_txtwindow(errwnd); @@ -173,12 +215,14 @@ free_ui_elements(void) { unregister_ui_elt(lower); unregister_ui_elt(higher); + unregister_ui_elt(netinfo); unregister_ui_elt(heartbeat); unregister_ui_elt(pw_input); free_input(pw_input); free_anic_default(heartbeat); free_statusbar(higher); free_statusbar(lower); + free_statusbar(netinfo); free_txtwindow(busywnd); free_txtwindow(errwnd); free_ui(); |