that if there's an error parsing the body, we at least see the type (and
so that the code to print the subtype isn't duplicated in every
body-printing routine).
#ifndef lint
static const char rcsid[] _U_ =
#ifndef lint
static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-802_11.c,v 1.25 2003-11-19 02:01:40 guy Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-802_11.c,v 1.26 2003-11-27 02:18:53 guy Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
#endif
#ifdef HAVE_CONFIG_H
if (!parse_elements(&pbody, p, offset))
return 0;
if (!parse_elements(&pbody, p, offset))
return 0;
- printf("%s (", subtype_text[FC_SUBTYPE(fc)]);
fn_print(pbody.ssid.ssid, NULL);
printf(")");
PRINT_RATES(pbody);
fn_print(pbody.ssid.ssid, NULL);
printf(")");
PRINT_RATES(pbody);
if (!parse_elements(&pbody, p, offset))
return 0;
if (!parse_elements(&pbody, p, offset))
return 0;
- printf("%s (", subtype_text[FC_SUBTYPE(fc)]);
fn_print(pbody.ssid.ssid, NULL);
printf(")");
PRINT_RATES(pbody);
fn_print(pbody.ssid.ssid, NULL);
printf(")");
PRINT_RATES(pbody);
if (!parse_elements(&pbody, p, offset))
return 0;
if (!parse_elements(&pbody, p, offset))
return 0;
- printf("%s AID(%x) :%s: %s", subtype_text[FC_SUBTYPE(fc)],
- ((u_int16_t)(pbody.aid << 2 )) >> 2 ,
+ printf(" AID(%x) :%s: %s", ((u_int16_t)(pbody.aid << 2 )) >> 2 ,
CAPABILITY_PRIVACY(pbody.capability_info) ? " PRIVACY " : "",
(pbody.status_code < 19 ? status_text[pbody.status_code] : "n/a"));
CAPABILITY_PRIVACY(pbody.capability_info) ? " PRIVACY " : "",
(pbody.status_code < 19 ? status_text[pbody.status_code] : "n/a"));
if (!parse_elements(&pbody, p, offset))
return 0;
if (!parse_elements(&pbody, p, offset))
return 0;
- printf("%s (", subtype_text[FC_SUBTYPE(fc)]);
fn_print(pbody.ssid.ssid, NULL);
printf(") AP : %s", etheraddr_string( pbody.ap ));
fn_print(pbody.ssid.ssid, NULL);
printf(") AP : %s", etheraddr_string( pbody.ap ));
if (!parse_elements(&pbody, p, offset))
return 0;
if (!parse_elements(&pbody, p, offset))
return 0;
- printf("%s (", subtype_text[FC_SUBTYPE(fc)]);
fn_print(pbody.ssid.ssid, NULL);
printf(")");
PRINT_RATES(pbody);
fn_print(pbody.ssid.ssid, NULL);
printf(")");
PRINT_RATES(pbody);
if (!parse_elements(&pbody, p, offset))
return 0;
if (!parse_elements(&pbody, p, offset))
return 0;
- printf("%s (", subtype_text[FC_SUBTYPE(fc)]);
fn_print(pbody.ssid.ssid, NULL);
printf(") ");
PRINT_RATES(pbody);
fn_print(pbody.ssid.ssid, NULL);
printf(") ");
PRINT_RATES(pbody);
handle_atim(void)
{
/* the frame body for ATIM is null. */
handle_atim(void)
{
/* the frame body for ATIM is null. */
return 0;
pbody.reason_code = EXTRACT_LE_16BITS(p);
return 0;
pbody.reason_code = EXTRACT_LE_16BITS(p);
- printf("%s: %s", subtype_text[FC_SUBTYPE(fc)],
(pbody.reason_code < 10) ? reason_text[pbody.reason_code]
: "Reserved" );
(pbody.reason_code < 10) ? reason_text[pbody.reason_code]
: "Reserved" );
if ((pbody.auth_alg == 1) &&
((pbody.auth_trans_seq_num == 2) ||
(pbody.auth_trans_seq_num == 3))) {
if ((pbody.auth_alg == 1) &&
((pbody.auth_trans_seq_num == 2) ||
(pbody.auth_trans_seq_num == 3))) {
- printf("%s (%s)-%x [Challenge Text] %s",
- subtype_text[FC_SUBTYPE(fc)],
+ printf(" (%s)-%x [Challenge Text] %s",
(pbody.auth_alg < 4) ? auth_alg_text[pbody.auth_alg]
: "Reserved",
pbody.auth_trans_seq_num,
(pbody.auth_alg < 4) ? auth_alg_text[pbody.auth_alg]
: "Reserved",
pbody.auth_trans_seq_num,
: "n/a") : ""));
return 1;
}
: "n/a") : ""));
return 1;
}
- printf("%s (%s)-%x: %s",
- subtype_text[FC_SUBTYPE(fc)],
(pbody.auth_alg < 4) ? auth_alg_text[pbody.auth_alg] : "Reserved",
pbody.auth_trans_seq_num,
(pbody.auth_trans_seq_num % 2)
(pbody.auth_alg < 4) ? auth_alg_text[pbody.auth_alg] : "Reserved",
pbody.auth_trans_seq_num,
(pbody.auth_trans_seq_num % 2)
: "Reserved";
if (eflag) {
: "Reserved";
if (eflag) {
- printf("%s: %s", subtype_text[FC_SUBTYPE(fc)], reason);
+ printf(": %s", reason);
- printf("%s (%s): %s",
- subtype_text[FC_SUBTYPE(fc)], etheraddr_string(pmh->sa),
- reason);
+ printf(" (%s): %s", etheraddr_string(pmh->sa), reason);
mgmt_body_print(u_int16_t fc, const struct mgmt_header_t *pmh,
const u_char *p)
{
mgmt_body_print(u_int16_t fc, const struct mgmt_header_t *pmh,
const u_char *p)
{
+ printf("%s", subtype_text[FC_SUBTYPE(fc)]);
+
switch (FC_SUBTYPE(fc)) {
case ST_ASSOC_REQUEST:
return handle_assoc_request(fc, p);
switch (FC_SUBTYPE(fc)) {
case ST_ASSOC_REQUEST:
return handle_assoc_request(fc, p);