]>
Commit | Line | Data |
---|---|---|
b7080c8e A |
1 | /* |
2 | * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. | |
3 | * | |
4 | * @APPLE_LICENSE_HEADER_START@ | |
5 | * | |
6 | * "Portions Copyright (c) 1999 Apple Computer, Inc. All Rights | |
7 | * Reserved. This file contains Original Code and/or Modifications of | |
8 | * Original Code as defined in and that are subject to the Apple Public | |
9 | * Source License Version 1.0 (the 'License'). You may not use this file | |
10 | * except in compliance with the License. Please obtain a copy of the | |
11 | * License at http://www.apple.com/publicsource and read it before using | |
12 | * this file. | |
13 | * | |
14 | * The Original Code and all software distributed under the License are | |
15 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
16 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
17 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
18 | * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the | |
19 | * License for the specific language governing rights and limitations | |
20 | * under the License." | |
21 | * | |
22 | * @APPLE_LICENSE_HEADER_END@ | |
23 | */ | |
24 | /* | |
25 | * Copyright (c) 1992, 1993, 1994, 1995, 1996 | |
26 | * The Regents of the University of California. All rights reserved. | |
27 | * | |
28 | * Redistribution and use in source and binary forms, with or without | |
29 | * modification, are permitted provided that: (1) source code distributions | |
30 | * retain the above copyright notice and this paragraph in its entirety, (2) | |
31 | * distributions including binary code include the above copyright notice and | |
32 | * this paragraph in its entirety in the documentation or other materials | |
33 | * provided with the distribution, and (3) all advertising materials mentioning | |
34 | * features or use of this software display the following acknowledgement: | |
35 | * ``This product includes software developed by the University of California, | |
36 | * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of | |
37 | * the University nor the names of its contributors may be used to endorse | |
38 | * or promote products derived from this software without specific prior | |
39 | * written permission. | |
40 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED | |
41 | * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF | |
42 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
43 | */ | |
44 | #ifndef lint | |
45 | static const char rcsid[] = | |
46 | "@(#) $Header: /cvs/Darwin/Commands/NeXT/network_cmds/tcpdump.tproj/bpf_dump.c,v 1.1.1.1 1999/05/02 03:58:31 wsanchez Exp $ (LBL)"; | |
47 | #endif | |
48 | ||
49 | #include <sys/types.h> | |
50 | #include <sys/time.h> | |
51 | ||
52 | #include <pcap.h> | |
53 | #include <stdio.h> | |
54 | ||
55 | #include "interface.h" | |
56 | ||
57 | extern void bpf_dump(struct bpf_program *, int); | |
58 | ||
59 | void | |
60 | bpf_dump(struct bpf_program *p, int option) | |
61 | { | |
62 | struct bpf_insn *insn; | |
63 | int i; | |
64 | int n = p->bf_len; | |
65 | ||
66 | insn = p->bf_insns; | |
67 | if (option > 2) { | |
68 | printf("%d\n", n); | |
69 | for (i = 0; i < n; ++insn, ++i) { | |
70 | printf("%u %u %u %u\n", insn->code, | |
71 | insn->jt, insn->jf, insn->k); | |
72 | } | |
73 | return ; | |
74 | } | |
75 | if (option > 1) { | |
76 | for (i = 0; i < n; ++insn, ++i) | |
77 | printf("{ 0x%x, %d, %d, 0x%08x },\n", | |
78 | insn->code, insn->jt, insn->jf, insn->k); | |
79 | return; | |
80 | } | |
81 | for (i = 0; i < n; ++insn, ++i) { | |
82 | #ifdef BDEBUG | |
83 | extern int bids[]; | |
84 | printf(bids[i] > 0 ? "[%02d]" : " -- ", bids[i] - 1); | |
85 | #endif | |
86 | puts(bpf_image(insn, i)); | |
87 | } | |
88 | } |