GNUnet  0.10.x
exit.h
Go to the documentation of this file.
1 /*
2  This file is part of GNUnet.
3  Copyright (C) 2012 Christian Grothoff
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 
26 #ifndef EXIT_H
27 #define EXIT_H
28 
29 #include "gnunet_util_lib.h"
30 
32 
42 
47 
53 
54  /* followed by TCP payload */
55 };
56 
57 
67 
71  int32_t af GNUNET_PACKED;
72 
77  struct GNUNET_TUN_TcpHeader tcp_header;
78 
79  /* followed by IP address of the destination; either
80  'struct in_addr' or 'struct in6_addr', depending on af */
81 
82  /* followed by TCP payload */
83 };
84 
85 
97 
102 
107  struct GNUNET_TUN_TcpHeader tcp_header;
108 
109  /* followed by TCP payload */
110 };
111 
112 
122 
126  uint16_t source_port GNUNET_PACKED;
127 
131  uint16_t destination_port GNUNET_PACKED;
132 
133  /* followed by UDP payload */
134 };
135 
136 
146 
150  int32_t af GNUNET_PACKED;
151 
155  uint16_t source_port GNUNET_PACKED;
156 
160  uint16_t destination_port GNUNET_PACKED;
161 
162  /* followed by IP address of the destination; either
163  'struct in_addr' or 'struct in6_addr', depending on af */
164 
165  /* followed by UDP payload */
166 };
167 
168 
178 
183  uint16_t source_port GNUNET_PACKED;
184 
189  uint16_t destination_port GNUNET_PACKED;
190 
191  /* followed by UDP payload */
192 };
193 
194 
204 
211  int32_t af GNUNET_PACKED;
212 
216  struct GNUNET_TUN_IcmpHeader icmp_header;
217 
218  /* followed by ICMP payload; however, for certain ICMP message
219  types where the payload is the original IP packet, the payload
220  is omitted as it is useless for the receiver (who will need
221  to create some fake payload manually) */
222 };
223 
224 
234 
241  int32_t af GNUNET_PACKED;
242 
247  struct GNUNET_TUN_IcmpHeader icmp_header;
248 
249  /* followed by IP address of the destination; either
250  'struct in_addr' or 'struct in6_addr', depending on af */
251 
252  /* followed by ICMP payload; however, for certain ICMP message
253  types where the payload is the original IP packet, the payload
254  is omitted as it is useless for the receiver (who will need
255  to create some fake payload manually) */
256 };
257 
258 
268 
273  int32_t af GNUNET_PACKED;
274 
278  struct GNUNET_TUN_IcmpHeader icmp_header;
279 
280  /* followed by ICMP payload; however, for certain ICMP message
281  types where the payload is the original IP packet, the payload
282  is omitted as it is useless for the receiver (who will need
283  to create some fake payload manually) */
284 };
285 
286 
288 
289 #endif
struct GNUNET_TUN_TcpHeader tcp_header
Skeleton of the TCP header to send.
Definition: exit.h:52
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32.
Message send via cadet to an exit daemon to send ICMP data to a local service.
Definition: exit.h:199
uint32_t reserved
Always 0.
Definition: exit.h:46
Message send via cadet to an exit daemon to forward ICMP data to the Internet.
Definition: exit.h:229
Message send from exit daemon back to the UDP entry point (used for both Internet and Service exit re...
Definition: exit.h:173
Message send via cadet to the vpn service to send ICMP data to the VPN&#39;s TUN interface.
Definition: exit.h:263
TCP packet header.
Message send via cadet to an exit daemon to send UDP data to a local service.
Definition: exit.h:117
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32;.
#define GNUNET_PACKED
gcc-ism to get packed structs.
Message send via cadet to an exit daemon to initiate forwarding of TCP data to the Internet...
Definition: exit.h:62
Header for all communications.
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_VPN_TCP_TO_SERVICE_START.
Definition: exit.h:41
Message send via cadet to an exit daemon to initiate forwarding of TCP data to a local service...
Definition: exit.h:37
Message send via cadet between VPN and entry and an exit daemon to transmit TCP data between the VPN ...
Definition: exit.h:92
Message send via cadet to an exit daemon to forward UDP data to the Internet.
Definition: exit.h:141