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