这篇教程C++ EXTRACT_LE_16BITS函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中EXTRACT_LE_16BITS函数的典型用法代码示例。如果您正苦于以下问题:C++ EXTRACT_LE_16BITS函数的具体用法?C++ EXTRACT_LE_16BITS怎么用?C++ EXTRACT_LE_16BITS使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了EXTRACT_LE_16BITS函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: handle_probe_responsestatic inthandle_probe_response(const u_char *p){ struct mgmt_body_t pbody; int offset = 0; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_TSTAMP_LEN + IEEE802_11_BCNINT_LEN + IEEE802_11_CAPINFO_LEN)) return 0; memcpy(&pbody.timestamp, p, IEEE802_11_TSTAMP_LEN); offset += IEEE802_11_TSTAMP_LEN; pbody.beacon_interval = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_BCNINT_LEN; pbody.capability_info = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_CAPINFO_LEN; parse_elements(&pbody, p, offset); PRINT_SSID(pbody); PRINT_RATES(pbody); PRINT_DS_CHANNEL(pbody); return 1;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:27,
示例2: handle_assoc_responsestatic inthandle_assoc_response(const u_char *p){ struct mgmt_body_t pbody; int offset = 0; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_CAPINFO_LEN + IEEE802_11_STATUS_LEN + IEEE802_11_AID_LEN)) return 0; pbody.capability_info = EXTRACT_LE_16BITS(p); offset += IEEE802_11_CAPINFO_LEN; pbody.status_code = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_STATUS_LEN; pbody.aid = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_AID_LEN; parse_elements(&pbody, p, offset); printf(" AID(%x) :%s: %s", ((u_int16_t)(pbody.aid << 2 )) >> 2 , CAPABILITY_PRIVACY(pbody.capability_info) ? " PRIVACY " : "", (pbody.status_code < NUM_STATUSES ? status_text[pbody.status_code] : "n/a")); return 1;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:28,
示例3: handle_reassoc_requeststatic inthandle_reassoc_request(const u_char *p){ struct mgmt_body_t pbody; int offset = 0; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_CAPINFO_LEN + IEEE802_11_LISTENINT_LEN + IEEE802_11_AP_LEN)) return 0; pbody.capability_info = EXTRACT_LE_16BITS(p); offset += IEEE802_11_CAPINFO_LEN; pbody.listen_interval = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_LISTENINT_LEN; memcpy(&pbody.ap, p+offset, IEEE802_11_AP_LEN); offset += IEEE802_11_AP_LEN; parse_elements(&pbody, p, offset); PRINT_SSID(pbody); printf(" AP : %s", etheraddr_string( pbody.ap )); return 1;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:25,
示例4: handle_probe_responsestatic inthandle_probe_response(const u_char *p){ struct mgmt_body_t pbody; int offset = 0; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_TSTAMP_LEN + IEEE802_11_BCNINT_LEN + IEEE802_11_CAPINFO_LEN)) return 0; memcpy(&pbody.timestamp, p, IEEE802_11_TSTAMP_LEN); offset += IEEE802_11_TSTAMP_LEN; pbody.beacon_interval = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_BCNINT_LEN; pbody.capability_info = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_CAPINFO_LEN; if (!parse_elements(&pbody, p, offset)) return 0; printf(" ("); fn_print(pbody.ssid.ssid, NULL); printf(") "); PRINT_RATES(pbody); printf(" CH: %u%s", pbody.ds.channel, CAPABILITY_PRIVACY(pbody.capability_info) ? ", PRIVACY" : "" ); return 1;}
开发者ID:OPSF,项目名称:uClinux,代码行数:31,
示例5: handle_assoc_requeststatic inthandle_assoc_request(const u_char *p, u_int length){ struct mgmt_body_t pbody; int offset = 0; int ret; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_CAPINFO_LEN + IEEE802_11_LISTENINT_LEN)) return 0; if (length < IEEE802_11_CAPINFO_LEN + IEEE802_11_LISTENINT_LEN) return 0; pbody.capability_info = EXTRACT_LE_16BITS(p); offset += IEEE802_11_CAPINFO_LEN; length -= IEEE802_11_CAPINFO_LEN; pbody.listen_interval = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_LISTENINT_LEN; length -= IEEE802_11_LISTENINT_LEN; ret = parse_elements(&pbody, p, offset, length); PRINT_SSID(pbody); PRINT_RATES(pbody); return ret;}
开发者ID:malaterre,项目名称:tcpdump-dicom,代码行数:26,
示例6: print_l2_routesstatic intprint_l2_routes(const char *rp, u_int len){ int count; int area; int info; /* The last short is a checksum */ while (len > (3 * sizeof(short))) { TCHECK2(*rp, 3 * sizeof(short)); count = EXTRACT_LE_16BITS(rp); if (count > 1024) return (1); /* seems to be bogus from here on */ rp += sizeof(short); len -= sizeof(short); area = EXTRACT_LE_16BITS(rp); rp += sizeof(short); len -= sizeof(short); info = EXTRACT_LE_16BITS(rp); rp += sizeof(short); len -= sizeof(short); (void)printf("{areas %d-%d cost %d hops %d} ", area, area + count, RI_COST(info), RI_HOPS(info)); } return (1);trunc: return (0);}
开发者ID:enukane,项目名称:netbsd-src,代码行数:29,
示例7: handle_beaconstatic inthandle_beacon(const u_char *p, u_int length){ struct mgmt_body_t pbody; int offset = 0; int ret; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_TSTAMP_LEN + IEEE802_11_BCNINT_LEN + IEEE802_11_CAPINFO_LEN)) return 0; if (length < IEEE802_11_TSTAMP_LEN + IEEE802_11_BCNINT_LEN + IEEE802_11_CAPINFO_LEN) return 0; memcpy(&pbody.timestamp, p, IEEE802_11_TSTAMP_LEN); offset += IEEE802_11_TSTAMP_LEN; length -= IEEE802_11_TSTAMP_LEN; pbody.beacon_interval = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_BCNINT_LEN; length -= IEEE802_11_BCNINT_LEN; pbody.capability_info = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_CAPINFO_LEN; length -= IEEE802_11_CAPINFO_LEN; ret = parse_elements(&pbody, p, offset, length); PRINT_SSID(pbody); PRINT_RATES(pbody); printf(" %s", CAPABILITY_ESS(pbody.capability_info) ? "ESS" : "IBSS"); PRINT_DS_CHANNEL(pbody); return ret;}
开发者ID:malaterre,项目名称:tcpdump-dicom,代码行数:35,
示例8: print_l1_routesstatic intprint_l1_routes(netdissect_options *ndo, const char *rp, u_int len){ int count; int id; int info; /* The last short is a checksum */ while (len > (3 * sizeof(short))) { ND_TCHECK2(*rp, 3 * sizeof(short)); count = EXTRACT_LE_16BITS(rp); if (count > 1024) return (1); /* seems to be bogus from here on */ rp += sizeof(short); len -= sizeof(short); id = EXTRACT_LE_16BITS(rp); rp += sizeof(short); len -= sizeof(short); info = EXTRACT_LE_16BITS(rp); rp += sizeof(short); len -= sizeof(short); ND_PRINT((ndo, "{ids %d-%d cost %d hops %d} ", id, id + count, RI_COST(info), RI_HOPS(info))); } return (1);trunc: return (0);}
开发者ID:raniyuva,项目名称:tcpdump,代码行数:30,
示例9: ctrl_header_printstatic voidctrl_header_print(u_int16_t fc, const u_char *p, const u_int8_t **srcp, const u_int8_t **dstp){ if (srcp != NULL) *srcp = NULL; if (dstp != NULL) *dstp = NULL; if (!eflag) return; switch (FC_SUBTYPE(fc)) { case CTRL_BAR: printf(" RA:%s TA:%s CTL(%x) SEQ(%u) ", etheraddr_string(((const struct ctrl_bar_t *)p)->ra), etheraddr_string(((const struct ctrl_bar_t *)p)->ta), EXTRACT_LE_16BITS(&(((const struct ctrl_bar_t *)p)->ctl)), EXTRACT_LE_16BITS(&(((const struct ctrl_bar_t *)p)->seq))); break; case CTRL_BA: printf("RA:%s ", etheraddr_string(((const struct ctrl_ba_t *)p)->ra)); break; case CTRL_PS_POLL: printf("BSSID:%s TA:%s ", etheraddr_string(((const struct ctrl_ps_poll_t *)p)->bssid), etheraddr_string(((const struct ctrl_ps_poll_t *)p)->ta)); break; case CTRL_RTS: printf("RA:%s TA:%s ", etheraddr_string(((const struct ctrl_rts_t *)p)->ra), etheraddr_string(((const struct ctrl_rts_t *)p)->ta)); break; case CTRL_CTS: printf("RA:%s ", etheraddr_string(((const struct ctrl_cts_t *)p)->ra)); break; case CTRL_ACK: printf("RA:%s ", etheraddr_string(((const struct ctrl_ack_t *)p)->ra)); break; case CTRL_CF_END: printf("RA:%s BSSID:%s ", etheraddr_string(((const struct ctrl_end_t *)p)->ra), etheraddr_string(((const struct ctrl_end_t *)p)->bssid)); break; case CTRL_END_ACK: printf("RA:%s BSSID:%s ", etheraddr_string(((const struct ctrl_end_ack_t *)p)->ra), etheraddr_string(((const struct ctrl_end_ack_t *)p)->bssid)); break; default: printf("(H) Unknown Ctrl Subtype"); break; }}
开发者ID:malaterre,项目名称:tcpdump-dicom,代码行数:56,
示例10: handle_authstatic inthandle_auth(const u_char *p, u_int length){ struct mgmt_body_t pbody; int offset = 0; int ret; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, 6)) return 0; if (length < 6) return 0; pbody.auth_alg = EXTRACT_LE_16BITS(p); offset += 2; length -= 2; pbody.auth_trans_seq_num = EXTRACT_LE_16BITS(p + offset); offset += 2; length -= 2; pbody.status_code = EXTRACT_LE_16BITS(p + offset); offset += 2; length -= 2; ret = parse_elements(&pbody, p, offset, length); if ((pbody.auth_alg == 1) && ((pbody.auth_trans_seq_num == 2) || (pbody.auth_trans_seq_num == 3))) { printf(" (%s)-%x [Challenge Text] %s", (pbody.auth_alg < NUM_AUTH_ALGS) ? auth_alg_text[pbody.auth_alg] : "Reserved", pbody.auth_trans_seq_num, ((pbody.auth_trans_seq_num % 2) ? ((pbody.status_code < NUM_STATUSES) ? status_text[pbody.status_code] : "n/a") : "")); return ret; } printf(" (%s)-%x: %s", (pbody.auth_alg < NUM_AUTH_ALGS) ? auth_alg_text[pbody.auth_alg] : "Reserved", pbody.auth_trans_seq_num, (pbody.auth_trans_seq_num % 2) ? ((pbody.status_code < NUM_STATUSES) ? status_text[pbody.status_code] : "n/a") : ""); return ret;}
开发者ID:malaterre,项目名称:tcpdump-dicom,代码行数:52,
示例11: loopback_message_printstatic voidloopback_message_print(netdissect_options *ndo, const u_char *cp, const u_int len){ const u_char *ep = cp + len; uint16_t function; if (len < 2) goto corrupt; /* function */ ND_TCHECK2(*cp, 2); function = EXTRACT_LE_16BITS(cp); cp += 2; ND_PRINT((ndo, ", %s", tok2str(fcode_str, " invalid (%u)", function))); switch (function) { case LOOPBACK_REPLY: if (len < 4) goto corrupt; /* receipt number */ ND_TCHECK2(*cp, 2); ND_PRINT((ndo, ", receipt number %u", EXTRACT_LE_16BITS(cp))); cp += 2; /* data */ ND_PRINT((ndo, ", data (%u octets)", len - 4)); ND_TCHECK2(*cp, len - 4); break; case LOOPBACK_FWDDATA: if (len < 8) goto corrupt; /* forwarding address */ ND_TCHECK2(*cp, ETHER_ADDR_LEN); ND_PRINT((ndo, ", forwarding address %s", etheraddr_string(cp))); cp += ETHER_ADDR_LEN; /* data */ ND_PRINT((ndo, ", data (%u octets)", len - 8)); ND_TCHECK2(*cp, len - 8); break; default: ND_TCHECK2(*cp, len - 2); break; } return;corrupt: ND_PRINT((ndo, "%s", cstr)); ND_TCHECK2(*cp, ep - cp); return;trunc: ND_PRINT((ndo, "%s", tstr));}
开发者ID:ecbtnrt,项目名称:tcpdump,代码行数:50,
示例12: loopback_printvoidloopback_print(netdissect_options *ndo, const u_char *cp, const u_int len){ const u_char *ep = cp + len; uint16_t skipCount; ND_PRINT((ndo, "Loopback")); if (len < 2) goto corrupt; /* skipCount */ ND_TCHECK2(*cp, 2); skipCount = EXTRACT_LE_16BITS(cp); cp += 2; ND_PRINT((ndo, ", skipCount %u", skipCount)); if (skipCount % 8) ND_PRINT((ndo, " (bogus)")); if (skipCount > len - 2) goto corrupt; loopback_message_print(ndo, cp + skipCount, len - 2 - skipCount); return;corrupt: ND_PRINT((ndo, "%s", cstr)); ND_TCHECK2(*cp, ep - cp); return;trunc: ND_PRINT((ndo, "%s", tstr));}
开发者ID:ecbtnrt,项目名称:tcpdump,代码行数:28,
示例13: handle_deauthstatic inthandle_deauth(const struct mgmt_header_t *pmh, const u_char *p){ struct mgmt_body_t pbody; int offset = 0; const char *reason = NULL; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_REASON_LEN)) return 0; pbody.reason_code = EXTRACT_LE_16BITS(p); offset += IEEE802_11_REASON_LEN; reason = (pbody.reason_code < NUM_REASONS) ? reason_text[pbody.reason_code] : "Reserved"; if (eflag) { printf(": %s", reason); } else { printf(" (%s): %s", etheraddr_string(pmh->sa), reason); } return 1;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:25,
示例14: rrcp_print/* * Print RRCP requests */voidrrcp_print(netdissect_options *ndo, register const u_char *cp, u_int length _U_){ const u_char *rrcp; uint8_t rrcp_proto; uint8_t rrcp_opcode; register const struct ether_header *ep; char proto_str[16]; char opcode_str[32]; ep = (const struct ether_header *)cp; rrcp = cp + ETHER_HDRLEN; ND_TCHECK(*(rrcp + RRCP_PROTO_OFFSET)); rrcp_proto = *(rrcp + RRCP_PROTO_OFFSET); ND_TCHECK(*(rrcp + RRCP_OPCODE_ISREPLY_OFFSET)); rrcp_opcode = (*(rrcp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_OPCODE_MASK; ND_PRINT((ndo, "%s > %s, %s %s", etheraddr_string(ndo, ESRC(ep)), etheraddr_string(ndo, EDST(ep)), tok2strbuf(proto_values,"RRCP-0x%02x",rrcp_proto,proto_str,sizeof(proto_str)), ((*(rrcp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY) ? "reply" : "query")); if (rrcp_proto==1){ ND_PRINT((ndo, ": %s", tok2strbuf(opcode_values,"unknown opcode (0x%02x)",rrcp_opcode,opcode_str,sizeof(opcode_str)))); } if (rrcp_opcode==1 || rrcp_opcode==2){ ND_TCHECK2(*(rrcp + RRCP_REG_ADDR_OFFSET), 6); ND_PRINT((ndo, " addr=0x%04x, data=0x%08x", EXTRACT_LE_16BITS(rrcp + RRCP_REG_ADDR_OFFSET), EXTRACT_LE_32BITS(rrcp + RRCP_REG_DATA_OFFSET))); } if (rrcp_proto==1){ ND_TCHECK2(*(rrcp + RRCP_AUTHKEY_OFFSET), 2); ND_PRINT((ndo, ", auth=0x%04x", EXTRACT_16BITS(rrcp + RRCP_AUTHKEY_OFFSET))); } if (rrcp_proto==1 && rrcp_opcode==0 && ((*(rrcp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY)){ ND_TCHECK2(*(rrcp + RRCP_VENDOR_ID_OFFSET), 4); ND_PRINT((ndo, " downlink_port=%d, uplink_port=%d, uplink_mac=%s, vendor_id=%08x ,chip_id=%04x ", *(rrcp + RRCP_DOWNLINK_PORT_OFFSET), *(rrcp + RRCP_UPLINK_PORT_OFFSET), etheraddr_string(ndo, rrcp + RRCP_UPLINK_MAC_OFFSET), EXTRACT_32BITS(rrcp + RRCP_VENDOR_ID_OFFSET), EXTRACT_16BITS(rrcp + RRCP_CHIP_ID_OFFSET))); }else if (rrcp_opcode==1 || rrcp_opcode==2 || rrcp_proto==2){ ND_TCHECK2(*(rrcp + RRCP_COOKIE2_OFFSET), 4); ND_PRINT((ndo, ", cookie=0x%08x%08x ", EXTRACT_32BITS(rrcp + RRCP_COOKIE2_OFFSET), EXTRACT_32BITS(rrcp + RRCP_COOKIE1_OFFSET))); } return;trunc: ND_PRINT((ndo, "[|rrcp]"));}
开发者ID:0-kaladin,项目名称:ad-away,代码行数:62,
示例15: rrcp_print/* * Print RRCP requests */voidrrcp_print(netdissect_options *ndo, register const u_char *cp, u_int length _U_, const struct lladdr_info *src, const struct lladdr_info *dst){ uint8_t rrcp_proto; uint8_t rrcp_opcode; ND_TCHECK(*(cp + RRCP_PROTO_OFFSET)); rrcp_proto = *(cp + RRCP_PROTO_OFFSET); ND_TCHECK(*(cp + RRCP_OPCODE_ISREPLY_OFFSET)); rrcp_opcode = (*(cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_OPCODE_MASK; if (src != NULL && dst != NULL) { ND_PRINT((ndo, "%s > %s, ", (src->addr_string)(ndo, src->addr), (dst->addr_string)(ndo, dst->addr))); } ND_PRINT((ndo, "%s %s", tok2str(proto_values,"RRCP-0x%02x",rrcp_proto), ((*(cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY) ? "reply" : "query")); if (rrcp_proto==1){ ND_PRINT((ndo, ": %s", tok2str(opcode_values,"unknown opcode (0x%02x)",rrcp_opcode))); } if (rrcp_opcode==1 || rrcp_opcode==2){ ND_TCHECK2(*(cp + RRCP_REG_ADDR_OFFSET), 6); ND_PRINT((ndo, " addr=0x%04x, data=0x%08x", EXTRACT_LE_16BITS(cp + RRCP_REG_ADDR_OFFSET), EXTRACT_LE_32BITS(cp + RRCP_REG_DATA_OFFSET))); } if (rrcp_proto==1){ ND_TCHECK2(*(cp + RRCP_AUTHKEY_OFFSET), 2); ND_PRINT((ndo, ", auth=0x%04x", EXTRACT_16BITS(cp + RRCP_AUTHKEY_OFFSET))); } if (rrcp_proto==1 && rrcp_opcode==0 && ((*(cp + RRCP_OPCODE_ISREPLY_OFFSET)) & RRCP_ISREPLY)){ ND_TCHECK2(*(cp + RRCP_VENDOR_ID_OFFSET), 4); ND_PRINT((ndo, " downlink_port=%d, uplink_port=%d, uplink_mac=%s, vendor_id=%08x ,chip_id=%04x ", *(cp + RRCP_DOWNLINK_PORT_OFFSET), *(cp + RRCP_UPLINK_PORT_OFFSET), etheraddr_string(ndo, cp + RRCP_UPLINK_MAC_OFFSET), EXTRACT_32BITS(cp + RRCP_VENDOR_ID_OFFSET), EXTRACT_16BITS(cp + RRCP_CHIP_ID_OFFSET))); }else if (rrcp_opcode==1 || rrcp_opcode==2 || rrcp_proto==2){ ND_TCHECK2(*(cp + RRCP_COOKIE2_OFFSET), 4); ND_PRINT((ndo, ", cookie=0x%08x%08x ", EXTRACT_32BITS(cp + RRCP_COOKIE2_OFFSET), EXTRACT_32BITS(cp + RRCP_COOKIE1_OFFSET))); } return;trunc: ND_PRINT((ndo, "[|rrcp]"));}
开发者ID:jaredmcneill,项目名称:netbsd-src,代码行数:60,
示例16: handle_beaconint handle_beacon(const uchar *p, u_int length, struct rcv_pkt * paket){ struct mgmt_body_t pbody; int offset = 0; int ret; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_TSTAMP_LEN + IEEE802_11_BCNINT_LEN + IEEE802_11_CAPINFO_LEN)) return 0; if (length < IEEE802_11_TSTAMP_LEN + IEEE802_11_BCNINT_LEN + IEEE802_11_CAPINFO_LEN) return 0; memcpy(&pbody.timestamp, p, IEEE802_11_TSTAMP_LEN); offset += IEEE802_11_TSTAMP_LEN; length -= IEEE802_11_TSTAMP_LEN; pbody.beacon_interval = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_BCNINT_LEN; length -= IEEE802_11_BCNINT_LEN; pbody.capability_info = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_CAPINFO_LEN; length -= IEEE802_11_CAPINFO_LEN; ret = parse_elements(&pbody, p, offset, length,paket); if (pbody.ssid_present) { fn_print(pbody.ssid.ssid, NULL,paket); } if (pbody.ds_present) { paket->p.mgmt_pkt.channel=pbody.ds.channel;// printf("packet channel = %d/n",pbody.ds.channel); } paket->p.mgmt_pkt.cap_privacy= CAPABILITY_PRIVACY(pbody.capability_info) ? 1 :0 ; // printf("%s /n", CAPABILITY_ESS(pbody.capability_info) ? "ESS" : "IBSS"); u_int8_t _r; if (pbody.rates_present) { _r= pbody.rates.rate[pbody.rates.length -1] ; paket->p.mgmt_pkt.rate_max=(float)((.5 * ((_r) & 0x7f))); // printf("packet rate is %f /n", paket->p.mgmt_pkt.rate_max); } else { paket->p.mgmt_pkt.rate_max=0.0; // undefined rate, because of bad fcs (might be a reason) } paket->p.mgmt_pkt.cap_ess_ibss = paket->p.mgmt_pkt.cap_ess_ibss= CAPABILITY_ESS(pbody.capability_info) ? 1:2; return ret;}
开发者ID:abnarain,项目名称:mac-analyzer-quirm,代码行数:44,
示例17: ctrl_body_printstatic intctrl_body_print(u_int16_t fc, const u_char *p){ switch (FC_SUBTYPE(fc)) { case CTRL_PS_POLL: printf("Power Save-Poll"); if (!TTEST2(*p, CTRL_PS_POLL_HDRLEN)) return 0; printf(" AID(%x)", EXTRACT_LE_16BITS(&(((const struct ctrl_ps_poll_t *)p)->aid))); break; case CTRL_RTS: printf("Request-To-Send"); if (!TTEST2(*p, CTRL_RTS_HDRLEN)) return 0; if (!eflag) printf(" TA:%s ", etheraddr_string(((const struct ctrl_rts_t *)p)->ta)); break; case CTRL_CTS: printf("Clear-To-Send"); if (!TTEST2(*p, CTRL_CTS_HDRLEN)) return 0; if (!eflag) printf(" RA:%s ", etheraddr_string(((const struct ctrl_cts_t *)p)->ra)); break; case CTRL_ACK: printf("Acknowledgment"); if (!TTEST2(*p, CTRL_ACK_HDRLEN)) return 0; if (!eflag) printf(" RA:%s ", etheraddr_string(((const struct ctrl_ack_t *)p)->ra)); break; case CTRL_CF_END: printf("CF-End"); if (!TTEST2(*p, CTRL_END_HDRLEN)) return 0; if (!eflag) printf(" RA:%s ", etheraddr_string(((const struct ctrl_end_t *)p)->ra)); break; case CTRL_END_ACK: printf("CF-End+CF-Ack"); if (!TTEST2(*p, CTRL_END_ACK_HDRLEN)) return 0; if (!eflag) printf(" RA:%s ", etheraddr_string(((const struct ctrl_end_ack_t *)p)->ra)); break; default: printf("Unknown Ctrl Subtype"); } return 1;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:56,
示例18: ppi_printstatic u_intppi_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_char *p){ if_printer printer; const ppi_header_t *hdr; u_int caplen = h->caplen; u_int length = h->len; uint16_t len; uint32_t dlt; uint32_t hdrlen; struct pcap_pkthdr nhdr; if (caplen < sizeof(ppi_header_t)) { ND_PRINT((ndo, "[|ppi]")); return (caplen); } hdr = (const ppi_header_t *)p; len = EXTRACT_LE_16BITS(&hdr->ppi_len); if (caplen < len) { /* * If we don't have the entire PPI header, don't * bother. */ ND_PRINT((ndo, "[|ppi]")); return (caplen); } if (len < sizeof(ppi_header_t)) { ND_PRINT((ndo, "[|ppi]")); return (len); } dlt = EXTRACT_LE_32BITS(&hdr->ppi_dlt); if (ndo->ndo_eflag) ppi_header_print(ndo, p, length); length -= len; caplen -= len; p += len; if ((printer = lookup_printer(dlt)) != NULL) { nhdr = *h; nhdr.caplen = caplen; nhdr.len = length; hdrlen = printer(ndo, &nhdr, p); } else { if (!ndo->ndo_eflag) ppi_header_print(ndo, (const u_char *)hdr, length + len); if (!ndo->ndo_suppress_default_print) ND_DEFAULTPRINT(p, caplen); hdrlen = 0; } return (len + hdrlen);}
开发者ID:GerardGarcia,项目名称:tcpdump,代码行数:56,
示例19: ieee_802_11_hdr_print/* * Print the 802.11 MAC header if eflag is set, and set "*srcp" and "*dstp" * to point to the source and destination MAC addresses in any case if * "srcp" and "dstp" aren't null. */static voidieee_802_11_hdr_print(u_int16_t fc, const u_char *p, u_int hdrlen, u_int meshdrlen, const u_int8_t **srcp, const u_int8_t **dstp){ if (vflag) { if (FC_MORE_DATA(fc)) printf("More Data "); if (FC_MORE_FLAG(fc)) printf("More Fragments "); if (FC_POWER_MGMT(fc)) printf("Pwr Mgmt "); if (FC_RETRY(fc)) printf("Retry "); if (FC_ORDER(fc)) printf("Strictly Ordered "); if (FC_WEP(fc)) printf("WEP Encrypted "); if (FC_TYPE(fc) != T_CTRL || FC_SUBTYPE(fc) != CTRL_PS_POLL) printf("%dus ", EXTRACT_LE_16BITS( &((const struct mgmt_header_t *)p)->duration)); } if (meshdrlen != 0) { const struct meshcntl_t *mc = (const struct meshcntl_t *)&p[hdrlen - meshdrlen]; int ae = mc->flags & 3; printf("MeshData (AE %d TTL %u seq %u", ae, mc->ttl, EXTRACT_LE_32BITS(mc->seq)); if (ae > 0) printf(" A4:%s", etheraddr_string(mc->addr4)); if (ae > 1) printf(" A5:%s", etheraddr_string(mc->addr5)); if (ae > 2) printf(" A6:%s", etheraddr_string(mc->addr6)); printf(") "); } switch (FC_TYPE(fc)) { case T_MGMT: mgmt_header_print(p, srcp, dstp); break; case T_CTRL: ctrl_header_print(fc, p, srcp, dstp); break; case T_DATA: data_header_print(fc, p, srcp, dstp); break; default: printf("(header) unknown IEEE802.11 frame type (%d)", FC_TYPE(fc)); *srcp = NULL; *dstp = NULL; break; }}
开发者ID:malaterre,项目名称:tcpdump-dicom,代码行数:61,
示例20: cpack_uint16/* Unpack a 16-bit unsigned integer. */intcpack_uint16(struct cpack_state *cs, u_int16_t *u){ u_int8_t *next; if ((next = cpack_align_and_reserve(cs, sizeof(*u))) == NULL) return -1; *u = EXTRACT_LE_16BITS(next); /* Move pointer past the u_int16_t. */ cs->c_next = next + sizeof(*u); return 0;}
开发者ID:2014-class,项目名称:freerouter,代码行数:15,
示例21: handle_assoc_requeststatic inthandle_assoc_request(const u_char *p){ struct mgmt_body_t pbody; int offset = 0; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_CAPINFO_LEN + IEEE802_11_LISTENINT_LEN)) return 0; pbody.capability_info = EXTRACT_LE_16BITS(p); offset += IEEE802_11_CAPINFO_LEN; pbody.listen_interval = EXTRACT_LE_16BITS(p+offset); offset += IEEE802_11_LISTENINT_LEN; if (!parse_elements(&pbody, p, offset)) return 0; printf(" ("); fn_print(pbody.ssid.ssid, NULL); printf(")"); PRINT_RATES(pbody); return 1;}
开发者ID:OPSF,项目名称:uClinux,代码行数:24,
示例22: handle_disassocstatic inthandle_disassoc(const u_char *p){ struct mgmt_body_t pbody; memset(&pbody, 0, sizeof(pbody)); if (!TTEST2(*p, IEEE802_11_REASON_LEN)) return 0; pbody.reason_code = EXTRACT_LE_16BITS(p); printf(": %s", (pbody.reason_code < 10) ? reason_text[pbody.reason_code] : "Reserved" ); return 1;}
开发者ID:OPSF,项目名称:uClinux,代码行数:17,
示例23: ieee802_11_printstatic u_int ieee802_11_print(struct smartconfig *sc, const u_char * p, u_int length, u_int orig_caplen, uint16_t channel){ uint16_t fc; fc = EXTRACT_LE_16BITS(p); uint32_t fcs = *(uint32_t *) (p + length - 4); uint32_t crc = getcrc32(p, length - 4); if (fcs == crc) { if (FC_TYPE(fc) == T_DATA) { data_header_print(sc, fc, p, channel); } } return 0;}
开发者ID:jolin90,项目名称:smartconfig,代码行数:18,
示例24: ieee_802_11_hdr_printstatic inline voidieee_802_11_hdr_print(u_int16_t fc, const u_char *p, const u_int8_t **srcp, const u_int8_t **dstp){ if (vflag) { if (FC_MORE_DATA(fc)) printf("More Data "); if (FC_MORE_FLAG(fc)) printf("More Fragments "); if (FC_POWER_MGMT(fc)) printf("Pwr Mgmt "); if (FC_RETRY(fc)) printf("Retry "); if (FC_ORDER(fc)) printf("Strictly Ordered "); if (FC_WEP(fc)) printf("WEP Encrypted "); if (FC_TYPE(fc) != T_CTRL || FC_SUBTYPE(fc) != CTRL_PS_POLL) printf("%dus ", EXTRACT_LE_16BITS( &((const struct mgmt_header_t *)p)->duration)); } switch (FC_TYPE(fc)) { case T_MGMT: mgmt_header_print(p, srcp, dstp); break; case T_CTRL: ctrl_header_print(fc, p, srcp, dstp); break; case T_DATA: data_header_print(fc, p, srcp, dstp); break; default: printf("(header) unknown IEEE802.11 frame type (%d)", FC_TYPE(fc)); *srcp = NULL; *dstp = NULL; break; }}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:41,
示例25: ppi_header_printstatic inline voidppi_header_print(netdissect_options *ndo, const u_char *bp, u_int length){ const ppi_header_t *hdr; uint16_t len; uint32_t dlt; hdr = (const ppi_header_t *)bp; len = EXTRACT_LE_16BITS(&hdr->ppi_len); dlt = EXTRACT_LE_32BITS(&hdr->ppi_dlt); if (!ndo->ndo_qflag) { ND_PRINT((ndo, "V.%d DLT %s (%d) len %d", hdr->ppi_ver, pcap_datalink_val_to_name(dlt), dlt, len)); } else { ND_PRINT((ndo, "%s", pcap_datalink_val_to_name(dlt))); } ND_PRINT((ndo, ", length %u: ", length));}
开发者ID:EliseuTorres,项目名称:tcpdump,代码行数:22,
示例26: ieee802_11_radio_printstatic u_int ieee802_11_radio_print(struct smartconfig *sc, const u_char * p, u_int length, u_int caplen){#define BIT(n) (1U << n)#define IS_EXTENDED(__p) / (EXTRACT_LE_32BITS(__p) & BIT(IEEE80211_RADIOTAP_EXT)) != 0 struct cpack_state cpacker; const struct ieee80211_radiotap_header *hdr; uint32_t presentflags; const uint32_t *presentp; u_int len; uint16_t channel = 0; uint8_t flags; if (caplen < sizeof(*hdr)) { return caplen; } hdr = (const struct ieee80211_radiotap_header *)p; len = EXTRACT_LE_16BITS(&hdr->it_len); if (caplen < len) { return caplen; } cpack_init(&cpacker, (const uint8_t *)hdr, len); /* align against header start */ cpack_advance(&cpacker, sizeof(*hdr)); /* includes the 1st bitmap */ flags = 0; presentp = &hdr->it_present; presentflags = EXTRACT_LE_32BITS(presentp); print_in_radiotap_namespace(sc, &cpacker, &flags, presentflags, 0, &channel); return len + ieee802_11_print(sc, p + len, length - len, caplen - len, channel);}
开发者ID:jolin90,项目名称:smartconfig,代码行数:36,
注:本文中的EXTRACT_LE_16BITS函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ EXTRACT_U_1函数代码示例 C++ EXTRACT_BE_U_4函数代码示例 |