Skip to content
Snippets Groups Projects
Commit b5851775 authored by Vladimír Čunát's avatar Vladimír Čunát Committed by Ondřej Surý
Browse files

dnstap.proto: move from contrib into module

... and generate files instead of including them.
parent b682370e
Branches
Tags
2 merge requests!254Knot Resolver 1.2.5,!213add dnstap module
......@@ -60,4 +60,5 @@ libkres.amalg.c
/doc/kresd.8
/libkres.pc
/modules/version/version.lua
/modules/dnstap/dnstap.pb-c.*
/tags
......@@ -18,8 +18,4 @@ contrib_CFLAGS += -pthread
contrib_LIBS += -pthread
endif
ifeq ($(ENABLE_DNSTAP), yes)
contrib_SOURCES += contrib/dnstap/dnstap.pb-c.c
endif
$(eval $(call make_static,contrib,contrib))
/* Generated by the protocol buffer compiler. DO NOT EDIT! */
/* Generated from: dnstap.proto */
/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif
#include "dnstap.pb-c.h"
void dnstap__dnstap__init
(Dnstap__Dnstap *message)
{
static Dnstap__Dnstap init_value = DNSTAP__DNSTAP__INIT;
*message = init_value;
}
size_t dnstap__dnstap__get_packed_size
(const Dnstap__Dnstap *message)
{
assert(message->base.descriptor == &dnstap__dnstap__descriptor);
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t dnstap__dnstap__pack
(const Dnstap__Dnstap *message,
uint8_t *out)
{
assert(message->base.descriptor == &dnstap__dnstap__descriptor);
return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t dnstap__dnstap__pack_to_buffer
(const Dnstap__Dnstap *message,
ProtobufCBuffer *buffer)
{
assert(message->base.descriptor == &dnstap__dnstap__descriptor);
return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Dnstap__Dnstap *
dnstap__dnstap__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data)
{
return (Dnstap__Dnstap *)
protobuf_c_message_unpack (&dnstap__dnstap__descriptor,
allocator, len, data);
}
void dnstap__dnstap__free_unpacked
(Dnstap__Dnstap *message,
ProtobufCAllocator *allocator)
{
assert(message->base.descriptor == &dnstap__dnstap__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void dnstap__message__init
(Dnstap__Message *message)
{
static Dnstap__Message init_value = DNSTAP__MESSAGE__INIT;
*message = init_value;
}
size_t dnstap__message__get_packed_size
(const Dnstap__Message *message)
{
assert(message->base.descriptor == &dnstap__message__descriptor);
return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t dnstap__message__pack
(const Dnstap__Message *message,
uint8_t *out)
{
assert(message->base.descriptor == &dnstap__message__descriptor);
return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t dnstap__message__pack_to_buffer
(const Dnstap__Message *message,
ProtobufCBuffer *buffer)
{
assert(message->base.descriptor == &dnstap__message__descriptor);
return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Dnstap__Message *
dnstap__message__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data)
{
return (Dnstap__Message *)
protobuf_c_message_unpack (&dnstap__message__descriptor,
allocator, len, data);
}
void dnstap__message__free_unpacked
(Dnstap__Message *message,
ProtobufCAllocator *allocator)
{
assert(message->base.descriptor == &dnstap__message__descriptor);
protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCEnumValue dnstap__dnstap__type__enum_values_by_number[1] =
{
{ "MESSAGE", "DNSTAP__DNSTAP__TYPE__MESSAGE", 1 },
};
static const ProtobufCIntRange dnstap__dnstap__type__value_ranges[] = {
{1, 0},{0, 1}
};
static const ProtobufCEnumValueIndex dnstap__dnstap__type__enum_values_by_name[1] =
{
{ "MESSAGE", 0 },
};
const ProtobufCEnumDescriptor dnstap__dnstap__type__descriptor =
{
PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
"dnstap.Dnstap.Type",
"Type",
"Dnstap__Dnstap__Type",
"dnstap",
1,
dnstap__dnstap__type__enum_values_by_number,
1,
dnstap__dnstap__type__enum_values_by_name,
1,
dnstap__dnstap__type__value_ranges,
NULL,NULL,NULL,NULL /* reserved[1234] */
};
static const ProtobufCFieldDescriptor dnstap__dnstap__field_descriptors[5] =
{
{
"identity",
1,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BYTES,
offsetof(Dnstap__Dnstap, has_identity),
offsetof(Dnstap__Dnstap, identity),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"version",
2,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BYTES,
offsetof(Dnstap__Dnstap, has_version),
offsetof(Dnstap__Dnstap, version),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"extra",
3,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BYTES,
offsetof(Dnstap__Dnstap, has_extra),
offsetof(Dnstap__Dnstap, extra),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"message",
14,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_MESSAGE,
0, /* quantifier_offset */
offsetof(Dnstap__Dnstap, message),
&dnstap__message__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"type",
15,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_ENUM,
0, /* quantifier_offset */
offsetof(Dnstap__Dnstap, type),
&dnstap__dnstap__type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned dnstap__dnstap__field_indices_by_name[] = {
2, /* field[2] = extra */
0, /* field[0] = identity */
3, /* field[3] = message */
4, /* field[4] = type */
1, /* field[1] = version */
};
static const ProtobufCIntRange dnstap__dnstap__number_ranges[2 + 1] =
{
{ 1, 0 },
{ 14, 3 },
{ 0, 5 }
};
const ProtobufCMessageDescriptor dnstap__dnstap__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"dnstap.Dnstap",
"Dnstap",
"Dnstap__Dnstap",
"dnstap",
sizeof(Dnstap__Dnstap),
5,
dnstap__dnstap__field_descriptors,
dnstap__dnstap__field_indices_by_name,
2, dnstap__dnstap__number_ranges,
(ProtobufCMessageInit) dnstap__dnstap__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCEnumValue dnstap__message__type__enum_values_by_number[12] =
{
{ "AUTH_QUERY", "DNSTAP__MESSAGE__TYPE__AUTH_QUERY", 1 },
{ "AUTH_RESPONSE", "DNSTAP__MESSAGE__TYPE__AUTH_RESPONSE", 2 },
{ "RESOLVER_QUERY", "DNSTAP__MESSAGE__TYPE__RESOLVER_QUERY", 3 },
{ "RESOLVER_RESPONSE", "DNSTAP__MESSAGE__TYPE__RESOLVER_RESPONSE", 4 },
{ "CLIENT_QUERY", "DNSTAP__MESSAGE__TYPE__CLIENT_QUERY", 5 },
{ "CLIENT_RESPONSE", "DNSTAP__MESSAGE__TYPE__CLIENT_RESPONSE", 6 },
{ "FORWARDER_QUERY", "DNSTAP__MESSAGE__TYPE__FORWARDER_QUERY", 7 },
{ "FORWARDER_RESPONSE", "DNSTAP__MESSAGE__TYPE__FORWARDER_RESPONSE", 8 },
{ "STUB_QUERY", "DNSTAP__MESSAGE__TYPE__STUB_QUERY", 9 },
{ "STUB_RESPONSE", "DNSTAP__MESSAGE__TYPE__STUB_RESPONSE", 10 },
{ "TOOL_QUERY", "DNSTAP__MESSAGE__TYPE__TOOL_QUERY", 11 },
{ "TOOL_RESPONSE", "DNSTAP__MESSAGE__TYPE__TOOL_RESPONSE", 12 },
};
static const ProtobufCIntRange dnstap__message__type__value_ranges[] = {
{1, 0},{0, 12}
};
static const ProtobufCEnumValueIndex dnstap__message__type__enum_values_by_name[12] =
{
{ "AUTH_QUERY", 0 },
{ "AUTH_RESPONSE", 1 },
{ "CLIENT_QUERY", 4 },
{ "CLIENT_RESPONSE", 5 },
{ "FORWARDER_QUERY", 6 },
{ "FORWARDER_RESPONSE", 7 },
{ "RESOLVER_QUERY", 2 },
{ "RESOLVER_RESPONSE", 3 },
{ "STUB_QUERY", 8 },
{ "STUB_RESPONSE", 9 },
{ "TOOL_QUERY", 10 },
{ "TOOL_RESPONSE", 11 },
};
const ProtobufCEnumDescriptor dnstap__message__type__descriptor =
{
PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
"dnstap.Message.Type",
"Type",
"Dnstap__Message__Type",
"dnstap",
12,
dnstap__message__type__enum_values_by_number,
12,
dnstap__message__type__enum_values_by_name,
1,
dnstap__message__type__value_ranges,
NULL,NULL,NULL,NULL /* reserved[1234] */
};
static const ProtobufCFieldDescriptor dnstap__message__field_descriptors[14] =
{
{
"type",
1,
PROTOBUF_C_LABEL_REQUIRED,
PROTOBUF_C_TYPE_ENUM,
0, /* quantifier_offset */
offsetof(Dnstap__Message, type),
&dnstap__message__type__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"socket_family",
2,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_ENUM,
offsetof(Dnstap__Message, has_socket_family),
offsetof(Dnstap__Message, socket_family),
&dnstap__socket_family__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"socket_protocol",
3,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_ENUM,
offsetof(Dnstap__Message, has_socket_protocol),
offsetof(Dnstap__Message, socket_protocol),
&dnstap__socket_protocol__descriptor,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"query_address",
4,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BYTES,
offsetof(Dnstap__Message, has_query_address),
offsetof(Dnstap__Message, query_address),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"response_address",
5,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BYTES,
offsetof(Dnstap__Message, has_response_address),
offsetof(Dnstap__Message, response_address),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"query_port",
6,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_UINT32,
offsetof(Dnstap__Message, has_query_port),
offsetof(Dnstap__Message, query_port),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"response_port",
7,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_UINT32,
offsetof(Dnstap__Message, has_response_port),
offsetof(Dnstap__Message, response_port),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"query_time_sec",
8,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_UINT64,
offsetof(Dnstap__Message, has_query_time_sec),
offsetof(Dnstap__Message, query_time_sec),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"query_time_nsec",
9,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_FIXED32,
offsetof(Dnstap__Message, has_query_time_nsec),
offsetof(Dnstap__Message, query_time_nsec),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"query_message",
10,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BYTES,
offsetof(Dnstap__Message, has_query_message),
offsetof(Dnstap__Message, query_message),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"query_zone",
11,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BYTES,
offsetof(Dnstap__Message, has_query_zone),
offsetof(Dnstap__Message, query_zone),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"response_time_sec",
12,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_UINT64,
offsetof(Dnstap__Message, has_response_time_sec),
offsetof(Dnstap__Message, response_time_sec),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"response_time_nsec",
13,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_FIXED32,
offsetof(Dnstap__Message, has_response_time_nsec),
offsetof(Dnstap__Message, response_time_nsec),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
{
"response_message",
14,
PROTOBUF_C_LABEL_OPTIONAL,
PROTOBUF_C_TYPE_BYTES,
offsetof(Dnstap__Message, has_response_message),
offsetof(Dnstap__Message, response_message),
NULL,
NULL,
0, /* flags */
0,NULL,NULL /* reserved1,reserved2, etc */
},
};
static const unsigned dnstap__message__field_indices_by_name[] = {
3, /* field[3] = query_address */
9, /* field[9] = query_message */
5, /* field[5] = query_port */
8, /* field[8] = query_time_nsec */
7, /* field[7] = query_time_sec */
10, /* field[10] = query_zone */
4, /* field[4] = response_address */
13, /* field[13] = response_message */
6, /* field[6] = response_port */
12, /* field[12] = response_time_nsec */
11, /* field[11] = response_time_sec */
1, /* field[1] = socket_family */
2, /* field[2] = socket_protocol */
0, /* field[0] = type */
};
static const ProtobufCIntRange dnstap__message__number_ranges[1 + 1] =
{
{ 1, 0 },
{ 0, 14 }
};
const ProtobufCMessageDescriptor dnstap__message__descriptor =
{
PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
"dnstap.Message",
"Message",
"Dnstap__Message",
"dnstap",
sizeof(Dnstap__Message),
14,
dnstap__message__field_descriptors,
dnstap__message__field_indices_by_name,
1, dnstap__message__number_ranges,
(ProtobufCMessageInit) dnstap__message__init,
NULL,NULL,NULL /* reserved[123] */
};
static const ProtobufCEnumValue dnstap__socket_family__enum_values_by_number[2] =
{
{ "INET", "DNSTAP__SOCKET_FAMILY__INET", 1 },
{ "INET6", "DNSTAP__SOCKET_FAMILY__INET6", 2 },
};
static const ProtobufCIntRange dnstap__socket_family__value_ranges[] = {
{1, 0},{0, 2}
};
static const ProtobufCEnumValueIndex dnstap__socket_family__enum_values_by_name[2] =
{
{ "INET", 0 },
{ "INET6", 1 },
};
const ProtobufCEnumDescriptor dnstap__socket_family__descriptor =
{
PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
"dnstap.SocketFamily",
"SocketFamily",
"Dnstap__SocketFamily",
"dnstap",
2,
dnstap__socket_family__enum_values_by_number,
2,
dnstap__socket_family__enum_values_by_name,
1,
dnstap__socket_family__value_ranges,
NULL,NULL,NULL,NULL /* reserved[1234] */
};
static const ProtobufCEnumValue dnstap__socket_protocol__enum_values_by_number[2] =
{
{ "UDP", "DNSTAP__SOCKET_PROTOCOL__UDP", 1 },
{ "TCP", "DNSTAP__SOCKET_PROTOCOL__TCP", 2 },
};
static const ProtobufCIntRange dnstap__socket_protocol__value_ranges[] = {
{1, 0},{0, 2}
};
static const ProtobufCEnumValueIndex dnstap__socket_protocol__enum_values_by_name[2] =
{
{ "TCP", 1 },
{ "UDP", 0 },
};
const ProtobufCEnumDescriptor dnstap__socket_protocol__descriptor =
{
PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
"dnstap.SocketProtocol",
"SocketProtocol",
"Dnstap__SocketProtocol",
"dnstap",
2,
dnstap__socket_protocol__enum_values_by_number,
2,
dnstap__socket_protocol__enum_values_by_name,
1,
dnstap__socket_protocol__value_ranges,
NULL,NULL,NULL,NULL /* reserved[1234] */
};
/* Generated by the protocol buffer compiler. DO NOT EDIT! */
/* Generated from: dnstap.proto */
#ifndef PROTOBUF_C_dnstap_2eproto__INCLUDED
#define PROTOBUF_C_dnstap_2eproto__INCLUDED
#include <protobuf-c/protobuf-c.h>
PROTOBUF_C__BEGIN_DECLS
#if PROTOBUF_C_VERSION_NUMBER < 1000000
# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers.
#elif 1002001 < PROTOBUF_C_MIN_COMPILER_VERSION
# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
#endif
typedef struct _Dnstap__Dnstap Dnstap__Dnstap;
typedef struct _Dnstap__Message Dnstap__Message;
/* --- enums --- */
/*
* Identifies which field below is filled in.
*/
typedef enum _Dnstap__Dnstap__Type {
DNSTAP__DNSTAP__TYPE__MESSAGE = 1
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(DNSTAP__DNSTAP__TYPE)
} Dnstap__Dnstap__Type;
typedef enum _Dnstap__Message__Type {
/*
* AUTH_QUERY is a DNS query message received from a resolver by an
* authoritative name server, from the perspective of the authoritative
* name server.
*/
DNSTAP__MESSAGE__TYPE__AUTH_QUERY = 1,
/*
* AUTH_RESPONSE is a DNS response message sent from an authoritative
* name server to a resolver, from the perspective of the authoritative
* name server.
*/
DNSTAP__MESSAGE__TYPE__AUTH_RESPONSE = 2,
/*
* RESOLVER_QUERY is a DNS query message sent from a resolver to an
* authoritative name server, from the perspective of the resolver.
* Resolvers typically clear the RD (recursion desired) bit when
* sending queries.
*/
DNSTAP__MESSAGE__TYPE__RESOLVER_QUERY = 3,
/*
* RESOLVER_RESPONSE is a DNS response message received from an
* authoritative name server by a resolver, from the perspective of
* the resolver.
*/
DNSTAP__MESSAGE__TYPE__RESOLVER_RESPONSE = 4,
/*
* CLIENT_QUERY is a DNS query message sent from a client to a DNS
* server which is expected to perform further recursion, from the
* perspective of the DNS server. The client may be a stub resolver or
* forwarder or some other type of software which typically sets the RD
* (recursion desired) bit when querying the DNS server. The DNS server
* may be a simple forwarding proxy or it may be a full recursive
* resolver.
*/
DNSTAP__MESSAGE__TYPE__CLIENT_QUERY = 5,
/*
* CLIENT_RESPONSE is a DNS response message sent from a DNS server to
* a client, from the perspective of the DNS server. The DNS server
* typically sets the RA (recursion available) bit when responding.
*/
DNSTAP__MESSAGE__TYPE__CLIENT_RESPONSE = 6,
/*
* FORWARDER_QUERY is a DNS query message sent from a downstream DNS
* server to an upstream DNS server which is expected to perform
* further recursion, from the perspective of the downstream DNS
* server.
*/
DNSTAP__MESSAGE__TYPE__FORWARDER_QUERY = 7,
/*
* FORWARDER_RESPONSE is a DNS response message sent from an upstream
* DNS server performing recursion to a downstream DNS server, from the
* perspective of the downstream DNS server.
*/
DNSTAP__MESSAGE__TYPE__FORWARDER_RESPONSE = 8,
/*
* STUB_QUERY is a DNS query message sent from a stub resolver to a DNS
* server, from the perspective of the stub resolver.
*/
DNSTAP__MESSAGE__TYPE__STUB_QUERY = 9,
/*
* STUB_RESPONSE is a DNS response message sent from a DNS server to a
* stub resolver, from the perspective of the stub resolver.
*/
DNSTAP__MESSAGE__TYPE__STUB_RESPONSE = 10,
/*
* TOOL_QUERY is a DNS query message sent from a DNS software tool to a
* DNS server, from the perspective of the tool.
*/
DNSTAP__MESSAGE__TYPE__TOOL_QUERY = 11,
/*
* TOOL_RESPONSE is a DNS response message received by a DNS software
* tool from a DNS server, from the perspective of the tool.
*/
DNSTAP__MESSAGE__TYPE__TOOL_RESPONSE = 12
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(DNSTAP__MESSAGE__TYPE)
} Dnstap__Message__Type;
/*
* SocketFamily: the network protocol family of a socket. This specifies how
* to interpret "network address" fields.
*/
typedef enum _Dnstap__SocketFamily {
/*
* IPv4 (RFC 791)
*/
DNSTAP__SOCKET_FAMILY__INET = 1,
/*
* IPv6 (RFC 2460)
*/
DNSTAP__SOCKET_FAMILY__INET6 = 2
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(DNSTAP__SOCKET_FAMILY)
} Dnstap__SocketFamily;
/*
* SocketProtocol: the transport protocol of a socket. This specifies how to
* interpret "transport port" fields.
*/
typedef enum _Dnstap__SocketProtocol {
/*
* User Datagram Protocol (RFC 768)
*/
DNSTAP__SOCKET_PROTOCOL__UDP = 1,
/*
* Transmission Control Protocol (RFC 793)
*/
DNSTAP__SOCKET_PROTOCOL__TCP = 2
PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(DNSTAP__SOCKET_PROTOCOL)
} Dnstap__SocketProtocol;
/* --- messages --- */
/*
* "Dnstap": this is the top-level dnstap type, which is a "union" type that
* contains other kinds of dnstap payloads, although currently only one type
* of dnstap payload is defined.
* See: https://developers.google.com/protocol-buffers/docs/techniques#union
*/
struct _Dnstap__Dnstap
{
ProtobufCMessage base;
/*
* DNS server identity.
* If enabled, this is the identity string of the DNS server which generated
* this message. Typically this would be the same string as returned by an
* "NSID" (RFC 5001) query.
*/
protobuf_c_boolean has_identity;
ProtobufCBinaryData identity;
/*
* DNS server version.
* If enabled, this is the version string of the DNS server which generated
* this message. Typically this would be the same string as returned by a
* "version.bind" query.
*/
protobuf_c_boolean has_version;
ProtobufCBinaryData version;
/*
* Extra data for this payload.
* This field can be used for adding an arbitrary byte-string annotation to
* the payload. No encoding or interpretation is applied or enforced.
*/
protobuf_c_boolean has_extra;
ProtobufCBinaryData extra;
Dnstap__Dnstap__Type type;
/*
* One of the following will be filled in.
*/
Dnstap__Message *message;
};
#define DNSTAP__DNSTAP__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&dnstap__dnstap__descriptor) \
, 0,{0,NULL}, 0,{0,NULL}, 0,{0,NULL}, 0, NULL }
/*
* Message: a wire-format (RFC 1035 section 4) DNS message and associated
* metadata. Applications generating "Message" payloads should follow
* certain requirements based on the MessageType, see below.
*/
struct _Dnstap__Message
{
ProtobufCMessage base;
/*
* One of the Type values described above.
*/
Dnstap__Message__Type type;
/*
* One of the SocketFamily values described above.
*/
protobuf_c_boolean has_socket_family;
Dnstap__SocketFamily socket_family;
/*
* One of the SocketProtocol values described above.
*/
protobuf_c_boolean has_socket_protocol;
Dnstap__SocketProtocol socket_protocol;
/*
* The network address of the message initiator.
* For SocketFamily INET, this field is 4 octets (IPv4 address).
* For SocketFamily INET6, this field is 16 octets (IPv6 address).
*/
protobuf_c_boolean has_query_address;
ProtobufCBinaryData query_address;
/*
* The network address of the message responder.
* For SocketFamily INET, this field is 4 octets (IPv4 address).
* For SocketFamily INET6, this field is 16 octets (IPv6 address).
*/
protobuf_c_boolean has_response_address;
ProtobufCBinaryData response_address;
/*
* The transport port of the message initiator.
* This is a 16-bit UDP or TCP port number, depending on SocketProtocol.
*/
protobuf_c_boolean has_query_port;
uint32_t query_port;
/*
* The transport port of the message responder.
* This is a 16-bit UDP or TCP port number, depending on SocketProtocol.
*/
protobuf_c_boolean has_response_port;
uint32_t response_port;
/*
* The time at which the DNS query message was sent or received, depending
* on whether this is an AUTH_QUERY, RESOLVER_QUERY, or CLIENT_QUERY.
* This is the number of seconds since the UNIX epoch.
*/
protobuf_c_boolean has_query_time_sec;
uint64_t query_time_sec;
/*
* The time at which the DNS query message was sent or received.
* This is the seconds fraction, expressed as a count of nanoseconds.
*/
protobuf_c_boolean has_query_time_nsec;
uint32_t query_time_nsec;
/*
* The initiator's original wire-format DNS query message, verbatim.
*/
protobuf_c_boolean has_query_message;
ProtobufCBinaryData query_message;
/*
* The "zone" or "bailiwick" pertaining to the DNS query message.
* This is a wire-format DNS domain name.
*/
protobuf_c_boolean has_query_zone;
ProtobufCBinaryData query_zone;
/*
* The time at which the DNS response message was sent or received,
* depending on whether this is an AUTH_RESPONSE, RESOLVER_RESPONSE, or
* CLIENT_RESPONSE.
* This is the number of seconds since the UNIX epoch.
*/
protobuf_c_boolean has_response_time_sec;
uint64_t response_time_sec;
/*
* The time at which the DNS response message was sent or received.
* This is the seconds fraction, expressed as a count of nanoseconds.
*/
protobuf_c_boolean has_response_time_nsec;
uint32_t response_time_nsec;
/*
* The responder's original wire-format DNS response message, verbatim.
*/
protobuf_c_boolean has_response_message;
ProtobufCBinaryData response_message;
};
#define DNSTAP__MESSAGE__INIT \
{ PROTOBUF_C_MESSAGE_INIT (&dnstap__message__descriptor) \
, 0, 0,0, 0,0, 0,{0,NULL}, 0,{0,NULL}, 0,0, 0,0, 0,0, 0,0, 0,{0,NULL}, 0,{0,NULL}, 0,0, 0,0, 0,{0,NULL} }
/* Dnstap__Dnstap methods */
void dnstap__dnstap__init
(Dnstap__Dnstap *message);
size_t dnstap__dnstap__get_packed_size
(const Dnstap__Dnstap *message);
size_t dnstap__dnstap__pack
(const Dnstap__Dnstap *message,
uint8_t *out);
size_t dnstap__dnstap__pack_to_buffer
(const Dnstap__Dnstap *message,
ProtobufCBuffer *buffer);
Dnstap__Dnstap *
dnstap__dnstap__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data);
void dnstap__dnstap__free_unpacked
(Dnstap__Dnstap *message,
ProtobufCAllocator *allocator);
/* Dnstap__Message methods */
void dnstap__message__init
(Dnstap__Message *message);
size_t dnstap__message__get_packed_size
(const Dnstap__Message *message);
size_t dnstap__message__pack
(const Dnstap__Message *message,
uint8_t *out);
size_t dnstap__message__pack_to_buffer
(const Dnstap__Message *message,
ProtobufCBuffer *buffer);
Dnstap__Message *
dnstap__message__unpack
(ProtobufCAllocator *allocator,
size_t len,
const uint8_t *data);
void dnstap__message__free_unpacked
(Dnstap__Message *message,
ProtobufCAllocator *allocator);
/* --- per-message closures --- */
typedef void (*Dnstap__Dnstap_Closure)
(const Dnstap__Dnstap *message,
void *closure_data);
typedef void (*Dnstap__Message_Closure)
(const Dnstap__Message *message,
void *closure_data);
/* --- services --- */
/* --- descriptors --- */
extern const ProtobufCEnumDescriptor dnstap__socket_family__descriptor;
extern const ProtobufCEnumDescriptor dnstap__socket_protocol__descriptor;
extern const ProtobufCMessageDescriptor dnstap__dnstap__descriptor;
extern const ProtobufCEnumDescriptor dnstap__dnstap__type__descriptor;
extern const ProtobufCMessageDescriptor dnstap__message__descriptor;
extern const ProtobufCEnumDescriptor dnstap__message__type__descriptor;
PROTOBUF_C__END_DECLS
#endif /* PROTOBUF_C_dnstap_2eproto__INCLUDED */
......@@ -34,7 +34,7 @@
#include "lib/module.h"
#include "lib/layer.h"
#include "lib/resolve.h"
#include "contrib/dnstap/dnstap.pb-c.h"
#include "modules/dnstap/dnstap.pb-c.h"
#include <ccan/json/json.h>
#include <fstrm.h>
#include "contrib/cleanup.h"
......
dnstap_CFLAGS := -fvisibility=hidden -fPIC
dnstap_SOURCES := modules/dnstap/dnstap.c
dnstap_SOURCES := modules/dnstap/dnstap.c modules/dnstap/dnstap.pb-c.c
dnstap_DEPEND := $(libkres)
dnstap_LIBS := $(contrib_TARGET) $(libkres_TARGET) $(libkres_LIBS) $(libprotobuf-c_LIBS) $(libfstrm_LIBS)
$(call make_c_module,dnstap)
modules/dnstap/dnstap.pb-c.c: modules/dnstap/dnstap.proto
protoc-c $< --c_out=.
dnstap-clean-extra:
@$(call quiet,RM,modules/dnstap/dnstap.pb-c.*) modules/dnstap/dnstap.pb-c.*
dnstap-clean: dnstap-clean-extra
.PHONY: dnstap-clean-extra
File moved
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment