version 1.1.2.10, 2013/06/26 13:33:55
|
version 1.2.2.2, 2013/07/01 20:46:59
|
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 240 ShowPkt(void *buffer)
|
Line 237 ShowPkt(void *buffer)
|
} |
} |
|
|
printf("%s===\n", szShow); |
printf("%s===\n", szShow); |
pthread_exit(NULL); | return NULL; |
} |
} |
|
|
// ---------------------- |
// ---------------------- |
Line 294 main(int argc, char **argv)
|
Line 291 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 | 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()); |
Line 346 main(int argc, char **argv)
|
Line 343 main(int argc, char **argv)
|
io_GetErrno(), io_GetError()); |
io_GetErrno(), io_GetError()); |
if (Verbose) { |
if (Verbose) { |
printf("%d) +readed %d bytes\n", i, ret); |
printf("%d) +readed %d bytes\n", i, ret); |
pthread_create(&tid, NULL, ShowPkt, buffer); | ShowPkt(buffer); |
pthread_join(tid, NULL); | |
} |
} |
} |
} |
} else { |
} else { |