aboutsummaryrefslogtreecommitdiffstats
path: root/api/session.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-11-02 16:04:33 +0100
committerSimon Rozman <simon@rozman.si>2020-11-02 16:38:56 +0100
commitc20e1683c21a1e281479f3caca1754b39820cd81 (patch)
tree742b13d4dd864676704559e05637f9487f260799 /api/session.c
parentapi: statically compile devpkey constants (diff)
downloadwintun-c20e1683c21a1e281479f3caca1754b39820cd81.tar.xz
wintun-c20e1683c21a1e281479f3caca1754b39820cd81.zip
api: separate read-wait handle into other function
Makes the API a bit more clear. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'api/session.c')
-rw-r--r--api/session.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/api/session.c b/api/session.c
index d350e57..9c3d682 100644
--- a/api/session.c
+++ b/api/session.c
@@ -74,8 +74,7 @@ WINTUN_STATUS WINAPI
WintunStartSession(
_In_ const WINTUN_ADAPTER *Adapter,
_In_ DWORD Capacity,
- _Out_ TUN_SESSION **Session,
- _Out_ HANDLE *ReadWait)
+ _Out_ TUN_SESSION **Session)
{
TUN_SESSION *s = HeapAlloc(ModuleHeap, HEAP_ZERO_MEMORY, sizeof(TUN_SESSION));
if (!s)
@@ -137,7 +136,6 @@ WintunStartSession(
(void)InitializeCriticalSectionAndSpinCount(&s->Receive.Lock, LOCK_SPIN_COUNT);
(void)InitializeCriticalSectionAndSpinCount(&s->Send.Lock, LOCK_SPIN_COUNT);
*Session = s;
- *ReadWait = s->Descriptor.Send.TailMoved;
return ERROR_SUCCESS;
cleanupHandle:
CloseHandle(s->Handle);
@@ -167,6 +165,12 @@ WintunEndSession(_In_ TUN_SESSION *Session)
HeapFree(ModuleHeap, 0, Session);
}
+HANDLE WINAPI
+WintunGetReadWaitEvent(_In_ TUN_SESSION *Session)
+{
+ return Session->Descriptor.Send.TailMoved;
+}
+
WINTUN_STATUS WINAPI
WintunReceivePacket(_In_ TUN_SESSION *Session, _Out_bytecapcount_(*PacketSize) BYTE **Packet, _Out_ DWORD *PacketSize)
{