Hybrid ICN (hICN) plugin
v21.06-rc0-4-g18fa668
collectd-5.12.0
src
utils
dns
dns.h
1
/*
2
* collectd - src/utils_dns.h
3
* Copyright (C) 2006 Florian octo Forster
4
* Copyright (C) 2002 The Measurement Factory, Inc.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
*
10
* 1. Redistributions of source code must retain the above copyright notice,
11
* this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright notice,
13
* this list of conditions and the following disclaimer in the documentation
14
* and/or other materials provided with the distribution.
15
* 3. Neither the name of The Measurement Factory nor the names of its
16
* contributors may be used to endorse or promote products derived from this
17
* software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
30
*
31
* Authors:
32
* The Measurement Factory, Inc. <http://www.measurement-factory.com/>
33
* Florian octo Forster <octo at collectd.org>
34
*/
35
36
#ifndef COLLECTD_UTILS_DNS_H
37
#define COLLECTD_UTILS_DNS_H 1
38
39
#include "config.h"
40
41
#include <stdint.h>
42
43
#if HAVE_PCAP_H
44
#include <pcap.h>
45
#endif
46
47
#define DNS_MSG_HDR_SZ 12
48
49
#define T_MAX 65536
50
#define MAX_QNAME_SZ 512
51
52
struct
rfc1035_header_s
{
53
uint16_t id;
54
unsigned
int
qr : 1;
55
unsigned
int
opcode : 4;
56
unsigned
int
aa : 1;
57
unsigned
int
tc : 1;
58
unsigned
int
rd : 1;
59
unsigned
int
ra : 1;
60
unsigned
int
z : 1;
61
unsigned
int
ad : 1;
62
unsigned
int
cd : 1;
63
unsigned
int
rcode : 4;
64
uint16_t qdcount;
65
uint16_t ancount;
66
uint16_t nscount;
67
uint16_t arcount;
68
uint16_t qtype;
69
uint16_t qclass;
70
char
qname[MAX_QNAME_SZ];
71
uint16_t length;
72
};
73
typedef
struct
rfc1035_header_s
rfc1035_header_t
;
74
75
#if HAVE_PCAP_H
76
void
dnstop_set_pcap_obj(pcap_t *po);
77
#endif
78
void
dnstop_set_callback(
void
(*cb)(
const
rfc1035_header_t
*));
79
80
void
ignore_list_add_name(
const
char
*name);
81
#if HAVE_PCAP_H
82
void
handle_pcap(u_char *udata,
const
struct
pcap_pkthdr *hdr,
83
const
u_char *pkt);
84
#endif
85
86
const
char
*qtype_str(
int
t);
87
const
char
*opcode_str(
int
o);
88
const
char
*rcode_str(
int
r);
89
90
#endif
/* !COLLECTD_UTILS_DNS_H */
rfc1035_header_s
Definition:
dns.h:52
Generated by
1.8.17