char pcap_error[PCAP_ERRBUF_SIZE];
pcap_t *pcap_handle;
- int pcap_fd;
+ int pcap_fd,foo_fd;
fd_set pcap_fd_set;
struct timeval fd_set_tv;
char sys_call[30];
/* prepare for select */
pcap_fd=pcap_fileno(pcap_handle);
- FD_ZERO(&pcap_fd_set);
- FD_SET(pcap_fd,&pcap_fd_set);
- fd_set_tv.tv_sec=0;
- fd_set_tv.tv_usec=500000;
+
+ /* 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) {
- if((select(pcap_fd+1,&pcap_fd_set,NULL,NULL,&fd_set_tv)) && (FD_ISSET(pcap_fd,&pcap_fd_set))) pcap_loop(pcap_handle,-1,pcap_process,(u_char *)&my_info_struct);
- else if((hop_channel(&my_info_struct,pcap_fd))==-1) {
+ 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=500000;
+
+ 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;
}
/* local variables */
struct linux_wlan_ng_prism_hdr *prism_hdr;
struct ieee802_11_hdr *w_hdr;
- struct ip *ip_hdr;
struct ethhdr *e_hdr;
+ struct ip *ip_hdr;
struct info_struct *my_info_struct;
int i;
/* ieee802.3 */
/* ethernet */
+ printf("ethernet:\n");
e_hdr=(struct ethhdr *)package;
/* what types ? */
printf("type = ");
printf("\n");
}
-int hop_channel(struct info_struct *info,int pcap_fd) {
+int hop_channel(struct info_struct *info,int foo_fd) {
struct iwreq my_iwreq;
- int foo_fd;
- /* oder vielleicht doch pcap_fd ? */
- if((foo_fd=socket(AF_INET,SOCK_DGRAM,0))==-1) {
- printf("unable to create socket\n");
- return -1;
- }
- if (info->channel==15) info->channel=1;
+ if (info->channel>=14) info->channel=1;
memset(&my_iwreq,0,sizeof(my_iwreq));
strcpy(my_iwreq.ifr_name,info->dev);
printf("debug: device = %s\n",my_iwreq.ifr_name);
+ printf("debug: %d\n",foo_fd);
+ printf("debug: channel = %d\n",info->channel);
my_iwreq.u.freq.e=0;
my_iwreq.u.freq.m=info->channel;
- // if((ioctl(foo_fd,SIOCSIWFREQ,&my_iwreq))==-1) {
- if((ioctl(pcap_fd,SIOCSIWFREQ,&my_iwreq))==-1) {
+ if((ioctl(foo_fd,SIOCSIWFREQ,&my_iwreq))==-1) {
printf("unable to hop channels\n");
perror("ioctl");
return -1;
++(info->channel);
return 0;
}
-