cron2 has submitted this change. ( http://gerrit.openvpn.net/c/openvpn/+/687?usp=email )
Change subject: Haiku: Introduce basic platform / tun support ...................................................................... Haiku: Introduce basic platform / tun support * Special thanks to Sean Brady's hard work in GSoC 2023 towards creating a TUN/TAP driver for Haiku! * More kudos to Augustin Cavalier for making it functional :-) Signed-off-by: Alexander von Gluck <a...@terarocket.io> Acked-by: Gert Doering <g...@greenie.muc.de> Change-Id: I9a278374f492a538f0c174ced1746c3b1f82b8c9 Message-Id: <20241128101538.12810-1-g...@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg29947.html Signed-off-by: Gert Doering <g...@greenie.muc.de> --- M INSTALL M configure.ac M src/openvpn/tun.c 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/INSTALL b/INSTALL index 6007338..9739272 100644 --- a/INSTALL +++ b/INSTALL @@ -263,6 +263,16 @@ http://www.whiteboard.ne.jp/~admin2/tuntap/ +* Haiku: + + Haiku can't yet dynamically create TUN/TAP devices, so you need to manually + create one before running openvpn: + + # ifconfig tun/0 up + + A standard reference the dev as "tun" in your config is all that's needed + to use the tunnel device. + * Windows OpenVPN on Windows needs a TUN/TAP kernel driver to work. OpenVPN installers diff --git a/configure.ac b/configure.ac index 0876a6a..7f6e43d 100644 --- a/configure.ac +++ b/configure.ac @@ -368,6 +368,11 @@ have_tap_header="yes" ac_cv_header_net_if_h="no" # exists, but breaks things ;; + *-*-haiku*) + AC_DEFINE([TARGET_HAIKU], [1], [Are we running Haiku?]) + AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["H"], [Target prefix]) + LIBS="${LIBS} -lnetwork" + ;; *) AC_DEFINE_UNQUOTED([TARGET_PREFIX], ["X"], [Target prefix]) have_tap_header="yes" diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c index 85fe01a..29d823d 100644 --- a/src/openvpn/tun.c +++ b/src/openvpn/tun.c @@ -1631,6 +1631,13 @@ { windows_set_mtu(tt->adapter_index, AF_INET, tun_mtu); } +#elif defined(TARGET_HAIKU) + /* example: ifconfig tun/0 inet 1.1.1.1 255.255.255.0 mtu 1450 up */ + argv_printf(&argv, "%s %s inet %s %s mtu %d up", IFCONFIG_PATH, + ifname, ifconfig_local, ifconfig_remote_netmask, tun_mtu); + + argv_msg(M_INFO, &argv); + openvpn_execve_check(&argv, es, S_FATAL, "Haiku ifconfig failed"); #else /* if defined(TARGET_LINUX) */ msg(M_FATAL, "Sorry, but I don't know how to do 'ifconfig' commands on this operating system. You should ifconfig your TUN/TAP device manually or use an --up script."); #endif /* if defined(TARGET_LINUX) */ @@ -1909,10 +1916,15 @@ { for (int i = 0; i < 256; ++i) { + /* some platforms have a dedicated directory per driver */ + char *sep = ""; +#if defined(TARGET_HAIKU) + sep = "/"; +#endif snprintf(tunname, sizeof(tunname), - "/dev/%s%d", dev, i); + "/dev/%s%s%d", dev, sep, i); snprintf(dynamic_name, sizeof(dynamic_name), - "%s%d", dev, i); + "%s%s%d", dev, sep, i); if ((tt->fd = open(tunname, O_RDWR)) > 0) { dynamic_opened = true; -- To view, visit http://gerrit.openvpn.net/c/openvpn/+/687?usp=email To unsubscribe, or for help writing mail filters, visit http://gerrit.openvpn.net/settings Gerrit-Project: openvpn Gerrit-Branch: master Gerrit-Change-Id: I9a278374f492a538f0c174ced1746c3b1f82b8c9 Gerrit-Change-Number: 687 Gerrit-PatchSet: 7 Gerrit-Owner: kallisti5 <a...@terarocket.io> Gerrit-Reviewer: cron2 <g...@greenie.muc.de> Gerrit-Reviewer: flichtenheld <fr...@lichtenheld.com> Gerrit-Reviewer: plaisthos <arne-open...@rfc2549.org> Gerrit-CC: openvpn-devel <openvpn-devel@lists.sourceforge.net> Gerrit-MessageType: merged
_______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel