uncrustify as demanded.
[oweals/gnunet.git] / src / gns / gns.h
1 /*
2       This file is part of GNUnet
3       Copyright (C) 2012-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      SPDX-License-Identifier: AGPL3.0-or-later
19  */
20 /**
21  * @file gns/gns.h
22  * @brief IPC messages between GNS API and GNS service
23  * @author Martin Schanzenbach
24  */
25 #ifndef GNS_H
26 #define GNS_H
27
28 #include "gnunet_gns_service.h"
29
30
31 GNUNET_NETWORK_STRUCT_BEGIN
32
33 /**
34  * Message from client to GNS service to lookup records.
35  */
36 struct LookupMessage {
37   /**
38    * Header of type #GNUNET_MESSAGE_TYPE_GNS_LOOKUP
39    */
40   struct GNUNET_MessageHeader header;
41
42   /**
43    * Unique identifier for this request (for key collisions).
44    */
45   uint32_t id GNUNET_PACKED;
46
47   /**
48    * Zone that is to be used for lookup
49    */
50   struct GNUNET_CRYPTO_EcdsaPublicKey zone;
51
52   /**
53    * Local options for where to look for results
54    * (an `enum GNUNET_GNS_LocalOptions` in NBO).
55    */
56   int16_t options GNUNET_PACKED;
57
58   /**
59    * Always 0.
60    */
61   int16_t reserved GNUNET_PACKED;
62
63   /**
64    * the type of record to look up
65    */
66   int32_t type GNUNET_PACKED;
67
68   /* Followed by the zero-terminated name to look up */
69 };
70
71
72 /**
73  * Message from GNS service to client: new results.
74  */
75 struct LookupResultMessage {
76   /**
77    * Header of type #GNUNET_MESSAGE_TYPE_GNS_LOOKUP_RESULT
78    */
79   struct GNUNET_MessageHeader header;
80
81   /**
82    * Unique identifier for this request (for key collisions).
83    */
84   uint32_t id GNUNET_PACKED;
85
86   /**
87    * The number of records contained in response
88    */
89   uint32_t rd_count GNUNET_PACKED;
90
91   /* followed by rd_count GNUNET_GNSRECORD_Data structs*/
92 };
93
94
95 GNUNET_NETWORK_STRUCT_END
96
97 #endif