234ed502d122542c77526ab818558150d53c2c7a
[oweals/gnunet.git] / src / include / block_dns.h
1 /*
2      This file is part of GNUnet.
3      Copyright (C) 2013 GNUnet e.V.
4
5      GNUnet is free software: you can redistribute it and/or modify it
6      under the terms of the GNU Affero General Public License as published
7      by the Free Software Foundation, either version 3 of the License,
8      or (at your option) any later version.
9
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      Affero General Public License for more details.
14     
15      You should have received a copy of the GNU Affero General Public License
16      along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 /**
20  * @author Christian Grothoff
21  *
22  * @file
23  * DNS network structs
24  *
25  * @defgroup block-dns  DNS Service network protocol definitions
26  * @{
27  */
28 #ifndef BLOCK_DNS_H
29 #define BLOCK_DNS_H
30
31 #include "gnunet_util_lib.h"
32
33 GNUNET_NETWORK_STRUCT_BEGIN
34
35 /**
36  * This is the structure describing an DNS exit service.
37  */
38 struct GNUNET_DNS_Advertisement
39 {
40   /**
41    * Signature of the peer affirming that it is offering the service.
42    */
43   struct GNUNET_CRYPTO_EddsaSignature signature;
44
45   /**
46    * Beginning of signed portion of the record, signs everything until
47    * the end of the struct.
48    */
49   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
50
51   /**
52    * When does this signature expire?
53    */
54   struct GNUNET_TIME_AbsoluteNBO expiration_time;
55
56   /**
57    * The peer providing this service
58    */
59   struct GNUNET_PeerIdentity peer;
60
61 };
62 GNUNET_NETWORK_STRUCT_END
63
64 #endif
65
66 /** @} */  /* end of group */