#include "gnunet_util_lib.h"
+GNUNET_NETWORK_STRUCT_BEGIN
+
/**
* Message send via mesh to an exit daemon to initiate forwarding of
* TCP data to a local service.
/**
* Always 0.
*/
- uint32_t reserved;
+ uint32_t reserved GNUNET_PACKED;
/**
* Identification for the desired service.
*/
- GNUNET_HashCode service_descriptor;
+ GNUNET_HashCode service_descriptor GNUNET_PACKED;
/**
* Skeleton of the TCP header to send. Port numbers are to
/**
* Address family, AF_INET or AF_INET6, in network byte order.
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* Skeleton of the TCP header to send. Port numbers are to
/**
* Always 0.
*/
- uint32_t reserved;
+ uint32_t reserved GNUNET_PACKED;
/**
* Skeleton of the TCP header to send. Port numbers are to
/**
* Source port to use for the UDP request (0 to use a random port). In NBO.
*/
- uint16_t source_port;
+ uint16_t source_port GNUNET_PACKED;
/**
* Destination port to use for the UDP request. In NBO.
*/
- uint16_t destination_port;
+ uint16_t destination_port GNUNET_PACKED;
/**
* Identification for the desired service.
*/
- GNUNET_HashCode service_descriptor;
+ GNUNET_HashCode service_descriptor GNUNET_PACKED;
/* followed by UDP payload */
};
/**
* Address family, AF_INET or AF_INET6, in network byte order.
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* Source port to use for the UDP request (0 to use a random port). In NBO.
*/
- uint16_t source_port;
+ uint16_t source_port GNUNET_PACKED;
/**
* Destination port to use for the UDP request. In NBO.
*/
- uint16_t destination_port;
+ uint16_t destination_port GNUNET_PACKED;
/* followed by IP address of the destination; either
'struct in_addr' or 'struct in6_addr', depending on af */
* Source port to use for the UDP reply (0 to use the same
* port as for the original request). In NBO.
*/
- uint16_t source_port;
+ uint16_t source_port GNUNET_PACKED;
/**
* Destination port to use for the UDP reply (0 to use the same
* port as for the original request). In NBO.
*/
- uint16_t destination_port;
+ uint16_t destination_port GNUNET_PACKED;
/* followed by UDP payload */
};
* The receiver (exit) may still have to translate (PT) to the services'
* ICMP version (if possible).
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* Identification for the desired service.
*/
- GNUNET_HashCode service_descriptor;
+ GNUNET_HashCode service_descriptor GNUNET_PACKED;
/**
* ICMP header to use.
* the IP address format that is used for the target IP. If
* PT is necessary, the sender has already done it.
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* ICMP header to use. Must match the target 'af' given
* Address family, AF_INET or AF_INET6, in network byte order.
* Useful to determine if this is an ICMPv4 or ICMPv6 header.
*/
- int32_t af;
+ int32_t af GNUNET_PACKED;
/**
* ICMP header to use. ICMPv4 or ICMPv6, depending on 'af'.
};
+GNUNET_NETWORK_STRUCT_END
+
#endif
#include "gnunet_util_lib.h"
+GNUNET_NETWORK_STRUCT_BEGIN
+
/**
* Message send by the VPN client to the VPN service requesting
* the setup of a redirection from some IP via an exit node to
* GNUNET_YES to notify only after completion of the mesh-level connection,
* GNUNET_NO to notify as soon as an address was allocated (in nbo).
*/
- int32_t nac;
+ int32_t nac GNUNET_PACKED;
/**
* How long should the redirection be maintained at most?
/**
* Address family desired for the result (AF_INET or AF_INET6 or AF_UNSPEC, in nbo)
*/
- int32_t result_af;
+ int32_t result_af GNUNET_PACKED;
/**
* Address family used for the destination address (AF_INET or AF_INET6, in nbo)
*/
- int32_t addr_af;
+ int32_t addr_af GNUNET_PACKED;
/**
* Unique ID to match a future response to this request.
* Picked by the client.
*/
- uint64_t request_id;
+ uint64_t request_id GNUNET_PACKED;
/* followed by destination address ('struct in_addr' or 'struct in6_addr') */
* GNUNET_YES to notify only after completion of the mesh-level connection,
* GNUNET_NO to notify as soon as an address was allocated (in nbo).
*/
- int32_t nac;
+ int32_t nac GNUNET_PACKED;
/**
* How long should the redirection be maintained at most?
/**
* Desired protocol (IPPROTO_UDP or IPPROTO_TCP)
*/
- int32_t protocol;
+ int32_t protocol GNUNET_PACKED;
/**
* Address family desired for the result (AF_INET or AF_INET6 or AF_UNSPEC, in nbo)
*/
- int32_t result_af;
+ int32_t result_af GNUNET_PACKED;
/**
* Target peer offering the service.
/**
* Service descriptor identifying the service.
*/
- GNUNET_HashCode service_descriptor;
+ GNUNET_HashCode service_descriptor GNUNET_PACKED;
/**
* Unique ID to match a future response to this request.
* Picked by the client.
*/
- uint64_t request_id;
+ uint64_t request_id GNUNET_PACKED;
};
* Address family of the allocated address that follows; will match
* "result_af" from the request, of be "AF_UNSPEC" on errors.
*/
- int32_t result_af;
+ int32_t result_af GNUNET_PACKED;
/**
* Unique ID to match the response to a request.
*/
- uint64_t request_id;
+ uint64_t request_id GNUNET_PACKED;
/* followed by destination address ('struct in_addr' or 'struct in6_addr') */
};
+GNUNET_NETWORK_STRUCT_END
+
#endif