2 This file is part of GNUnet
3 (C) 2012 Christian Grothoff (and other contributing authors)
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 2, or (at your
8 option) any later version.
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
22 * @file include/gns_protocol.h
23 * @brief Resource Record definitions
24 * @author Martin Schanzenbach
29 GNUNET_NETWORK_STRUCT_BEGIN
32 * Payload of DNS SOA record (header).
37 * The version number of the original copy of the zone. (NBO)
39 uint32_t serial GNUNET_PACKED;
42 * Time interval before the zone should be refreshed. (NBO)
44 uint32_t refresh GNUNET_PACKED;
47 * Time interval that should elapse before a failed refresh should
50 uint32_t retry GNUNET_PACKED;
53 * Time value that specifies the upper limit on the time interval
54 * that can elapse before the zone is no longer authoritative. (NBO)
56 uint32_t expire GNUNET_PACKED;
59 * The bit minimum TTL field that should be exported with any RR
60 * from this zone. (NBO)
62 uint32_t minimum GNUNET_PACKED;
67 * Payload of DNS SRV record (header).
73 * Preference for this entry (lower value is higher preference). Clients
74 * will contact hosts from the lowest-priority group first and fall back
75 * to higher priorities if the low-priority entries are unavailable. (NBO)
77 uint16_t prio GNUNET_PACKED;
80 * Relative weight for records with the same priority. Clients will use
81 * the hosts of the same (lowest) priority with a probability proportional
82 * to the weight given. (NBO)
84 uint16_t weight GNUNET_PACKED;
87 * TCP or UDP port of the service. (NBO)
89 uint16_t port GNUNET_PACKED;
91 /* followed by 'target' name */
96 * Payload of DNSSEC TLSA record.
97 * http://datatracker.ietf.org/doc/draft-ietf-dane-protocol/
107 * 3: domain-issued cert
113 * What part will be matched against the cert
114 * presented by server
115 * 0: Full cert (in binary)
116 * 1: Full cert (in DER)
121 * Matching type (of selected content)
126 uint8_t matching_type;
129 * followed by certificate association data
130 * The "certificate association data" to be matched.
131 * These bytes are either raw data (that is, the full certificate or
132 * its SubjectPublicKeyInfo, depending on the selector) for matching
133 * type 0, or the hash of the raw data for matching types 1 and 2.
134 * The data refers to the certificate in the association, not to the
135 * TLS ASN.1 Certificate object.
137 * The data is represented as a string of hex chars
142 * Payload of GNS VPN record
147 * The peer to contact
149 struct GNUNET_HashCode peer;
152 * The protocol to use
156 /* followed by the servicename */
159 GNUNET_NETWORK_STRUCT_END