1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2025-07-07 00:04:57 +03:00

OpenVPN: use new protocol interface

This commit is contained in:
Davide Beatrici
2019-07-26 07:58:22 +02:00
parent 7d58e6bf60
commit 9f19efb7af
4 changed files with 246 additions and 322 deletions

View File

@ -18792,6 +18792,8 @@ LABEL_FATAL_ERROR:
p->SrcPort = p->DestPort = MAKE_SPECIAL_PORT(50);
}
p->Type = u->PacketType;
Add(recv_list, p);
}
@ -19084,6 +19086,11 @@ void UdpListenerSendPackets(UDPLISTENER *u, LIST *packet_list)
// Creating a UDP listener
UDPLISTENER *NewUdpListener(UDPLISTENER_RECV_PROC *recv_proc, void *param, IP *listen_ip)
{
return NewUdpListenerEx(recv_proc, param, listen_ip, INFINITE);
}
UDPLISTENER *NewUdpListenerEx(UDPLISTENER_RECV_PROC *recv_proc, void *param, IP *listen_ip, UINT packet_type)
{
UDPLISTENER *u;
// Validate arguments
@ -19095,6 +19102,7 @@ UDPLISTENER *NewUdpListener(UDPLISTENER_RECV_PROC *recv_proc, void *param, IP *l
u = ZeroMalloc(sizeof(UDPLISTENER));
u->Param = param;
u->PacketType = packet_type;
u->PortList = NewList(NULL);
u->Event = NewSockEvent();

View File

@ -506,6 +506,7 @@ struct UDPLISTENER
UINT64 LastCheckTick; // Time which the socket list was checked last
UDPLISTENER_RECV_PROC *RecvProc; // Receive procedure
LIST *SendPacketList; // Transmission packet list
UINT PacketType; // The type to set when creating an UDPPACKET
void *Param; // Parameters
INTERRUPT_MANAGER *Interrupts; // Interrupt manager
bool HostIPAddressListChanged; // IP address list of the host has changed
@ -1415,6 +1416,7 @@ int CmpIpAddressList(void *p1, void *p2);
UINT64 GetHostIPAddressListHash();
UDPLISTENER *NewUdpListener(UDPLISTENER_RECV_PROC *recv_proc, void *param, IP *listen_ip);
UDPLISTENER *NewUdpListenerEx(UDPLISTENER_RECV_PROC *recv_proc, void *param, IP *listen_ip, UINT packet_type);
void UdpListenerThread(THREAD *thread, void *param);
void FreeUdpListener(UDPLISTENER *u);
void AddPortToUdpListener(UDPLISTENER *u, UINT port);