]> git.ipfire.org Git - thirdparty/openvpn.git/commit
wintun: interactive service support
authorLev Stipakov <lev@openvpn.net>
Tue, 17 Dec 2019 12:50:41 +0000 (14:50 +0200)
committerGert Doering <gert@greenie.muc.de>
Tue, 17 Dec 2019 20:00:50 +0000 (21:00 +0100)
commitda2e66ca74688094a3dcbf8e2ce0a3bc54478a53
treeb0a51cb81756d9597ba5b57ae7666b195b1cab8b
parentd5fc4bd41616ee01816df873cb6b6567872a29e2
wintun: interactive service support

Wintun requires ring buffers registration to be
performed by privileged process. In order to use
openvpn with wintun by non-Administrator, we
need to use interactive service and shared memory
to register buffers.

Openvpn process creates memory mapping object and event
for send and receive ring and passes handles to interactive
service. There handles are duplicated and memory mapped
object is mapped into the address space of service process.
Then address of mapped view and event handle is passed to
wintun kernel driver.

After interactive service preformed registration,
openvpn process maps memory mapped object into
own address space. Thus mapped views in openvpn
and service process represent the same memory region.

Signed-off-by: Lev Stipakov <lev@openvpn.net>
Acked-by: Simon Rozman <simon@rozman.si>
Message-Id: <20191217125041.207-1-lstipakov@gmail.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19244.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
14 files changed:
include/openvpn-msg.h
src/openvpn/Makefile.am
src/openvpn/openvpn.vcxproj
src/openvpn/openvpn.vcxproj.filters
src/openvpn/ring_buffer.c [new file with mode: 0644]
src/openvpn/ring_buffer.h [new file with mode: 0644]
src/openvpn/tun.c
src/openvpn/tun.h
src/openvpn/win32.c
src/openvpn/win32.h
src/openvpnserv/Makefile.am
src/openvpnserv/interactive.c
src/openvpnserv/openvpnserv.vcxproj
src/openvpnserv/openvpnserv.vcxproj.filters