IPStack - Removed client/server structure from UDP (now just one file)
[tpg/acess2.git] / Modules / IPStack / udp.h
index be2ff64..3914789 100644 (file)
@@ -9,6 +9,9 @@
 #include "ipv4.h"
 
 typedef struct sUDPHeader      tUDPHeader;
+typedef struct sUDPEndpoint    tUDPEndpoint;
+typedef struct sUDPPacket      tUDPPacket;
+typedef struct sUDPChannel     tUDPChannel;
 
 struct sUDPHeader
 {
@@ -19,4 +22,38 @@ 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[];
+};
+
+struct sUDPChannel
+{
+       struct sUDPChannel      *Next;
+       tInterface      *Interface;
+       Uint16  LocalPort;
+
+       tUDPEndpoint    Remote; // Only accept packets form this address/port pair
+        int    RemoteMask;     // Mask on the address
+       
+       tVFS_Node       Node;
+       tShortSpinlock  lQueue;
+       tUDPPacket      * volatile Queue;
+       tUDPPacket      *QueueEnd;
+};
+
 #endif
+

UCC git Repository :: git.ucc.asn.au