Simon Rozman
f657e6fd27
api: use GetLastError() to report failures like standard Win32
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-11-04 13:21:42 +01:00
Jason A. Donenfeld
2af7fbd64a
api: use 'open' name since caller must close handle
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-03 12:31:49 +01:00
Jason A. Donenfeld
9a937c7a49
example: rewrite and replace api's debug rundll32 functionality
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-02 23:42:43 +01:00
Jason A. Donenfeld
c20e1683c2
api: separate read-wait handle into other function
...
Makes the API a bit more clear.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-11-02 16:38:56 +01:00
Simon Rozman
47a241e5d8
api: simplify and unify error messages
...
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-11-02 12:19:36 +01:00
Jason A. Donenfeld
6c40f24498
api: add debugging rundll32 entry point
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-31 19:11:56 +01:00
Jason A. Donenfeld
937eb44727
api: get rid of pch and make headers sane
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-31 19:11:51 +01:00
Simon Rozman
efbc70635b
api expose Send.TailMoved event to clients
...
This allows clients to use it in WaitForMultipleObjects().
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-10-31 19:11:50 +01:00
Jason A. Donenfeld
f947205cee
api: use proper iso atomic semantics
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-31 19:11:50 +01:00
Simon Rozman
1b3af95be3
api: selectively use temporary variable to prepare output
...
Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-10-31 19:11:49 +01:00
Jason A. Donenfeld
8c935ce151
api: remove security attributes debug trap door
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-31 10:41:49 +01:00
Jason A. Donenfeld
7964694e1e
api: elevate only when needed for system operations
...
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-10-31 10:41:49 +01:00
Simon Rozman
e11897e343
api: depretiate WintunIsPacketAvailable()
...
Spinning on the WintunReceivePacket() while it returns
ERROR_NO_MORE_ITEMS achieves the same.
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-10-31 10:41:46 +01:00
Simon Rozman
2439b05212
api: upgrade ring management
...
- Return pointer to ring buffer with packet data allowing clients to
read/write directly. This eliminates one memcpy().
- Make sending/receiving packets thread-safe.
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-10-31 10:15:15 +01:00
Simon Rozman
bf4eabb4ca
api: switch to private heap
...
We must not use the process heap, as it is changeable. Client may change
it causing our HeapFree() to use wrong heap.
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-10-30 16:51:01 +01:00
Simon Rozman
4b8f879fd6
api: add ring management
...
Rather than every client reinvent the art of using the Wintun and its
ring buffers, we offer helper structs and functions to unify and
simplify Wintun usage.
Signed-off-by: Simon Rozman <simon@rozman.si>
2020-10-30 16:51:01 +01:00