- count=0;
- p_count=&count;
- pcap_loop(pcap_handle,-1,pcap_process,(u_char *)p_count);
+ my_info_struct.count=0;
+ my_info_struct.mmode=argv[2][0];
+ strcpy(my_info_struct.dev,argv[1]);
+
+ /* prepare for select */
+ pcap_fd=pcap_fileno(pcap_handle);
+
+ /* create file descriptor */
+ if((foo_fd=socket(AF_INET,SOCK_DGRAM,0))==-1) {
+ printf("unable to create socket foo_fd\n");
+ return -1;
+ }
+
+ /* do loopp */
+ while (1) {
+
+ /* set pcap_fd */
+ FD_ZERO(&pcap_fd_set);
+ FD_SET(pcap_fd,&pcap_fd_set);
+ fd_set_tv.tv_sec=0;
+ fd_set_tv.tv_usec=200000;
+
+ if((select(pcap_fd+1,&pcap_fd_set,NULL,NULL,&fd_set_tv)) && (FD_ISSET(pcap_fd,&pcap_fd_set))) pcap_dispatch(pcap_handle,-1,pcap_process,(u_char *)&my_info_struct);
+ else if((hop_channel(&my_info_struct,foo_fd))==-1) {
+ printf("channelhopping failed, aborting\n");
+ return -1;
+ }
+ }
+ return 0;