Index: head/crypto/openssh/readconf.c =================================================================== --- head/crypto/openssh/readconf.c +++ head/crypto/openssh/readconf.c @@ -16,6 +16,9 @@ __RCSID("$FreeBSD$"); #include +#ifdef VMWARE_GUEST_WORKAROUND +#include +#endif #include #include #include @@ -1954,7 +1957,16 @@ { 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 @@ 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; Index: head/secure/usr.bin/ssh/Makefile =================================================================== --- head/secure/usr.bin/ssh/Makefile +++ head/secure/usr.bin/ssh/Makefile @@ -37,6 +37,9 @@ CFLAGS+= -DXAUTH_PATH=\"${LOCALBASE}/bin/xauth\" .endif +# Workaround VMware Workstation NAT bug +CFLAGS+=-DVMWARE_GUEST_WORKAROUND + .include .PATH: ${SSHDIR}