12949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Copyright (c) 2004 - Michael Richardson <mcr@xelerance.com>
32949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Redistribution and use in source and binary forms, with or without
52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * modification, are permitted provided that: (1) source code distributions
62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * retain the above copyright notice and this paragraph in its entirety, (2)
72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * distributions including binary code include the above copyright notice and
82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * this paragraph in its entirety in the documentation or other materials
92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * provided with the distribution, and (3) all advertising materials mentioning
102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * features or use of this software display the following acknowledgement:
112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ``This product includes software developed by the University of California,
122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * the University nor the names of its contributors may be used to endorse
142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * or promote products derived from this software without specific prior
152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * written permission.
162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project *
202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Format and print bootp packets.
212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef lint
242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstatic const char rcsid[] _U_ =
252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project    "@(#) $Header: /tcpdump/master/tcpdump/print-eap.c,v 1.3 2004/04/23 19:03:39 mcr Exp $";
262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef HAVE_CONFIG_H
292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "config.h"
302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif
312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <tcpdump-stdinc.h>
332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <stdio.h>
352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <string.h>
362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "netdissect.h"
382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "addrtoname.h"
392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "extract.h"
402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "ether.h"
412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct eap_packet_t {
432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	unsigned char	code;
442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	unsigned char	id;
452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	unsigned char	length[2];
462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	unsigned char	data[1];
472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project};
482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/*
502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Print bootp requests
512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */
522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectvoid
532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projecteap_print(netdissect_options *ndo,
542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	  register const u_char *cp,
552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	  u_int length _U_)
562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{
572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	const struct eap_packet_t *eap;
582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	eap = (const struct eap_packet_t *)cp;
602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	ND_TCHECK(eap->data);
612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project        ND_PRINT((ndo, "EAP code=%u id=%u length=%u ",
632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project		  eap->code, eap->id, (eap->length[0]<<8) + eap->length[1]));
642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project        if (!ndo->ndo_vflag)
662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project            return;
672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projecttrunc:
692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project	;
702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project}
712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project
72