Author: emaste
Date: Sun Mar  8 19:49:17 2020
New Revision: 358773
URL: https://svnweb.freebsd.org/changeset/base/358773

Log:
  MFC r345579 by des: Add workaround for a QoS-related bug in VMWare Workstation
  
  Submitted by: yuripv

Modified:
  stable/12/crypto/openssh/readconf.c
  stable/12/secure/usr.bin/ssh/Makefile
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/crypto/openssh/readconf.c
==============================================================================
--- stable/12/crypto/openssh/readconf.c Sun Mar  8 19:18:33 2020        
(r358772)
+++ stable/12/crypto/openssh/readconf.c Sun Mar  8 19:49:17 2020        
(r358773)
@@ -16,6 +16,9 @@
 __RCSID("$FreeBSD$");
 
 #include <sys/types.h>
+#ifdef VMWARE_GUEST_WORKAROUND
+#include <sys/sysctl.h>
+#endif
 #include <sys/stat.h>
 #include <sys/socket.h>
 #include <sys/wait.h>
@@ -1954,7 +1957,16 @@ 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;
        if (options->forward_x11 == -1)
@@ -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;

Modified: stable/12/secure/usr.bin/ssh/Makefile
==============================================================================
--- stable/12/secure/usr.bin/ssh/Makefile       Sun Mar  8 19:18:33 2020        
(r358772)
+++ stable/12/secure/usr.bin/ssh/Makefile       Sun Mar  8 19:49:17 2020        
(r358773)
@@ -37,6 +37,9 @@ LIBADD+=      crypto
 CFLAGS+= -DXAUTH_PATH=\"${LOCALBASE}/bin/xauth\"
 .endif
 
+# Workaround VMware Workstation NAT bug
+CFLAGS+=-DVMWARE_GUEST_WORKAROUND
+
 .include <bsd.prog.mk>
 
 .PATH: ${SSHDIR}
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to