12949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Copyright (C) 2000, Richard Sharpe 32949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * This software may be distributed either under the terms of the 52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * BSD-style licence that accompanies tcpdump or under the GNU GPL 62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * version 2 or later. 72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * print-beep.c 92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef lint 132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstatic const char rcsid[] _U_ = 142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "@(#) $Header: /tcpdump/master/tcpdump/print-beep.c,v 1.6 2003/11/16 09:36:13 guy Exp $"; 152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef HAVE_CONFIG_H 182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "config.h" 192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <tcpdump-stdinc.h> 222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef HAVE_MEMORY_H 242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <memory.h> 252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <stdio.h> 272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <stdlib.h> 282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <string.h> 292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "interface.h" 312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "extract.h" 322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* Check for a string but not go beyond length 342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Return TRUE on match, FALSE otherwise 352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Looks at the first few chars up to tl1 ... 372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstatic int l_strnstart(const char *, u_int, const char *, u_int); 402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstatic int 422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectl_strnstart(const char *tstr1, u_int tl1, const char *str2, u_int l2) 432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{ 442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project if (tl1 > l2) 462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project return 0; 472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project return (strncmp(tstr1, str2, tl1) == 0 ? 1 : 0); 492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project} 502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectvoid 522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectbeep_print(const u_char *bp, u_int length) 532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{ 542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project if (l_strnstart("MSG", 4, (const char *)bp, length)) /* A REQuest */ 562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project printf(" BEEP MSG"); 572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project else if (l_strnstart("RPY ", 4, (const char *)bp, length)) 582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project printf(" BEEP RPY"); 592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project else if (l_strnstart("ERR ", 4, (const char *)bp, length)) 602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project printf(" BEEP ERR"); 612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project else if (l_strnstart("ANS ", 4, (const char *)bp, length)) 622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project printf(" BEEP ANS"); 632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project else if (l_strnstart("NUL ", 4, (const char *)bp, length)) 642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project printf(" BEEP NUL"); 652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project else if (l_strnstart("SEQ ", 4, (const char *)bp, length)) 662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project printf(" BEEP SEQ"); 672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project else if (l_strnstart("END", 4, (const char *)bp, length)) 682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project printf(" BEEP END"); 692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project else 702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project printf(" BEEP (payload or undecoded)"); 712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project} 72