From 0f2e170ea6edee4df0f90a3821d5c054db6bd6b7 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 29 Feb 2012 22:44:40 +0100 Subject: Only send packets to the right host in ethernet mode --- src/fastd.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/fastd.h') diff --git a/src/fastd.h b/src/fastd.h index 90df868..acc5a19 100644 --- a/src/fastd.h +++ b/src/fastd.h @@ -73,6 +73,10 @@ typedef enum _fastd_peer_state { STATE_ESTABLISHED, } fastd_peer_state; +typedef struct _fastd_eth_addr { + uint8_t data[ETH_ALEN]; +} fastd_eth_addr; + typedef struct _fastd_peer { struct _fastd_peer *next; @@ -83,10 +87,13 @@ typedef struct _fastd_peer { fastd_peer_state state; uint8_t last_req_id; - - void **addresses; } fastd_peer; +typedef struct _fastd_peer_eth_addr { + fastd_eth_addr addr; + fastd_peer *peer; +} fastd_peer_eth_addr; + typedef struct _fastd_context fastd_context; typedef struct _fastd_method { @@ -124,6 +131,10 @@ struct _fastd_context { int tunfd; int sockfd; + + size_t eth_addr_size; + size_t n_eth_addr; + fastd_peer_eth_addr *eth_addr; }; @@ -152,7 +163,6 @@ static inline void fastd_buffer_free(fastd_buffer buffer) { free(buffer.base); } - static inline size_t fastd_max_packet_size(const fastd_context *ctx) { switch (ctx->conf->protocol) { case PROTOCOL_ETHERNET: -- cgit v1.2.3