From cf475d661f8a6ca7b6fb22204d7ea983fdcf7f07 Mon Sep 17 00:00:00 2001 From: des Date: Wed, 27 Mar 2019 15:17:29 +0000 Subject: [PATCH] Add workaround for a QoS-related bug in VMWare Workstation. Submitted by: yuripv Differential Revision: https://reviews.freebsd.org/D18636 --- crypto/openssh/readconf.c | 22 ++++++++++++++++++++++ secure/usr.bin/ssh/Makefile | 3 +++ 2 files changed, 25 insertions(+) diff --git a/crypto/openssh/readconf.c b/crypto/openssh/readconf.c index f97a6ac72a9..9ed6902a0f4 100644 --- a/crypto/openssh/readconf.c +++ b/crypto/openssh/readconf.c @@ -16,6 +16,9 @@ __RCSID("$FreeBSD$"); #include +#ifdef VMWARE_GUEST_WORKAROUND +#include +#endif #include #include #include @@ -1954,6 +1957,15 @@ fill_default_options(Options * options) { char *all_cipher, *all_mac, *all_kex, *all_key; int r; +#ifdef VMWARE_GUEST_WORKAROUND + char scval[7]; /* "vmware\0" */ + size_t scsiz = sizeof(scval); + int vmwguest = 0; + + if (sysctlbyname("kern.vm_guest", scval, &scsiz, NULL, 0) == 0 && + strcmp(scval, "vmware") == 0) + vmwguest = 1; +#endif if (options->forward_agent == -1) options->forward_agent = 0; @@ -2088,8 +2100,18 @@ fill_default_options(Options * options) if (options->visual_host_key == -1) options->visual_host_key = 0; if (options->ip_qos_interactive == -1) +#ifdef VMWARE_GUEST_WORKAROUND + if (vmwguest) + options->ip_qos_interactive = IPTOS_LOWDELAY; + else +#endif options->ip_qos_interactive = IPTOS_DSCP_AF21; if (options->ip_qos_bulk == -1) +#ifdef VMWARE_GUEST_WORKAROUND + if (vmwguest) + options->ip_qos_bulk = IPTOS_THROUGHPUT; + else +#endif options->ip_qos_bulk = IPTOS_DSCP_CS1; if (options->request_tty == -1) options->request_tty = REQUEST_TTY_AUTO; diff --git a/secure/usr.bin/ssh/Makefile b/secure/usr.bin/ssh/Makefile index 614cc7627fc..023fa4a55be 100644 --- a/secure/usr.bin/ssh/Makefile +++ b/secure/usr.bin/ssh/Makefile @@ -37,6 +37,9 @@ LIBADD+= crypto CFLAGS+= -DXAUTH_PATH=\"${LOCALBASE}/bin/xauth\" .endif +# Workaround VMware Workstation NAT bug +CFLAGS+=-DVMWARE_GUEST_WORKAROUND + .include .PATH: ${SSHDIR} -- 2.45.0