+int get_user_interaction(t_info *info) {
+
+ char *string;
+
+ string=(char *)malloc(info->display.max_x*sizeof(char));
+
+ input_get_event(&(info->input),noop,info);
+
+ /*
+ if(info->input.content[0]=='h') {
+ display_console(info,"hdw-sniff help:");
+ display_console(info,"h - print this help");
+ display_console(info,"x - enable/disable hex output");
+ display_console(info,"a - enable/disable ascii output");
+ display_console(info,"q - quit");
+ display_console(info,"console navigation: arrow up/down");
+ display_console(info,"network list navigation: page up/down");
+ }
+ */
+
+ if(info->input.content[0]=='x') {
+ info->mode^=MODE_HEXOUT;
+ display_console(info,"toggled hex output");
+ }
+
+ else if(info->input.content[0]=='a') {
+ info->mode^=MODE_ASCIIOUT;
+ display_console(info,"toggled ascii output");
+ }
+
+ else if(info->input.content[0]=='q') {
+ event_stop(&(info->event));
+ display_console(info,"quit!");
+ }
+
+ else {
+ snprintf(string,info->display.max_x,"unknown event (%x)",
+ info->input.content[0]);
+ display_console(info,string);
+ }
+
+ return 23;
+}
+
+int react_on_event(t_event *event,void *ptr) {
+
+ t_info *info;
+
+ info=(t_info *)ptr;
+
+ if(event_check(event,0)==E_FD_YES) get_user_interaction(info);
+ else pcap_dispatch(info->pcap_handle,-1,parse_package,(u_char *)ptr);
+
+ return 23;
+}
+
+int usage(void) {
+ puts("usage: hdw-sniff <options>");
+ puts("\toptions:");
+ puts("\t\t-m <mode> \tmonitor and/or wlanng");
+ puts("\t\t-d <device> \twlan0,eth0");
+ puts("\t\t-l <logfile>");
+ puts("\t\t-k <key> \t(string)");
+ puts("\t\t-D <file> \t(dump packages to file)");
+ puts("\t\t-h \tdisplay this help message");
+ puts("");
+
+ return 23;
+}
+
+int hop_channel(t_event *event,void *ptr) {