first batch of license fixes (boring)
[oweals/gnunet.git] / src / util / resolver.h
1 /*
2      This file is part of GNUnet.
3      Copyright (C) 2009, 2012 GNUnet e.V.
4
5      GNUnet is free software: you can redistribute it and/or modify it
6      under the terms of the GNU 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
16 /**
17  * @author Christian Grothoff
18  * @file util/resolver.h
19  */
20 #ifndef RESOLVER_H
21 #define RESOLVER_H
22
23 #include "gnunet_common.h"
24
25 GNUNET_NETWORK_STRUCT_BEGIN
26
27 /**
28  * Request for the resolver.  Followed by either the "struct sockaddr"
29  * or the 0-terminated hostname.
30  *
31  * The response will be one or more messages of type
32  * RESOLVER_RESPONSE, each with the message header immediately
33  * followed by the requested data (0-terminated hostname or struct
34  * in[6]_addr, depending on direction).  The last RESOLVER_RESPONSE
35  * will just be a header without any data (used to indicate the end of
36  * the list).
37  */
38 struct GNUNET_RESOLVER_GetMessage
39 {
40   /**
41    * Type:  GNUNET_MESSAGE_TYPE_RESOLVER_REQUEST
42    */
43   struct GNUNET_MessageHeader header;
44
45   /**
46    * GNUNET_YES to get hostname from IP,
47    * GNUNET_NO to get IP from hostname.
48    */
49   int32_t direction GNUNET_PACKED;
50
51   /**
52    * Address family to use (AF_INET, AF_INET6 or AF_UNSPEC).
53    */
54   int32_t af GNUNET_PACKED;
55
56   /* followed by 0-terminated string for A/AAAA-lookup or
57      by 'struct in_addr' / 'struct in6_addr' for reverse lookup */
58
59 };
60 GNUNET_NETWORK_STRUCT_END
61
62 #endif