X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FIPStack%2Fudp.h;h=391478941fd571848b237d165cf0253c438c852b;hb=c2bba6e776701404229ef2bebe10c8dc9046b026;hp=36c36e1580bde76e3ab1a02ce7e05d57132a657f;hpb=b3fa9a08edcbc459bd8e9df73186e292470ebfc3;p=tpg%2Facess2.git diff --git a/Modules/IPStack/udp.h b/Modules/IPStack/udp.h index 36c36e15..39147894 100644 --- a/Modules/IPStack/udp.h +++ b/Modules/IPStack/udp.h @@ -9,6 +9,7 @@ #include "ipv4.h" typedef struct sUDPHeader tUDPHeader; +typedef struct sUDPEndpoint tUDPEndpoint; typedef struct sUDPPacket tUDPPacket; typedef struct sUDPChannel tUDPChannel; @@ -21,9 +22,20 @@ struct sUDPHeader Uint8 Data[]; }; +struct sUDPEndpoint +{ + Uint16 Port; + Uint16 AddrType; + union { + tIPv4 v4; + tIPv6 v6; + } Addr; +}; + struct sUDPPacket { struct sUDPPacket *Next; + tUDPEndpoint Remote; size_t Length; Uint8 Data[]; }; @@ -33,15 +45,15 @@ struct sUDPChannel struct sUDPChannel *Next; tInterface *Interface; Uint16 LocalPort; - union { - tIPv4 v4; - tIPv6 v6; - } RemoteAddr; - Uint16 RemotePort; + + tUDPEndpoint Remote; // Only accept packets form this address/port pair + int RemoteMask; // Mask on the address + tVFS_Node Node; - tSpinlock lQueue; + tShortSpinlock lQueue; tUDPPacket * volatile Queue; tUDPPacket *QueueEnd; }; #endif +