Diff for /libaitio/example/bpf.c between versions 1.1.2.6 and 1.1.2.10

version 1.1.2.6, 2013/06/25 17:06:02 version 1.1.2.10, 2013/06/26 13:33:55
Line 78  ShowPkt(void *buffer) Line 78  ShowPkt(void *buffer)
   
         assert(buffer);          assert(buffer);
   
 #ifdef __FreeBSD__  
         snprintf(szLine, BUFSIZ, "#Packet length: %d\n>>> Ethernet ...\n", flg ? bzh->bzh_kernel_len : bpf->bh_datalen);  
         strlcat(szShow, szLine, USHRT_MAX);  
         eth = (struct ether_header *) (buffer + (flg ? bzh->bzh_kernel_len : bpf->bh_hdrlen));  
 #else  
         snprintf(szLine, BUFSIZ, "#Packet length: %d\n>>> Ethernet ...\n", bpf->bh_datalen);          snprintf(szLine, BUFSIZ, "#Packet length: %d\n>>> Ethernet ...\n", bpf->bh_datalen);
         strlcat(szShow, szLine, USHRT_MAX);          strlcat(szShow, szLine, USHRT_MAX);
         eth = (struct ether_header *) (buffer + bpf->bh_hdrlen);          eth = (struct ether_header *) (buffer + bpf->bh_hdrlen);
 #endif  
   
         switch (ntohs(eth->ether_type)) {          switch (ntohs(eth->ether_type)) {
                 case ETHERTYPE_ARP:                  case ETHERTYPE_ARP:
Line 300  main(int argc, char **argv) Line 294  main(int argc, char **argv)
                 strlcpy(szStr, *argv, sizeof szStr);                  strlcpy(szStr, *argv, sizeof szStr);
   
 #ifdef __FreeBSD__  #ifdef __FreeBSD__
        dev = io_etherOpen(szStr, O_RDWR, 42, (u_int*) &siz, &bz);        dev = io_etherOpen(szStr, O_RDWR | O_NONBLOCK, 42, (u_int*) &siz, (flg) ? &bz : NULL);
         if (dev == -1)          if (dev == -1)
                dev = io_etherOpen(szStr, O_RDWR, 42, (u_int*) &siz, NULL);                dev = io_etherOpen(szStr, O_RDWR | O_NONBLOCK, 42, (u_int*) &siz, NULL);
 #else  #else
         dev = io_etherOpen(szStr, O_RDWR, 42, (u_int*) &siz, NULL);          dev = io_etherOpen(szStr, O_RDWR, 42, (u_int*) &siz, NULL);
 #endif  #endif
Line 341  main(int argc, char **argv) Line 335  main(int argc, char **argv)
         if (mode == 'R') {          if (mode == 'R') {
                 pfd.events = POLLIN;                  pfd.events = POLLIN;
                 for (i = 0; i < count; i++) {                  for (i = 0; i < count; i++) {
                        if (poll(&pfd, 1, -1) == -1)                        if ((ret = poll(&pfd, 1, -1)) == -1)
                                 break;                                  break;
   
                         ret = io_etherRecv(dev, buffer, siz, bz);                          ret = io_etherRecv(dev, buffer, siz, bz);
                           if (!ret)
                                   continue;
                         if (ret == -1)                          if (ret == -1)
                                 printf("%d) io_etherRecv(%d) #%d - %s\n", i, ret,                                   printf("%d) io_etherRecv(%d) #%d - %s\n", i, ret, 
                                                 io_GetErrno(), io_GetError());                                                  io_GetErrno(), io_GetError());

Removed from v.1.1.2.6  
changed lines
  Added in v.1.1.2.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>