*/
struct IPv4UdpAddress
{
+ /**
+ * Optional options and flags for this address
+ */
+ uint32_t options GNUNET_PACKED;
+
/**
* IPv4 address, in network byte order.
*/
*/
struct IPv6UdpAddress
{
+ /**
+ * Optional options and flags for this address
+ */
+ uint32_t options GNUNET_PACKED;
/**
* IPv6 address.
* Session of peers with whom we are currently connected,
* map of peer identity to 'struct PeerSession'.
*/
- struct GNUNET_CONTAINER_MultiHashMap *sessions;
+ struct GNUNET_CONTAINER_MultiPeerMap *sessions;
/**
* Heap with all of our defragmentation activities.
* ID of select task
*/
GNUNET_SCHEDULER_TaskIdentifier select_task;
+ GNUNET_SCHEDULER_TaskIdentifier select_task_v6;
/**
* Tokenizer for inbound messages.
*/
char *bind6_address;
+
+ /**
+ * Bytes currently in buffer
+ */
+ int64_t bytes_in_buffer;
+
/**
* Handle to NAT traversal support.
*/
/**
* FD Read set
*/
- struct GNUNET_NETWORK_FDSet *rs;
+ struct GNUNET_NETWORK_FDSet *rs_v4;
/**
* FD Write set
*/
- struct GNUNET_NETWORK_FDSet *ws;
+ struct GNUNET_NETWORK_FDSet *ws_v4;
+
/**
* The read socket for IPv4
*/
struct GNUNET_NETWORK_Handle *sockv4;
+
+ /**
+ * FD Read set
+ */
+ struct GNUNET_NETWORK_FDSet *rs_v6;
+
+ /**
+ * FD Write set
+ */
+ struct GNUNET_NETWORK_FDSet *ws_v6;
+
/**
* The read socket for IPv6
*/
struct BroadcastAddress *ipv4_broadcast_head;
/**
- * Enable IPv6
+ * Is IPv6 enabled: GNUNET_YES or GNUNET_NO
*/
int enable_ipv6;
+ /**
+ * Is IPv4 enabled: GNUNET_YES or GNUNET_NO
+ */
+ int enable_ipv4;
+
/**
* Port we broadcasting on.
*/
*/
uint16_t aport;
- struct UDPMessageWrapper *msg_head;
- struct UDPMessageWrapper *msg_tail;
+ struct UDP_MessageWrapper *ipv4_queue_head;
+ struct UDP_MessageWrapper *ipv4_queue_tail;
+ struct UDP_MessageWrapper *ipv6_queue_head;
+ struct UDP_MessageWrapper *ipv6_queue_tail;
};
udp_broadcast_receive ();
void
-setup_broadcast (struct Plugin *plugin, struct sockaddr_in6 *serverAddrv6, struct sockaddr_in *serverAddrv4);
+setup_broadcast (struct Plugin *plugin, struct sockaddr_in6 *server_addrv6, struct sockaddr_in *server_addrv4);
void
stop_broadcast (struct Plugin *plugin);