GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: usr.sbin/tcpdump/print-raw.c Lines: 0 11 0.0 %
Date: 2017-11-13 Branches: 0 6 0.0 %

Line Branch Exec Source
1
/*	$OpenBSD: print-raw.c,v 1.8 2015/01/16 06:40:21 deraadt Exp $	*/
2
3
/*
4
 * Copyright (c) 1996
5
 *	The Regents of the University of California.  All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that: (1) source code distributions
9
 * retain the above copyright notice and this paragraph in its entirety, (2)
10
 * distributions including binary code include the above copyright notice and
11
 * this paragraph in its entirety in the documentation or other materials
12
 * provided with the distribution, and (3) all advertising materials mentioning
13
 * features or use of this software display the following acknowledgement:
14
 * ``This product includes software developed by the University of California,
15
 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
16
 * the University nor the names of its contributors may be used to endorse
17
 * or promote products derived from this software without specific prior
18
 * written permission.
19
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
20
 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
21
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
22
 */
23
24
#include <sys/time.h>
25
#include <sys/socket.h>
26
#include <sys/file.h>
27
#include <sys/ioctl.h>
28
29
struct mbuf;
30
struct rtentry;
31
#include <net/if.h>
32
33
#include <netinet/in.h>
34
#include <netinet/ip.h>
35
#include <netinet/if_ether.h>
36
#include <netinet/ip_var.h>
37
#include <netinet/udp.h>
38
#include <netinet/udp_var.h>
39
#include <netinet/tcp.h>
40
41
#include <pcap.h>
42
#include <stdio.h>
43
#include <string.h>
44
45
#include "addrtoname.h"
46
#include "interface.h"
47
48
#ifndef AF_NS
49
#define AF_NS		6		/* XEROX NS protocols */
50
#endif
51
52
/*
53
 * The DLT_RAW packet has no header. It contains a raw IP packet.
54
 */
55
56
void
57
raw_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
58
{
59
	u_int length = h->len;
60
	u_int caplen = h->caplen;
61
62
	ts_print(&h->ts);
63
64
	/*
65
	 * Some printers want to get back at the link level addresses,
66
	 * and/or check that they're not walking off the end of the packet.
67
	 * Rather than pass them all the way down, we set these globals.
68
	 */
69
	packetp = p;
70
	snapend = p + caplen;
71
72
	if (eflag)
73
		printf("ip: ");
74
75
	ip_print(p, length);
76
77
	if (xflag)
78
		default_print(p, caplen);
79
	putchar('\n');
80
}