Diff for /libaitio/example/bpf.c between versions 1.2 and 1.4

version 1.2, 2013/06/26 22:48:53 version 1.4, 2013/12/15 22:57:20
Line 61  static void * Line 61  static void *
 ShowPkt(void *buffer)  ShowPkt(void *buffer)
 {  {
         char Proto = 0, szStr[BUFSIZ], szLine[BUFSIZ], szWrk[BUFSIZ], szShow[USHRT_MAX] = { 0 };          char Proto = 0, szStr[BUFSIZ], szLine[BUFSIZ], szWrk[BUFSIZ], szShow[USHRT_MAX] = { 0 };
         struct bpf_hdr *bpf = buffer;  
 #ifdef __FreeBSD__  #ifdef __FreeBSD__
         struct bpf_zbuf_header *bzh = buffer;          struct bpf_zbuf_header *bzh = buffer;
         struct icmphdr *icmp;          struct icmphdr *icmp;
Line 78  ShowPkt(void *buffer) Line 77  ShowPkt(void *buffer)
   
         assert(buffer);          assert(buffer);
   
        snprintf(szLine, BUFSIZ, "#Packet length: %d\n>>> Ethernet ...\n", bpf->bh_datalen);        eth = (struct ether_header *) buffer;
        strlcat(szShow, szLine, USHRT_MAX); 
        eth = (struct ether_header *) (buffer + bpf->bh_hdrlen); 
   
         switch (ntohs(eth->ether_type)) {          switch (ntohs(eth->ether_type)) {
                 case ETHERTYPE_ARP:                  case ETHERTYPE_ARP:
Line 251  main(int argc, char **argv) Line 248  main(int argc, char **argv)
         u_int n, count = (u_int) -1;          u_int n, count = (u_int) -1;
         register int i;          register int i;
         int dev, fd, ret, siz = 0;          int dev, fd, ret, siz = 0;
        char szStr[BUFSIZ], szMap[MAXPATHLEN] = { 0 }, *buffer = NULL;        char szStr[BUFSIZ], szEA[STRSIZ], szMap[MAXPATHLEN] = { 0 }, *buffer = NULL;
         struct ifreq ifr;          struct ifreq ifr;
         struct pollfd pfd = { 0 };          struct pollfd pfd = { 0 };
         pthread_t tid;          pthread_t tid;
         char ch, mode = 'R';          char ch, mode = 'R';
         struct timespec ts_start, ts_end;          struct timespec ts_start, ts_end;
         void *bz = NULL;          void *bz = NULL;
           ether_addr_t ea;
   
         while ((ch = getopt(argc, argv, "hvwzs:p:f:")) != -1)          while ((ch = getopt(argc, argv, "hvwzs:p:f:")) != -1)
                 switch (ch) {                  switch (ch) {
Line 293  main(int argc, char **argv) Line 291  main(int argc, char **argv)
         else          else
                 strlcpy(szStr, *argv, sizeof szStr);                  strlcpy(szStr, *argv, sizeof szStr);
   
           printf("io_getmaciface(%s) -> %d\n", szStr, io_getmaciface(szStr, &ea));
           e_ether_ntoa(&ea, szEA, sizeof szEA);
           printf("ethernet address is %s\n", szEA);
   
 #ifdef __FreeBSD__  #ifdef __FreeBSD__
        dev = io_etherOpen(szStr, O_RDWR | O_NONBLOCK, 42, (u_int*) &siz, (flg) ? &bz : NULL);        dev = io_etherOpen(szStr, O_RDWR | O_NONBLOCK, 42, 0, (u_int*) &siz, (flg) ? &bz : NULL);
         if (dev == -1)          if (dev == -1)
                dev = io_etherOpen(szStr, O_RDWR | O_NONBLOCK, 42, (u_int*) &siz, NULL);                dev = io_etherOpen(szStr, O_RDWR | O_NONBLOCK, 42, 0, (u_int*) &siz, NULL);
 #else  #else
        dev = io_etherOpen(szStr, O_RDWR, 42, (u_int*) &siz, NULL);        dev = io_etherOpen(szStr, O_RDWR, 42, 0, (u_int*) &siz, NULL);
 #endif  #endif
         if (dev == -1) {          if (dev == -1) {
                 printf("Error:: #%d - %s\n", io_GetErrno(), io_GetError());                  printf("Error:: #%d - %s\n", io_GetErrno(), io_GetError());

Removed from v.1.2  
changed lines
  Added in v.1.4


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