Merge ~paelzer/ubuntu/+source/open-vm-tools:lp-1813944-backport-10.3.5-bionic into ubuntu/+source/open-vm-tools:ubuntu/bionic-devel

Proposed by Christian Ehrhardt 
Status: Merged
Approved by: Christian Ehrhardt 
Approved revision: 516e4d2681fb0eba010e6141b03cb90d8537b404
Merge reported by: Christian Ehrhardt 
Merged at revision: 516e4d2681fb0eba010e6141b03cb90d8537b404
Proposed branch: ~paelzer/ubuntu/+source/open-vm-tools:lp-1813944-backport-10.3.5-bionic
Merge into: ubuntu/+source/open-vm-tools:ubuntu/bionic-devel
Diff against target: 8267 lines (+4679/-322) (has conflicts)
53 files modified
ReleaseNotes.md (+105/-5)
debian/changelog (+97/-0)
debian/control (+3/-3)
debian/desktop.conf (+2/-0)
debian/open-vm-tools.postinst (+1/-1)
debian/open-vm-tools.service (+4/-0)
debian/open-vm-tools.vgauth.service (+1/-0)
debian/patches/debian/enable_vmhgfs-fuse_by_default (+3/-0)
debian/patches/series (+4/-1)
debian/patches/stable-10.3.5-quiesced-snapshot (+631/-0)
debian/rules (+4/-0)
dev/null (+0/-181)
open-vm-tools/ChangeLog (+2890/-0)
open-vm-tools/configure.ac (+7/-3)
open-vm-tools/lib/file/file.c (+14/-10)
open-vm-tools/lib/glibUtils/fileLogger.c (+17/-2)
open-vm-tools/lib/hgfsServer/hgfsServer.c (+2/-2)
open-vm-tools/lib/hgfsServer/hgfsServerLinux.c (+5/-5)
open-vm-tools/lib/include/buildNumber.h (+14/-0)
open-vm-tools/lib/include/conf.h (+26/-0)
open-vm-tools/lib/include/err.h (+18/-0)
open-vm-tools/lib/include/ioplGet.h (+2/-2)
open-vm-tools/lib/include/posix.h (+2/-8)
open-vm-tools/lib/include/rpcin.h (+10/-3)
open-vm-tools/lib/include/unicodeBase.h (+5/-0)
open-vm-tools/lib/include/vm_product.h (+3/-0)
open-vm-tools/lib/include/vm_product_versions.h (+12/-2)
open-vm-tools/lib/include/vm_tools_version.h (+13/-0)
open-vm-tools/lib/include/vmware/tools/guestrpc.h (+12/-1)
open-vm-tools/lib/misc/vthreadBase.c (+8/-1)
open-vm-tools/lib/nicInfo/nicInfoPosix.c (+18/-0)
open-vm-tools/lib/rpcChannel/rpcChannel.c (+126/-5)
open-vm-tools/lib/rpcIn/rpcin.c (+55/-11)
open-vm-tools/lib/sslDirect/sslDirect.c (+82/-15)
open-vm-tools/libDeployPkg/linuxDeployment.c (+43/-19)
open-vm-tools/libDeployPkg/linuxDeploymentUtilities.c (+2/-7)
open-vm-tools/libDeployPkg/mspackWrapper.c (+2/-1)
open-vm-tools/modules/freebsd/vmxnet/Makefile (+3/-0)
open-vm-tools/services/plugins/dndcp/pointer.cpp (+25/-3)
open-vm-tools/services/plugins/guestInfo/guestInfoServer.c (+60/-14)
open-vm-tools/services/plugins/guestInfo/perfMonLinux.c (+30/-0)
open-vm-tools/services/plugins/hgfsServer/hgfsPlugin.c (+10/-0)
open-vm-tools/services/plugins/vix/vixTools.c (+70/-4)
open-vm-tools/services/plugins/vmbackup/stateMachine.c (+3/-2)
open-vm-tools/services/plugins/vmbackup/syncDriverOps.c (+23/-0)
open-vm-tools/services/plugins/vmbackup/syncManifest.c (+40/-2)
open-vm-tools/services/plugins/vmbackup/syncManifest.h (+5/-1)
open-vm-tools/services/plugins/vmbackup/vmBackupInt.h (+3/-0)
open-vm-tools/services/vmtoolsd/mainLoop.c (+68/-1)
open-vm-tools/services/vmtoolsd/toolsCoreInt.h (+4/-1)
open-vm-tools/services/vmtoolsd/toolsRpc.c (+87/-1)
open-vm-tools/vgauth/lib/impersonate.c (+3/-3)
open-vm-tools/vmhgfs-fuse/cache.c (+2/-2)
Conflict in ReleaseNotes.md
Conflict in debian/changelog
Conflict in debian/patches/debian/enable_vmhgfs-fuse_by_default
Conflict in debian/patches/series
Conflict in open-vm-tools/ChangeLog
Conflict in open-vm-tools/configure.ac
Conflict in open-vm-tools/lib/include/buildNumber.h
Conflict in open-vm-tools/lib/include/err.h
Conflict in open-vm-tools/lib/include/unicodeBase.h
Conflict in open-vm-tools/lib/include/vm_product_versions.h
Conflict in open-vm-tools/lib/include/vm_tools_version.h
Conflict in open-vm-tools/lib/rpcChannel/rpcChannel.c
Conflict in open-vm-tools/libDeployPkg/linuxDeployment.c
Conflict in open-vm-tools/modules/freebsd/vmxnet/Makefile
Conflict in open-vm-tools/services/plugins/guestInfo/guestInfoServer.c
Conflict in open-vm-tools/services/plugins/guestInfo/perfMonLinux.c
Conflict in open-vm-tools/services/plugins/hgfsServer/hgfsPlugin.c
Reviewer Review Type Date Requested Status
Andreas Hasenack Approve
Canonical Server Pending
Canonical Server packageset reviewers Pending
Review via email: mp+362461@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

This looks like a vast merge due to the fact that this is actually an intentional MRE backport.
I filed the MP against bionic-devel to be correct, but while that is the content that is new to bionic it isn't really the content that is new to the Archive.

Instead for review please compare against pkg/import/2%10.3.5-4 which is the current pkg/ubuntu/disco-devel

PPA is available at [1] and testing will mostly be done by VMWare as usually.

[1]: https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/3617

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

+1

I verified that the existing fixes in the current cosmic package are applied here as well, either from debian, or from upstream directly, and the only change from the disco package is the changelog.

review: Approve
Revision history for this message
Andreas Hasenack (ahasenack) wrote :
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

For this bionic MP:

- the only difference to the cosmic MP is the changelog, so the same content is there. +1

review: Approve
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Pushed the rebase to 2:10.3.5-6 as discussed on the associated bugs.
This will close bug 1814832 along all others that the backport already intended to fix.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/ReleaseNotes.md b/ReleaseNotes.md
2index 72160df..dbf1a1b 100644
3--- a/ReleaseNotes.md
4+++ b/ReleaseNotes.md
5@@ -1,9 +1,18 @@
6+<<<<<<< ReleaseNotes.md
7 open-vm-tools 10.3.0 Release Notes
8 ==================================
9
10 **Updated on: 12 JUL 2018**
11
12 open-vm-tools | 12 JUL 2018 | Build 8931395
13+=======
14+open-vm-tools 10.3.5 Release Notes
15+=================================
16+
17+**Updated on: 01 Nov 2018**
18+
19+open-vm-tools | 01 NOV 2018 | Build 10430147
20+>>>>>>> ReleaseNotes.md
21
22 Check for additions and updates to these release notes.
23
24@@ -15,15 +24,21 @@ The release notes cover the following topics:
25 * [What's New](#whatsnew)
26 * [Before You Begin](#beforeyoubegin)
27 * [Internationalization](#i18n)
28-* [Compatibility Notes](#compatibility)
29+* [End of Feature Support Notice](#endoffeaturesupport)
30+* [Guest Operating System Customization Support](#guestop)
31+* [Interoperability Matrix](#interop)
32 * [Resolved Issues](#resolvedissues)
33 * [Known Issues](#knownissues)
34
35 What's New
36 ----------
37
38+<<<<<<< ReleaseNotes.md
39 * Starting with 10.3.0, open-vm-tools builds with xmlsec1 by default (instead of building with xml-security). To revert to the old behavior and build with xml-security, use the option
40 '--enable-xmlsecurity' for the ./configure command.
41+=======
42+* **Resolved Issues: **There are some issues that are resolved in this release of open-vm-tools which are documented in the [Resolved Issues](#resolvedissues) section of this release notes.
43+>>>>>>> ReleaseNotes.md
44
45 Before You Begin
46 ----------------
47@@ -39,7 +54,11 @@ General guidelines: While upgrading ESXi hosts to ESXi 5.5 Update 3b or ESXi 6.0
48 Internationalization
49 --------------------
50
51+<<<<<<< ReleaseNotes.md
52 open-vm-tools 10.3.0 is available in the following languages:
53+=======
54+open-vm-tools 10.3.5 is available in the following languages:
55+>>>>>>> ReleaseNotes.md
56
57 * English
58 * French
59@@ -51,19 +70,32 @@ open-vm-tools 10.3.0 is available in the following languages:
60 * Simplified Chinese
61 * Traditional Chinese
62
63-Compatibility Notes
64--------------------
65+End of Feature Support Notice
66+-----------------------------
67
68+<<<<<<< ReleaseNotes.md
69 * As of tools release 10.2.0, FreeBSD guests are supported only by open-vm-tools; support for the VM Tools binary package supplied directly by VMware has been discontinued for FreeBSD. Binary packages for open-vm-tools 10.1.0 and later are available from FreeBSD package repositories.
70+=======
71+* Support for Common Agent Framework (CAF) will be removed in the next major release of open-vm-tools.
72+* open-vm-tools 10.3.5 freezes feature support for tar tools and OSPs 
73+ The tar tools (linux.iso) and OSPs shipped with open-vm-tools 10.3.5 release will continue to be supported. However, releases after open-vm-tools 10.3.5 will only include critical and security fixes and no new feature support in these types of open-vm-tools (tar tools and OSP's). It is recommended that customers use open-vm-tools for those operating systems that support open-vm-tools. For more information on different types of open-vm-tools, see [https://blogs.vmware.com/vsphere/2016/02/understanding-the-three-types-of-vm-tools.html](https://blogs.vmware.com/vsphere/2016/02/understanding-the-three-types-of-vm-tools.html)
74+>>>>>>> ReleaseNotes.md
75
76-### Guest Operating System Customization Support
77+Guest Operating System Customization Support
78+--------------------------------------------
79
80 The [Guest OS Customization Support Matrix](http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf) provides details about the guest operating systems supported for customization.
81
82
83+Interoperability Matrix
84+-----------------------
85+
86+The [VMware Product Interoperability Matrix](http://partnerweb.vmware.com/comp_guide2/sim/interop_matrix.php) provides details about the compatibility of current and earlier versions of VMware Products. 
87+
88 Resolved Issues
89 ---------------
90
91+<<<<<<< ReleaseNotes.md
92 * **The open-vm-tools process might take a long time and consume 100% CPU of a core in a Linux OS with many IPv6 routes**
93
94 Prior to open-vm-tools 10.3.0, gathering network adapter information in a Linux guest OS with many IPv6 routes was a time-consuming process with 100% use of the CPU of a core. The exported data contained only a maximum of 100 routes. IPv4 routes took precedence over IPv6, leading to data loss in reporting IPv6 routes. If there were more than 100 IPv4 routes, IPv6 routes were not reported.
95@@ -75,9 +107,25 @@ Resolved Issues
96 max-ipv6-routes=0
97
98 Note: If they are not manually set, or an invalid value (over 100 or less than 0) is set, 'max-ipv4-routes' and 'max-ipv6-routes' are set to 100 by default. They can be set to 0 to disable the data collection.
99+=======
100+* **While running a quiesced snapshot of a Linux guest on the vSphere hosts earlier than version 6.7, open-vm-tools logs warning messages.**
101+
102+ open-vm-tools logs warning messages like the following:
103+
104+ \[<date> <time>\] \[ warning\] \[vmbackup\] Failed to send vmbackup event: vmbackup.eventSet req.genericManifest 0 /etc/vmware-tools/quiesce\_manifest.xml, result: Error processing event.
105+
106+ \[<date> <time>\] \[ warning\] \[vmbackup\] Error trying to send VMBACKUP\_EVENT\_GENERIC\_MANIFEST
107+
108+ The warning messages are logged by default or if vmsvc.level is set to warning or higher in the tools.conf file. Note that this is purely a logging issue and that quiesced snapshot still works even when these messages appear.
109+
110+ This issue is fixed in this release. The warning message has been reworded for clarity and is no longer logged on every quiesced snapshot, but instead only on the first quiesced snapshot after a power on or vMotion.
111
112- This issue is resolved in this release.
113+* **CreateTemporaryFileInGuest/CreateTemporaryDirectoryInGuest returns a file path that does not exist.**
114+>>>>>>> ReleaseNotes.md
115
116+ When guest authentication user name is set to <domain>\\<user> and the user's profile directory does not exist in the guest file system, Win32 LoadUserProfile() creates a temporary user profile directory "C:\\Users\\TEMP" when the guest operation starts. After the guest operation completes, Win32 UnloadUserProfile() deletes this directory and the temporary file in the said directory.
117+
118+<<<<<<< ReleaseNotes.md
119 * **Installation of the libvmtools package might fail the installation of VMware Tools**
120
121 When the package "libvmtools0" is installed in SUSE Linux 12 and open-vm-tools is not installed, the VMware Tools installer fails. This is done to prevent an incomplete installation. Users have to uninstall both open-vm-tools and libvmtools0 packages to install VMware Tools.
122@@ -88,20 +136,72 @@ Known Issues
123 * **Drag and Drop functionality fails to work in Ubuntu**
124
125 Drag and Drop functionality fails to work in Ubuntu 16.04.4 32-bit virtual machines installed using easy install. Also, failure of copy and paste functionality is observed in the same system.
126+=======
127+ This issue is fixed in this release. CreateTemporaryFileInGuest/CreateTemporaryDirectoryInGuest now returns "C:\\Windows\\TEMP\\xxxxxx".
128+
129+* **Excessive spikes of the Memory/Workload percentage metric, in a vRealize Operations cluster.**
130+
131+ Guest statistics "Guest | Page in rate per second" provided by open-vm-tools is not properly handling 32-bit unsigned integer overflow on 32-bit Linux guests.
132+
133+ This issue is fixed in this release.
134+
135+* **open-vm-tools Service running as vmusr crashes on Linux systems which are not running on the VMware platform.**
136+
137+ When a user logs in to the Linux desktop UI of a Linux OS that packages open-vm-tools and is not running on the VMware platform, "/usr/bin/vmtoolsd -n vmusr" process generates a coredump.
138+
139+ This issue is fixed in this release.
140+
141+
142+FreeBSD Drivers
143+---------------
144+
145+* **vmxnet and vmxnet3 drivers have been removed from open-vm-tools for FreeBSD**
146+
147+ The vmxnet (version 1) network driver is not supported by any currently
148+ supported VMware virtualization platform and has been removed for
149+ FreeBSD from the open-vm-tools source.
150+
151+ FreeBSD has their own vmxnet3 network driver based on community source
152+ and has never made use of the vmxnet3 source code or drivers from
153+ VMware. The unneeded FreeBSD vmxnet3 source has been removed from open-vm-tools.
154+
155+
156+Known Issues
157+------------
158+
159+* **Drag functionality fails to work in Ubuntu.**
160+
161+ Drag functionality fails to work in Ubuntu 16.04.4 32-bit virtual machine installed using easy install. Also, failure of copy and paste functionality is observed in the same system.
162+>>>>>>> ReleaseNotes.md
163
164 Workaround:
165
166 * Add the modprobe.blacklist=vmwgfx linux kernel boot option.
167 * To gain access to larger resolutions, remove svga.guestBackedPrimaryAware = "TRUE" option from the VMX file.
168
169+<<<<<<< ReleaseNotes.md
170 * **Shared Folders mount is unavailable on Linux VM**
171
172 If the **Shared Folders** feature is enabled on a Linux VM while it is powered off, shared folders mount is not available upon restart.
173
174 Workaround: If the VM is powered on, disable and enable the **Shared Folders** feature from the interface.
175+=======
176+* **Shared Folders mount is unavailable on Linux VM.**
177+
178+ If the **Shared Folders** feature is enabled on a Linux VM while it is powered off, shared folders mount is not available on restart.
179+
180+ Workaround:
181+
182+ If the VM is powered on, disable and enable the **Shared Folders** feature from the interface.
183+>>>>>>> ReleaseNotes.md
184
185 For resolving the issue permanently, edit **/etc/fstab** and add an entry to mount the Shared Folders automatically on boot.
186
187 For example, add the line:
188
189+<<<<<<< ReleaseNotes.md
190 vmhgfs-fuse /mnt/hgfs fuse defaults,allow_other 0 0
191+=======
192+ vmhgfs-fuse   /mnt/hgfs    fuse    defaults,allow\_other    0    0
193+
194+>>>>>>> ReleaseNotes.md
195diff --git a/debian/changelog b/debian/changelog
196index e1d083a..f5ea760 100644
197--- a/debian/changelog
198+++ b/debian/changelog
199@@ -1,3 +1,4 @@
200+<<<<<<< debian/changelog
201 open-vm-tools (2:10.3.0-0ubuntu1~18.04.3) bionic; urgency=medium
202
203 * d/p/lp-1793219-fix-stats-overflow.patch: fix potential overflow of 32 bit
204@@ -31,6 +32,102 @@ open-vm-tools (2:10.3.0-0ubuntu1~18.04.1) bionic; urgency=medium
205 added upstream)
206
207 -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 01 Aug 2018 08:16:10 +0200
208+=======
209+open-vm-tools (2:10.3.5-6~ubuntu0.18.04.1) bionic; urgency=medium
210+
211+ * Backport recent open-vm-tools (LP: #1813944)
212+ - also adresses handling of quiesced snapshot failures (LP: #1814832)
213+
214+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Tue, 12 Feb 2019 09:55:41 +0100
215+
216+open-vm-tools (2:10.3.5-6) unstable; urgency=medium
217+
218+ * [43ec618] Correct and/or improve handling of certain quiesced
219+ snapshot failures.
220+ Thanks to Oliver Kurth (Closes: #921470)
221+
222+ -- Bernd Zeimetz <bzed@debian.org> Mon, 11 Feb 2019 14:58:28 +0100
223+
224+open-vm-tools (2:10.3.5-5) unstable; urgency=medium
225+
226+ * [54cce3e] Start vmtoolsd after apparmor.service.
227+ Github issue #17
228+
229+ -- Bernd Zeimetz <bzed@debian.org> Thu, 31 Jan 2019 13:13:06 +0100
230+
231+open-vm-tools (2:10.3.5-4) unstable; urgency=medium
232+
233+ [ Alf Gaida ]
234+ * [e13792d] udevadm trigger should not fail (Closes: #917642)
235+
236+ -- Bernd Zeimetz <bzed@debian.org> Sat, 29 Dec 2018 23:00:37 +0100
237+
238+open-vm-tools (2:10.3.5-3) unstable; urgency=medium
239+
240+ [ Christian Ehrhardt ]
241+ * [d3d4703] Start vgauth before vmtoolsd.
242+ VGAuthService needs to be ready when vmtoolsd runs. Certain cases - e.g.
243+ Site Recovery Manager failover - will need vgauth to be up.
244+ Therefore add an After=vgauth.service dependency to open-vm-tools.service
245+ To have vgauth be able start early - and not pull cloud-init back late - it
246+ is also required to drop default dependencies which according to VMware is
247+ fine to do so.
248+ (LP: #1804287)
249+
250+ -- Bernd Zeimetz <bzed@debian.org> Fri, 14 Dec 2018 09:55:04 +0100
251+
252+open-vm-tools (2:10.3.5-2) unstable; urgency=medium
253+
254+ [ Raphaël Hertzog ]
255+ * [db2a364] Ensure vmwgfx module is loaded before start of vmtoolsd.
256+ This avoids a failure to start the resolutionKMS plugin and it's
257+ achieved through a drop-in snippet extending open-vm-tools.service
258+ adding an ExecStartPre directive loading the module prior to
259+ the start of the service. (Closes: #915031)
260+
261+ [ Christian Ehrhardt ]
262+ * [e6e0ab8] d/rules: fix dangling symlink of vmware-user.
263+ Back in 2:9.4.0-1280544-6 vmware-user* was moved to the
264+ open-vm-tools-desktop package and some follow on fixes moved bits that
265+ were forgotten like the man page.
266+ (LP: #1807441)
267+ There still is a symlink in /usr/bin/vmware-user that is forgotten in
268+ the base package and broken unless open-vm-tools-desktop is installed.
269+ Change d/rules to move the symlink as well.
270+ Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
271+ * [13d22e5] Breaks and Replaces for moving vmware-user.
272+ Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
273+ * [d56826a] Bump breaks and replaces to next version to be released.
274+ Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
275+
276+ [ Bernd Zeimetz ]
277+ * [e4697c7] Fix race condition between open-vm-tools and systemd-tmpfiles-setup.
278+ Thanks to Jean-Louis Dupond (Closes: #914910)
279+
280+ -- Bernd Zeimetz <bzed@debian.org> Tue, 11 Dec 2018 20:40:48 +0100
281+
282+open-vm-tools (2:10.3.5-1) unstable; urgency=medium
283+
284+ * [7061cb7] Update upstream source from tag 'upstream/10.3.5'
285+ Update to upstream version '10.3.5'
286+ with Debian dir 9315f58cab8ba1356c1e4aa77d714257dc0651f2
287+
288+ -- Bernd Zeimetz <bzed@debian.org> Fri, 09 Nov 2018 11:32:15 +0100
289+
290+open-vm-tools (2:10.3.0-1) unstable; urgency=medium
291+
292+ * [16acbc3] Remove PrivateTmp=yes.
293+ Thanks to Christian Ehrhardt (Closes: #905170)
294+ * [72aabb2] Add RequiresMountsFor=/tmp.
295+ Thanks to Christopher Odenbach (Closes: #900566)
296+ * [96bf0c5] Update upstream source from tag 'upstream/10.3.0'
297+ Update to upstream version '10.3.0'
298+ with Debian dir ace0137b2d17e039ddac188fdcd15f882119925a
299+ * [e5a9b82] Re-add .travis.yml
300+ * [83e043f] Refreshing patches
301+
302+ -- Bernd Zeimetz <bzed@debian.org> Tue, 07 Aug 2018 23:41:00 +0200
303+>>>>>>> debian/changelog
304
305 open-vm-tools (2:10.2.5-1) unstable; urgency=medium
306
307diff --git a/debian/control b/debian/control
308index 15b060b..97cbecc 100644
309--- a/debian/control
310+++ b/debian/control
311@@ -23,7 +23,7 @@ Architecture: amd64 i386
312 Depends: ${misc:Depends}, ${shlibs:Depends}, pciutils, iproute2
313 Recommends: ethtool, zerofree, fuse, lsb-release
314 Suggests: open-vm-tools-desktop, cloud-init
315-Breaks: open-vm-tools-desktop (<< 2:10.0.7-3227872-2~)
316+Breaks: open-vm-tools-desktop (<< 2:10.3.5-2~)
317 Replaces: open-vm-tools-desktop (<< 2:10.0.7-3227872-2~)
318 Description: Open VMware Tools for virtual machines hosted on VMware (CLI)
319 The Open Virtual Machine Tools (open-vm-tools) project is an open source
320@@ -38,8 +38,8 @@ Architecture: amd64 i386
321 Depends: ${misc:Depends}, ${shlibs:Depends},
322 open-vm-tools (= ${binary:Version}),
323 fuse
324-Breaks: open-vm-tools (<< 2:10.0.0~)
325-Replaces: open-vm-tools (<< 2:10.0.0~)
326+Breaks: open-vm-tools (<< 2:10.3.5-2~)
327+Replaces: open-vm-tools (<< 2:10.3.5-2~)
328 Recommends:
329 xauth, xserver-xorg-input-vmmouse,
330 xserver-xorg-video-vmware
331diff --git a/debian/desktop.conf b/debian/desktop.conf
332new file mode 100644
333index 0000000..6456fd7
334--- /dev/null
335+++ b/debian/desktop.conf
336@@ -0,0 +1,2 @@
337+[Service]
338+ExecStartPre=-/sbin/modprobe vmwgfx
339diff --git a/debian/open-vm-tools.postinst b/debian/open-vm-tools.postinst
340index 3f2db5e..f181ab2 100644
341--- a/debian/open-vm-tools.postinst
342+++ b/debian/open-vm-tools.postinst
343@@ -5,7 +5,7 @@ set -e
344 case "${1}" in
345 configure)
346 if which udevadm 1>/dev/null; then
347- udevadm trigger
348+ udevadm trigger || true
349 fi
350 ;;
351
352diff --git a/debian/open-vm-tools.service b/debian/open-vm-tools.service
353index a988f08..2aa29f8 100644
354--- a/debian/open-vm-tools.service
355+++ b/debian/open-vm-tools.service
356@@ -4,6 +4,10 @@ Documentation=http://open-vm-tools.sourceforge.net/about.php
357 ConditionVirtualization=vmware
358 DefaultDependencies=no
359 Before=cloud-init-local.service
360+After=vgauth.service
361+After=apparmor.service
362+RequiresMountsFor=/tmp
363+After=systemd-remount-fs.service systemd-tmpfiles-setup.service
364
365 [Service]
366 ExecStart=/usr/bin/vmtoolsd
367diff --git a/debian/open-vm-tools.vgauth.service b/debian/open-vm-tools.vgauth.service
368index 94f7c89..af538a6 100644
369--- a/debian/open-vm-tools.vgauth.service
370+++ b/debian/open-vm-tools.vgauth.service
371@@ -2,6 +2,7 @@
372 Description=Authentication service for virtual machines hosted on VMware
373 Documentation=http://github.com/vmware/open-vm-tools
374 ConditionVirtualization=vmware
375+DefaultDependencies=no
376 PartOf=open-vm-tools.service
377
378 [Service]
379diff --git a/debian/patches/debian/enable_vmhgfs-fuse_by_default b/debian/patches/debian/enable_vmhgfs-fuse_by_default
380index ab0c3fd..d5aef26 100644
381--- a/debian/patches/debian/enable_vmhgfs-fuse_by_default
382+++ b/debian/patches/debian/enable_vmhgfs-fuse_by_default
383@@ -1,3 +1,4 @@
384+<<<<<<< debian/patches/debian/enable_vmhgfs-fuse_by_default
385 --- a/open-vm-tools/vmhgfs-fuse/config.c
386 +++ b/open-vm-tools/vmhgfs-fuse/config.c
387 @@ -349,11 +349,13 @@ SysCompatCheck(char *prog_name) // IN
388@@ -14,3 +15,5 @@
389
390 if (!SysCompatIsRegisteredFuse()) {
391 /* Check if FUSE is installed but not loaded yet. */
392+=======
393+>>>>>>> debian/patches/debian/enable_vmhgfs-fuse_by_default
394diff --git a/debian/patches/series b/debian/patches/series
395index 12cba39..b00be19 100644
396--- a/debian/patches/series
397+++ b/debian/patches/series
398@@ -1,6 +1,9 @@
399 debian/pam-use-common-auth-account
400 debian/max_nic_count
401-debian/enable_vmhgfs-fuse_by_default
402 debian/scsi-udev-rule
403+<<<<<<< debian/patches/series
404 ubuntu/lp-1791220-Disable-hgfsServer-not-VMware.patch
405 lp-1793219-fix-stats-overflow.patch
406+=======
407+stable-10.3.5-quiesced-snapshot
408+>>>>>>> debian/patches/series
409diff --git a/debian/patches/stable-10.3.5-quiesced-snapshot b/debian/patches/stable-10.3.5-quiesced-snapshot
410new file mode 100644
411index 0000000..93d1670
412--- /dev/null
413+++ b/debian/patches/stable-10.3.5-quiesced-snapshot
414@@ -0,0 +1,631 @@
415+--- a/open-vm-tools/services/plugins/vmbackup/stateMachine.c
416++++ b/open-vm-tools/services/plugins/vmbackup/stateMachine.c
417+@@ -201,17 +201,19 @@ VmBackupPrivSendMsg(gchar *msg,
418+ * Sends a command to the VMX asking it to update VMDB about a new backup event.
419+ * This will restart the keep-alive timer.
420+ *
421++ * As the name implies, does not abort the quiesce operation on failure.
422++ *
423+ * @param[in] event The event to set.
424+ * @param[in] code Error code.
425+- * @param[in] dest Error description.
426++ * @param[in] desc Error description.
427+ *
428+ * @return TRUE on success.
429+ */
430+
431+ Bool
432+-VmBackup_SendEvent(const char *event,
433+- const uint32 code,
434+- const char *desc)
435++VmBackup_SendEventNoAbort(const char *event,
436++ const uint32 code,
437++ const char *desc)
438+ {
439+ Bool success;
440+ char *result = NULL;
441+@@ -224,6 +226,7 @@ VmBackup_SendEvent(const char *event,
442+ if (gBackupState->keepAlive != NULL) {
443+ g_source_destroy(gBackupState->keepAlive);
444+ g_source_unref(gBackupState->keepAlive);
445++ gBackupState->keepAlive = NULL;
446+ }
447+
448+ msg = g_strdup_printf(VMBACKUP_PROTOCOL_EVENT_SET" %s %u %s",
449+@@ -267,19 +270,52 @@ VmBackup_SendEvent(const char *event,
450+ &result, &resultLen);
451+ #endif
452+
453+- if (!success) {
454++ if (success) {
455++ ASSERT(gBackupState->keepAlive == NULL);
456++ gBackupState->keepAlive =
457++ g_timeout_source_new(VMBACKUP_KEEP_ALIVE_PERIOD / 2);
458++ VMTOOLSAPP_ATTACH_SOURCE(gBackupState->ctx,
459++ gBackupState->keepAlive,
460++ VmBackupKeepAliveCallback,
461++ NULL,
462++ NULL);
463++ } else {
464+ g_warning("Failed to send vmbackup event: %s, result: %s.\n",
465+ msg, result);
466+ }
467+ vm_free(result);
468+ g_free(msg);
469+
470+- gBackupState->keepAlive = g_timeout_source_new(VMBACKUP_KEEP_ALIVE_PERIOD / 2);
471+- VMTOOLSAPP_ATTACH_SOURCE(gBackupState->ctx,
472+- gBackupState->keepAlive,
473+- VmBackupKeepAliveCallback,
474+- NULL,
475+- NULL);
476++ return success;
477++}
478++
479++
480++/**
481++ * Sends a command to the VMX asking it to update VMDB about a new backup event.
482++ * This will restart the keep-alive timer.
483++ *
484++ * Aborts the quiesce operation on RPC failure.
485++ *
486++ * @param[in] event The event to set.
487++ * @param[in] code Error code.
488++ * @param[in] desc Error description.
489++ *
490++ * @return TRUE on success.
491++ */
492++
493++Bool
494++VmBackup_SendEvent(const char *event,
495++ const uint32 code,
496++ const char *desc)
497++{
498++ Bool success = VmBackup_SendEventNoAbort(event, code, desc);
499++
500++ if (!success && gBackupState->rpcState != VMBACKUP_RPC_STATE_IGNORE) {
501++ g_debug("Changing rpcState from %d to %d\n",
502++ gBackupState->rpcState, VMBACKUP_RPC_STATE_ERROR);
503++ gBackupState->rpcState = VMBACKUP_RPC_STATE_ERROR;
504++ }
505++
506+ return success;
507+ }
508+
509+@@ -440,6 +476,12 @@ VmBackupDoAbort(void)
510+ {
511+ g_debug("*** %s\n", __FUNCTION__);
512+ ASSERT(gBackupState != NULL);
513++
514++ /*
515++ * Once we abort the operation, we don't care about RPC state.
516++ */
517++ gBackupState->rpcState = VMBACKUP_RPC_STATE_IGNORE;
518++
519+ if (gBackupState->machineState != VMBACKUP_MSTATE_SCRIPT_ERROR &&
520+ gBackupState->machineState != VMBACKUP_MSTATE_SYNC_ERROR) {
521+ const char *eventMsg = "Quiesce aborted.";
522+@@ -453,12 +495,13 @@ VmBackupDoAbort(void)
523+ g_static_mutex_unlock(&gBackupState->opLock);
524+
525+ #ifdef __linux__
526+- /* Thaw the guest if already quiesced */
527++ /* If quiescing has been completed, then undo it. */
528+ if (gBackupState->machineState == VMBACKUP_MSTATE_SYNC_FREEZE) {
529+- g_debug("Guest already quiesced, thawing for abort\n");
530+- if (!gBackupState->provider->snapshotDone(gBackupState,
531++ g_debug("Aborting with file system already quiesced, undo quiescing "
532++ "operation.\n");
533++ if (!gBackupState->provider->undo(gBackupState,
534+ gBackupState->provider->clientData)) {
535+- g_debug("Thaw during abort failed\n");
536++ g_debug("Quiescing undo failed.\n");
537+ eventMsg = "Quiesce could not be aborted.";
538+ }
539+ }
540+@@ -622,6 +665,17 @@ VmBackupAsyncCallback(void *clientData)
541+ if (opPending) {
542+ goto exit;
543+ }
544++
545++ /*
546++ * VMX state might have changed when we were processing
547++ * currentOp. This is usually detected by failures in
548++ * sending backup event to the host.
549++ */
550++ if (gBackupState->rpcState == VMBACKUP_RPC_STATE_ERROR) {
551++ g_warning("Aborting backup operation due to RPC errors.");
552++ VmBackupDoAbort();
553++ goto exit;
554++ }
555+ }
556+
557+ switch (gBackupState->machineState) {
558+@@ -957,6 +1011,7 @@ VmBackupStartCommon(RpcInData *data,
559+ gBackupState->enableNullDriver = VMBACKUP_CONFIG_GET_BOOL(ctx->config,
560+ "enableNullDriver",
561+ TRUE);
562++ gBackupState->rpcState = VMBACKUP_RPC_STATE_NORMAL;
563+
564+ g_debug("Using quiesceApps = %d, quiesceFS = %d, allowHWProvider = %d,"
565+ " execScripts = %d, scriptArg = %s, timeout = %u,"
566+@@ -1333,7 +1388,7 @@ VmBackupDumpState(gpointer src,
567+
568+
569+ /**
570+- * Reset callback.
571++ * Reset callback. Currently does nothing.
572+ *
573+ * @param[in] src The source object. Unused.
574+ * @param[in] ctx Unused.
575+@@ -1345,7 +1400,7 @@ VmBackupReset(gpointer src,
576+ ToolsAppCtx *ctx,
577+ gpointer data)
578+ {
579+- VmBackup_SyncDriverReset();
580++
581+ }
582+
583+
584+--- a/open-vm-tools/services/plugins/vmbackup/syncDriverOps.c
585++++ b/open-vm-tools/services/plugins/vmbackup/syncDriverOps.c
586+@@ -35,16 +35,53 @@
587+ #include <process.h>
588+ #endif
589+
590++/*
591++ * Define an enumeration type VmBackupOpType and a corresponding array
592++ * VmBackupOpName whose entries provide the printable names of the
593++ * enumeration ids in VmBackupOpType.
594++ *
595++ * VmBackupOpType and VmBackupOpName are each defined as an invocation
596++ * of a macro VMBACKUP_OPLIST. VMBACKUP_OPLIST specifies a list of
597++ * enumeration ids using a macro VMBACKUP_OP that must be defined before
598++ * invoking VMBACKUP_OPLIST. VMBACKUP_OP takes a single argument, which
599++ * should be an enumeration id, and is defined to generate from the id
600++ * either the id itself or a string to be used as its printable name. The
601++ * result is that an invocation of VMBACKUP_OPLIST generates either the
602++ * list of enumeration ids or the list of their printable names.
603++ */
604++#define VMBACKUP_OPLIST \
605++ VMBACKUP_OP(OP_FREEZE), \
606++ VMBACKUP_OP(OP_THAW), \
607++ VMBACKUP_OP(OP_UNDO),
608++
609++#define VMBACKUP_OPID(id) id
610++#define VMBACKUP_OPNAME(id) #id
611++
612++#undef VMBACKUP_OP
613++#define VMBACKUP_OP(id) VMBACKUP_OPID(id)
614++
615++typedef enum {
616++ VMBACKUP_OPLIST
617++} VmBackupOpType;
618++
619++#undef VMBACKUP_OP
620++#define VMBACKUP_OP(id) VMBACKUP_OPNAME(id)
621++
622++static const char *VmBackupOpName[] = {
623++ VMBACKUP_OPLIST
624++};
625++
626++#undef VMBACKUP_OP
627++
628+ typedef struct VmBackupDriverOp {
629+ VmBackupOp callbacks;
630+ const char *volumes;
631+- Bool freeze;
632++ VmBackupOpType opType;
633+ Bool canceled;
634+ SyncDriverHandle *syncHandle;
635+ SyncManifest *manifest;
636+ } VmBackupDriverOp;
637+
638+-
639+ /*
640+ *-----------------------------------------------------------------------------
641+ *
642+@@ -97,7 +134,7 @@ VmBackupDriverOpQuery(VmBackupOp *_op) /
643+ VmBackupDriverOp *op = (VmBackupDriverOp *) _op;
644+ VmBackupOpStatus ret;
645+
646+- if (op->freeze) {
647++ if (op->opType == OP_FREEZE) {
648+ SyncDriverStatus st = SyncDriver_QueryStatus(*op->syncHandle, 0);
649+
650+ g_debug("SyncDriver status: %d\n", st);
651+@@ -208,7 +245,7 @@ VmBackupDriverOpCancel(VmBackupOp *_op)
652+
653+ static VmBackupDriverOp *
654+ VmBackupNewDriverOp(VmBackupState *state, // IN
655+- Bool freeze, // IN
656++ VmBackupOpType opType, // IN
657+ SyncDriverHandle *handle, // IN
658+ const char *volumes, // IN
659+ Bool useNullDriverPrefs) // IN
660+@@ -216,8 +253,9 @@ VmBackupNewDriverOp(VmBackupState *state
661+ Bool success;
662+ VmBackupDriverOp *op = NULL;
663+
664+- g_return_val_if_fail((handle == NULL || *handle == SYNCDRIVER_INVALID_HANDLE) ||
665+- !freeze,
666++ g_return_val_if_fail((handle == NULL ||
667++ *handle == SYNCDRIVER_INVALID_HANDLE) ||
668++ opType != OP_FREEZE,
669+ NULL);
670+
671+ op = Util_SafeMalloc(sizeof *op);
672+@@ -226,24 +264,32 @@ VmBackupNewDriverOp(VmBackupState *state
673+ op->callbacks.queryFn = VmBackupDriverOpQuery;
674+ op->callbacks.cancelFn = VmBackupDriverOpCancel;
675+ op->callbacks.releaseFn = VmBackupDriverOpRelease;
676+- op->freeze = freeze;
677++ op->opType = opType;
678+ op->volumes = volumes;
679+
680+ op->syncHandle = g_new0(SyncDriverHandle, 1);
681+ *op->syncHandle = (handle != NULL) ? *handle : SYNCDRIVER_INVALID_HANDLE;
682+
683+- if (freeze) {
684+- success = SyncDriver_Freeze(op->volumes,
685+- useNullDriverPrefs ?
686+- state->enableNullDriver : FALSE,
687+- op->syncHandle,
688+- state->excludedFileSystems);
689+- } else {
690+- op->manifest = SyncNewManifest(state, *op->syncHandle);
691+- success = VmBackupDriverThaw(op->syncHandle);
692++ switch (opType) {
693++ case OP_FREEZE:
694++ success = SyncDriver_Freeze(op->volumes,
695++ useNullDriverPrefs ?
696++ state->enableNullDriver : FALSE,
697++ op->syncHandle,
698++ state->excludedFileSystems);
699++ break;
700++ case OP_THAW:
701++ op->manifest = SyncNewManifest(state, *op->syncHandle);
702++ success = VmBackupDriverThaw(op->syncHandle);
703++ break;
704++ default:
705++ ASSERT(opType == OP_UNDO);
706++ success = VmBackupDriverThaw(op->syncHandle);
707++ break;
708+ }
709+ if (!success) {
710+- g_warning("Error %s filesystems.", freeze ? "freezing" : "thawing");
711++ g_warning("Error trying to perform %s on filesystems.",
712++ VmBackupOpName[opType]);
713+ g_free(op->syncHandle);
714+ SyncManifestRelease(op->manifest);
715+ free(op);
716+@@ -329,7 +375,7 @@ VmBackupSyncDriverStart(VmBackupState *s
717+ VmBackupDriverOp *op;
718+
719+ g_debug("*** %s\n", __FUNCTION__);
720+- op = VmBackupNewDriverOp(state, TRUE, NULL, state->volumes, TRUE);
721++ op = VmBackupNewDriverOp(state, OP_FREEZE, NULL, state->volumes, TRUE);
722+
723+ if (op != NULL) {
724+ state->clientData = op->syncHandle;
725+@@ -366,7 +412,7 @@ VmBackupSyncDriverOnlyStart(VmBackupStat
726+ VmBackupDriverOp *op;
727+
728+ g_debug("*** %s\n", __FUNCTION__);
729+- op = VmBackupNewDriverOp(state, TRUE, NULL, state->volumes, FALSE);
730++ op = VmBackupNewDriverOp(state, OP_FREEZE, NULL, state->volumes, FALSE);
731+
732+ if (op != NULL) {
733+ state->clientData = op->syncHandle;
734+@@ -404,7 +450,7 @@ VmBackupSyncDriverStart(ToolsAppCtx *ctx
735+ VmBackupState *state = (VmBackupState*) clientData;
736+
737+ g_debug("*** %s\n", __FUNCTION__);
738+- op = VmBackupNewDriverOp(state, TRUE, NULL, state->volumes, TRUE);
739++ op = VmBackupNewDriverOp(state, OP_FREEZE, NULL, state->volumes, TRUE);
740+
741+ if (op != NULL) {
742+ state->clientData = op->syncHandle;
743+@@ -442,7 +488,7 @@ VmBackupSyncDriverOnlyStart(ToolsAppCtx
744+ VmBackupState *state = (VmBackupState*) clientData;
745+
746+ g_debug("*** %s\n", __FUNCTION__);
747+- op = VmBackupNewDriverOp(state, TRUE, NULL, state->volumes, FALSE);
748++ op = VmBackupNewDriverOp(state, OP_FREEZE, NULL, state->volumes, FALSE);
749+
750+ if (op != NULL) {
751+ state->clientData = op->syncHandle;
752+@@ -480,7 +526,7 @@ VmBackupSyncDriverSnapshotDone(VmBackupS
753+
754+ g_debug("*** %s\n", __FUNCTION__);
755+
756+- op = VmBackupNewDriverOp(state, FALSE, state->clientData, NULL, TRUE);
757++ op = VmBackupNewDriverOp(state, OP_THAW, state->clientData, NULL, TRUE);
758+ g_free(state->clientData);
759+ state->clientData = NULL;
760+
761+@@ -513,7 +559,40 @@ VmBackupSyncDriverOnlySnapshotDone(VmBac
762+
763+ g_debug("*** %s\n", __FUNCTION__);
764+
765+- op = VmBackupNewDriverOp(state, FALSE, state->clientData, NULL, FALSE);
766++ op = VmBackupNewDriverOp(state, OP_THAW, state->clientData, NULL, FALSE);
767++ g_free(state->clientData);
768++ state->clientData = NULL;
769++
770++ return VmBackup_SetCurrentOp(state, (VmBackupOp *) op, NULL, __FUNCTION__);
771++}
772++
773++
774++#if defined(__linux__)
775++/*
776++ *-----------------------------------------------------------------------------
777++ *
778++ * VmBackupSyncDriverUndo --
779++ *
780++ * Undo a completed quiescing operation.
781++ *
782++ * Result
783++ * TRUE, unless an error occurs.
784++ *
785++ * Side effects:
786++ * None.
787++ *
788++ *-----------------------------------------------------------------------------
789++ */
790++
791++static Bool
792++VmBackupSyncDriverUndo(VmBackupState *state,
793++ void *clientData)
794++{
795++ VmBackupDriverOp *op;
796++
797++ g_debug("*** %s\n", __FUNCTION__);
798++
799++ op = VmBackupNewDriverOp(state, OP_UNDO, state->clientData, NULL, TRUE);
800+ g_free(state->clientData);
801+ state->clientData = NULL;
802+
803+@@ -524,6 +603,39 @@ VmBackupSyncDriverOnlySnapshotDone(VmBac
804+ /*
805+ *-----------------------------------------------------------------------------
806+ *
807++ * VmBackupSyncDriverOnlyUndo --
808++ *
809++ * Undo a completed quiescing operation.
810++ *
811++ * Result
812++ * TRUE, unless an error occurs.
813++ *
814++ * Side effects:
815++ * None.
816++ *
817++ *-----------------------------------------------------------------------------
818++ */
819++
820++static Bool
821++VmBackupSyncDriverOnlyUndo(VmBackupState *state,
822++ void *clientData)
823++{
824++ VmBackupDriverOp *op;
825++
826++ g_debug("*** %s\n", __FUNCTION__);
827++
828++ op = VmBackupNewDriverOp(state, OP_UNDO, state->clientData, NULL, FALSE);
829++ g_free(state->clientData);
830++ state->clientData = NULL;
831++
832++ return VmBackup_SetCurrentOp(state, (VmBackupOp *) op, NULL, __FUNCTION__);
833++}
834++#endif
835++
836++
837++/*
838++ *-----------------------------------------------------------------------------
839++ *
840+ * VmBackupSyncDriverRelease --
841+ *
842+ * Frees the given pointer.
843+@@ -579,10 +691,17 @@ VmBackup_NewSyncDriverProviderInternal(B
844+ if (useNullDriverPrefs) {
845+ provider->start = VmBackupSyncDriverStart;
846+ provider->snapshotDone = VmBackupSyncDriverSnapshotDone;
847++#if defined(__linux__)
848++ provider->undo = VmBackupSyncDriverUndo;
849++#endif
850+ } else {
851+ provider->start = VmBackupSyncDriverOnlyStart;
852+ provider->snapshotDone = VmBackupSyncDriverOnlySnapshotDone;
853++#if defined(__linux__)
854++ provider->undo = VmBackupSyncDriverOnlyUndo;
855++#endif
856+ }
857++
858+ provider->release = VmBackupSyncDriverRelease;
859+ provider->clientData = NULL;
860+
861+@@ -642,26 +761,3 @@ VmBackup_NewSyncDriverOnlyProvider(void)
862+ }
863+
864+ #endif
865+-
866+-
867+-/*
868+- *-----------------------------------------------------------------------------
869+- *
870+- * VmBackup_SyncDriverReset --
871+- *
872+- * Reset function
873+- *
874+- * Results:
875+- * None.
876+- *
877+- * Side effects:
878+- * Whatever are the side effects of what it calls.
879+- *
880+- *-----------------------------------------------------------------------------
881+- */
882+-
883+-void
884+-VmBackup_SyncDriverReset(void)
885+-{
886+- SyncManifestReset();
887+-}
888+--- a/open-vm-tools/services/plugins/vmbackup/syncManifest.c
889++++ b/open-vm-tools/services/plugins/vmbackup/syncManifest.c
890+@@ -1,5 +1,5 @@
891+ /*********************************************************
892+- * Copyright (C) 2017-2018 VMware, Inc. All rights reserved.
893++ * Copyright (C) 2017-2019 VMware, Inc. All rights reserved.
894+ *
895+ * This program is free software; you can redistribute it and/or modify it
896+ * under the terms of the GNU Lesser General Public License as published
897+@@ -27,6 +27,7 @@
898+ #include "syncDriver.h"
899+ #include "syncManifest.h"
900+ #include "vm_tools_version.h"
901++#include "vmware/tools/log.h"
902+
903+ #include <unistd.h>
904+ #include <stdio.h>
905+@@ -49,12 +50,6 @@ static const char syncManifestFmt[] = {
906+ */
907+ static const char syncManifestSwitch[] = "enableXmlManifest";
908+
909+-/*
910+- * If TRUE, indicates that VMTools should try to generate the backup
911+- * manifest and send it to VMX; if FALSE, it won't try to do so.
912+- */
913+-static Bool gSyncManifestTrySend = TRUE;
914+-
915+
916+ /*
917+ *-----------------------------------------------------------------------------
918+@@ -95,12 +90,6 @@ SyncNewManifest(VmBackupState *state,
919+ return NULL;
920+ }
921+
922+- if (!gSyncManifestTrySend) {
923+- g_debug("No backup manifest generated since previous"
924+- " attempt to send one to host failed.\n");
925+- return NULL;
926+- }
927+-
928+ manifest = g_new0(SyncManifest, 1);
929+ manifest->path = g_strdup_printf("%s/%s", state->configDir,
930+ syncManifestName);
931+@@ -173,37 +162,14 @@ SyncManifestSend(SyncManifest *manifest)
932+ return FALSE;
933+ }
934+
935+- if (!VmBackup_SendEvent(VMBACKUP_EVENT_GENERIC_MANIFEST,
936+- VMBACKUP_SUCCESS, manifest->path)) {
937+- g_warning("Host doesn't appear to support backup manifests "
938+- "for Linux guests.\n");
939+- gSyncManifestTrySend = FALSE;
940++ if (!VmBackup_SendEventNoAbort(VMBACKUP_EVENT_GENERIC_MANIFEST,
941++ VMBACKUP_SUCCESS, manifest->path)) {
942++ /* VmBackup_SendEventNoAbort logs the error */
943++ g_info("Non-fatal error occurred while sending %s, continuing "
944++ "with the operation", VMBACKUP_EVENT_GENERIC_MANIFEST);
945+ return FALSE;
946+ }
947+
948+ g_debug("Backup manifest was sent successfully.\n");
949+ return TRUE;
950+ }
951+-
952+-
953+-/*
954+- *-----------------------------------------------------------------------------
955+- *
956+- * SyncManifestReset --
957+- *
958+- * Reset SyncManifest global state
959+- *
960+- * Results:
961+- * None
962+- *
963+- * Side effects:
964+- * None
965+- *
966+- *-----------------------------------------------------------------------------
967+- */
968+-
969+-void
970+-SyncManifestReset(void)
971+-{
972+- gSyncManifestTrySend = TRUE;
973+-}
974+--- a/open-vm-tools/services/plugins/vmbackup/syncManifest.h
975++++ b/open-vm-tools/services/plugins/vmbackup/syncManifest.h
976+@@ -1,5 +1,5 @@
977+ /*********************************************************
978+- * Copyright (C) 2017-2018 VMware, Inc. All rights reserved.
979++ * Copyright (C) 2017-2019 VMware, Inc. All rights reserved.
980+ *
981+ * This program is free software; you can redistribute it and/or modify it
982+ * under the terms of the GNU Lesser General Public License as published
983+@@ -45,9 +45,6 @@ SyncManifestSend(SyncManifest *manifest)
984+ void
985+ SyncManifestRelease(SyncManifest *manifest);
986+
987+-void
988+-SyncManifestReset(void);
989+-
990+ #else /* !defined(__linux__) */
991+
992+ typedef void SyncManifest;
993+@@ -55,7 +52,6 @@ typedef void SyncManifest;
994+ #define SyncNewManifest(s, h) (NULL)
995+ #define SyncManifestSend(m) (TRUE)
996+ #define SyncManifestRelease(m) ASSERT(m == NULL)
997+-#define SyncManifestReset()
998+
999+ #endif /* defined(__linux__) */
1000+
1001+--- a/open-vm-tools/services/plugins/vmbackup/vmBackupInt.h
1002++++ b/open-vm-tools/services/plugins/vmbackup/vmBackupInt.h
1003+@@ -72,6 +72,12 @@ typedef enum {
1004+ VMBACKUP_MSTATE_SYNC_ERROR
1005+ } VmBackupMState;
1006+
1007++typedef enum {
1008++ VMBACKUP_RPC_STATE_NORMAL,
1009++ VMBACKUP_RPC_STATE_ERROR,
1010++ VMBACKUP_RPC_STATE_IGNORE
1011++} VmBackupRpcState;
1012++
1013+ /**
1014+ * This is a "base struct" for asynchronous operations monitored by the
1015+ * state machine. Each implementation should provide these three functions
1016+@@ -138,6 +144,7 @@ typedef struct VmBackupState {
1017+ Bool vssBootableSystemState;
1018+ Bool vssPartialFileSupport;
1019+ Bool vssUseDefault;
1020++ VmBackupRpcState rpcState;
1021+ } VmBackupState;
1022+
1023+ typedef Bool (*VmBackupCallback)(VmBackupState *);
1024+@@ -156,6 +163,7 @@ typedef struct VmBackupSyncProvider {
1025+ VmBackupProviderCallback start;
1026+ #else
1027+ ToolsCorePoolCb start;
1028++ VmBackupProviderCallback undo;
1029+ #endif
1030+ VmBackupProviderCallback snapshotDone;
1031+ void (*release)(struct VmBackupSyncProvider *);
1032+@@ -295,8 +303,11 @@ VmBackup_SendEvent(const char *event,
1033+ const uint32 code,
1034+ const char *desc);
1035+
1036+-void
1037+-VmBackup_SyncDriverReset(void);
1038++
1039++Bool
1040++VmBackup_SendEventNoAbort(const char *event,
1041++ const uint32 code,
1042++ const char *desc);
1043+
1044+ #endif /* _VMBACKUPINT_H_*/
1045+
1046diff --git a/debian/rules b/debian/rules
1047index 2789360..5062e63 100755
1048--- a/debian/rules
1049+++ b/debian/rules
1050@@ -62,10 +62,14 @@ override_dh_auto_install:
1051
1052 mkdir -p debian/open-vm-tools-desktop/usr/bin
1053 mv debian/open-vm-tools/usr/bin/vmware-user-suid-wrapper debian/open-vm-tools-desktop/usr/bin
1054+ mv debian/open-vm-tools/usr/bin/vmware-user debian/open-vm-tools-desktop/usr/bin
1055
1056 mkdir -p debian/open-vm-tools-desktop/etc/xdg/autostart
1057 mv debian/open-vm-tools/etc/xdg/autostart/vmware-user.desktop debian/open-vm-tools-desktop/etc/xdg/autostart
1058 rm -rf debian/open-vm-tools/etc/xdg
1059+
1060+ mkdir -p debian/open-vm-tools-desktop/lib/systemd/system/open-vm-tools.service.d
1061+ cp debian/desktop.conf debian/open-vm-tools-desktop/lib/systemd/system/open-vm-tools.service.d/
1062
1063 override_dh_builddeb:
1064 dh_builddeb -- -Zxz
1065diff --git a/open-vm-tools/ChangeLog b/open-vm-tools/ChangeLog
1066index 9fbd129..e7a4593 100644
1067--- a/open-vm-tools/ChangeLog
1068+++ b/open-vm-tools/ChangeLog
1069@@ -1,3 +1,4 @@
1070+<<<<<<< open-vm-tools/ChangeLog
1071 commit a30d7aaa4d10fbce4b7d262487fffaf1dc32d949
1072 Author: Oliver Kurth <okurth@vmware.com>
1073 Date: Fri Jul 6 14:31:55 2018 -0700
1074@@ -1461,6 +1462,2793 @@ Date: Tue Feb 6 16:32:40 2018 -0800
1075 commit 035765d487f8ab9b2222ad239b278e4725aa5a22
1076 Author: Oliver Kurth <okurth@vmware.com>
1077 Date: Tue Feb 6 16:32:39 2018 -0800
1078+=======
1079+commit 583fc02dbee4ba88a20c67a0f5e5a9b023b551ea
1080+Author: Oliver Kurth <okurth@vmware.com>
1081+Date: Tue Nov 6 17:14:40 2018 -0800
1082+
1083+ bump version and build number
1084+
1085+commit d51ec15038c43472e9bc48de7081b0954a122f97
1086+Author: Oliver Kurth <okurth@vmware.com>
1087+Date: Tue Nov 6 17:13:04 2018 -0800
1088+
1089+ sync deploypkg files
1090+
1091+commit b4b07f53c71a83beed8fdc11f2dfeeb43aa20fda
1092+Author: Oliver Kurth <okurth@vmware.com>
1093+Date: Fri Oct 5 13:55:27 2018 -0700
1094+
1095+ Use bitwise AND operation while fetching current IOPL.
1096+
1097+ Iopl_Get() was using logical AND operation which could result
1098+ in wrong IOPL value. We should be using bitwise AND instead.
1099+
1100+commit 87593b29e5c337141be65e4430fb95a4f1741afb
1101+Author: Oliver Kurth <okurth@vmware.com>
1102+Date: Fri Oct 5 13:55:27 2018 -0700
1103+
1104+ Optional override for short and long OS names sent from Tools
1105+
1106+ Added support for customers to override the returned long and short OS
1107+ names through the tools config file. If the setting is present, then names
1108+ gathered by hostinfo will be ignored. The user is responsible for setting
1109+ the appropriate names.
1110+
1111+ The override will be ignored if the short-name setting is not present in
1112+ tools.conf.
1113+
1114+ An empty string will be sent for the long OS name if only the short-name
1115+ setting is present.
1116+
1117+ Appropriate warning msg will be generated in both cases.
1118+
1119+ Example of the conf setting:
1120+
1121+ [guestosinfo]
1122+ short-name = centos6-64
1123+ long-name = some long name
1124+
1125+commit b08cd0da457263f80e84ca95348c2a97cb7e22a5
1126+Author: Oliver Kurth <okurth@vmware.com>
1127+Date: Mon Sep 17 16:41:19 2018 -0700
1128+
1129+ Hgfs Server Linux: fix the share permissions on a file rename or delete
1130+
1131+ Coverity found that the argumeents to obtain the share permissions
1132+ on a file rename were swapped. Even though they are tested together
1133+ in an if statement which is not an issue, it could be in the future.
1134+
1135+ Reverse arguments so the share read and write permissions are correct.
1136+
1137+commit bdde701699212ca7fb118f3a49a9bbc7fb06df68
1138+Author: Oliver Kurth <okurth@vmware.com>
1139+Date: Mon Sep 17 16:41:18 2018 -0700
1140+
1141+ Hgfs FUSE Client: fix missing pthread_mutex_unlock call
1142+
1143+ Fix missing pthread_mutex_unlock call in HgfsSetAttrCache when
1144+ updating the cached attributes on a file and a memory allocation
1145+ fails.
1146+
1147+commit 01376aca4d4bee5efed9b4b2597d141722a7feb5
1148+Author: Oliver Kurth <okurth@vmware.com>
1149+Date: Mon Sep 17 16:41:18 2018 -0700
1150+
1151+ Bump up the SYSIMAGE_VERSION for VMware Tools 10.3.5
1152+
1153+commit 7fc13e2b58dc91627d4ff78fd532b77898adf2d2
1154+Author: Oliver Kurth <okurth@vmware.com>
1155+Date: Mon Sep 17 16:41:18 2018 -0700
1156+
1157+ Update the copyright year for OVT bundled files modified since 10.3.2
1158+
1159+commit c7a186e204cdff46b5e02bcb5208ef8979eaf261
1160+Author: Oliver Kurth <okurth@vmware.com>
1161+Date: Mon Sep 17 16:41:18 2018 -0700
1162+
1163+ Handle Linux kernel /proc FS uint32 type stat overflow when calculating
1164+ tools rate stats.
1165+
1166+ On both 32-bit and 64-bit Linux, tools always parses Linux kernel /proc
1167+ FS stats as uint64 values. For rate stats, current - previous can handle
1168+ uint64 type stat overflow, but not uint32 type.
1169+
1170+commit 064d0a3458991f0c34a397664b6b5cd8cc00e5b3
1171+Author: Oliver Kurth <okurth@vmware.com>
1172+Date: Mon Sep 17 16:41:18 2018 -0700
1173+
1174+ nicinfo: skip loopback devices
1175+
1176+ When libdnet isn't used, loopback devices were reported. This change
1177+ skips these interfaces. Also skip interfaces that are down.
1178+
1179+ The interface was visible with vim-cmd, but not in the VC or
1180+ ESX UI. It did not contain any IP addresses.
1181+
1182+commit 8979f11f78ef7fdbb51afa298896e06b4d874e5b
1183+Author: Oliver Kurth <okurth@vmware.com>
1184+Date: Mon Sep 17 16:41:18 2018 -0700
1185+
1186+ Allow only a single instance of vmusr when multiple users are logged into a VM
1187+
1188+ When a vmusr process gets the "channel conflict" error while attempting
1189+ to open the toolbox-dnd channel, a channel reset is triggered. That
1190+ reset results in the channel being restarted and a subsequent conflict
1191+ and reset occurs - every second until the channel becomes available.
1192+
1193+ For *nix guests:
1194+ The fix is making use of the repetitive channel resets where the only
1195+ RpcIn message received is a "reset" to catch this channel "permanently"
1196+ unavailable state. If other RpcIn messages are received, a channel
1197+ is considered to be working and the cumulative error count is cleared..
1198+
1199+ lib/rpcin/rpcin.c:
1200+ - struct RpcIn: Added error status boolean and callback function to
1201+ notify the dependent layer that a channel error has been
1202+ resolved.
1203+ - RpcInLoop(): If a non "reset" message is received, clear any channel
1204+ error status. This will also notify the dependent layer
1205+ that the channel is functioning.
1206+ - RpcIn_start(): Added additional argument for new callback; NULL if
1207+ not needed.
1208+
1209+ lib/rpcChannel/rpcChannel.c:
1210+ - struct rpcChannelInt:
1211+ - Renamed "rpcErrorCount" to "rpcResetErrorCount" since it is actually
1212+ a count of the consecutive channel reset failures and not a count
1213+ of RpcChannel errors.
1214+ - Added counter "rpcFailureCount" for the cumulative channel errors.
1215+ - Added "rpcFailureCb" for optional callback to notify the app of a
1216+ "permanent" channel failure.
1217+ - New function RpcChannelClearError() for RpcIn to notify when the
1218+ channel is working; to clear the rpcFailureCount .
1219+ - RpcChannel_Setup() - added two arguments for (1) an optional function
1220+ to be called when there is a channel failure
1221+ and (2) a failure count threshold.
1222+ These optional values are stored in the
1223+ RpcChannel structure being created.
1224+ - RpcChannelError(): Added logic to notify the calling app if the error
1225+ threshold has been reached and notify the app if a
1226+ callback was provided. A zero threshold signifies
1227+ the single vmusr limit should not be enforced.
1228+ (fix disable switch).
1229+
1230+ services/vmtoolsd/mainLoop.c:
1231+ - New function ToolsCore_GetVmusrLimit() to retrieve the channel error
1232+ threshold default or over-ride from tools.conf.
1233+
1234+ services/vmtoolsd/toolsRpc.c:
1235+ - Added ToolsCoreAppChannelFail(): Callback for "permanent" channel
1236+ connection failure. A warning is logged based on whether another
1237+ "vmtoolsd -n vmusr" is running or not and the process is terminated.
1238+ On Mac OS, the process is terminated with exit(1) as an indication
1239+ to launchd that the vmusr process should not automatically be
1240+ restarted.
1241+
1242+ The current implementation uses the error callback only for the vmusr
1243+ server on Linux (*nix).
1244+ The default channel error limit is 5 (approx. 5 second), but is user
1245+ configurable in tools.conf.
1246+
1247+ [vmusr]
1248+ maxChannelAttempts = n # where allowed n = 0, 3-15
1249+
1250+ When "maxChannelAttempts = 0" is used, the restriction to a single
1251+ running vmusr process is not enforced. The existing behavior is
1252+ restored with all the accompanying VMX log spew. This is essentially
1253+ a user configurable feature disablement switch.
1254+
1255+commit 0c34a86b232a9904941f825ce8b16320cadaace1
1256+Author: Oliver Kurth <okurth@vmware.com>
1257+Date: Mon Sep 17 16:41:17 2018 -0700
1258+
1259+ Changes to common header files not directly applicable to open-vm-tools
1260+
1261+ VGAuth Windows: fix file properties product version and file version
1262+
1263+ Product name of the VGAuth binaries are set to VMware Workstation and
1264+ the Product version set to experimental (e.x.p).
1265+
1266+ Experimental version has the e.x.p build number in the Product Version
1267+ field of each of the shipped binaries. Now that we are WHQL signing a DLL too
1268+ for security it does make sense for the feature to use an official version.
1269+
1270+ This changes the Product name and version fields from
1271+ Product name -> VMware Workstation
1272+ Product version -> e.x.p build-4013326
1273+
1274+ to
1275+ Product name -> VMware Guest Authentication
1276+ Product version -> 1.0.0 build-4013326
1277+
1278+commit 5f5a7f4a0984ee35ce79d736426a5335c91da332
1279+Author: Oliver Kurth <okurth@vmware.com>
1280+Date: Fri Sep 7 15:53:28 2018 -0700
1281+
1282+ Remove vmxnet and vmxnet3 drivers from FreeBSD builds and open-vm-tools
1283+
1284+ The vmxnet (version 1) network driver is not supported by any currently
1285+ supported VMware virtualization platform. Removing the FreeBSD
1286+ specific vmxnet source and deleting the vmxnet.ko driver build from
1287+ the tools and the open-vm-tools builds.
1288+
1289+ FreeBSD has their own vmxnet3 network driver based on community source
1290+ and has never made use of the vmxnet3 source code or drivers from
1291+ VMware. Removing the unneeded FreeBSD vmxnet3 source and builds
1292+
1293+commit 1a413064fee53ac3e334e96c546886e60724d07a
1294+Author: Oliver Kurth <okurth@vmware.com>
1295+Date: Fri Sep 7 15:53:27 2018 -0700
1296+
1297+ Update SSL configuration with more secure settings.
1298+
1299+ Due to SSL issues in the past, The preference is to have default
1300+ settings to be more secure than compatible. This change mainly
1301+ inherits the default settings from ssl.c.
1302+
1303+commit 450aca9f244b5e56bcef130df1a06137fd1f07e0
1304+Author: Oliver Kurth <okurth@vmware.com>
1305+Date: Fri Sep 7 15:53:27 2018 -0700
1306+
1307+ Add virbr* interfaces on RHEL to the default exclude-nics.
1308+
1309+commit 5a6e8bc0ef8af2eedbbc4dc1973cb7fe18afa939
1310+Author: Oliver Kurth <okurth@vmware.com>
1311+Date: Fri Sep 7 15:53:27 2018 -0700
1312+
1313+ Fix a gcc-8 compiler warning in lib/misc/vthreadBase.c
1314+
1315+ gcc-8 generates a stringop-truncation warning when it's possible
1316+ for strncpy to exclude the trailing nul. The code was fine, we never
1317+ touch the last byte in the buffer and it's a static, but explicitly
1318+ set a nul at the end of the buffer so gcc sees it.
1319+
1320+ This is needed for open-vm-tools to build on Suse Tumbleweed.
1321+
1322+commit 5200ba3a770463e5c6a9e9d7e7a6a949857332ec
1323+Author: Oliver Kurth <okurth@vmware.com>
1324+Date: Fri Sep 7 15:53:27 2018 -0700
1325+
1326+ Return proper vix error code when guest op VIX_COMMAND_DELETE_GUEST_DIRECTORY_EX fails.
1327+
1328+commit 8ffda7dbae4b916b28e3f903554bc37db1d5f974
1329+Author: Oliver Kurth <okurth@vmware.com>
1330+Date: Fri Sep 7 15:53:27 2018 -0700
1331+
1332+ Make Tools logfiles readable only by owner and root
1333+
1334+commit b0e2fab2787fbc511d240c4ce0f52a74b55152fe
1335+Author: Oliver Kurth <okurth@vmware.com>
1336+Date: Fri Sep 7 15:53:27 2018 -0700
1337+
1338+ Reduce quiesced snapshot warning messages when running on older hosts.
1339+
1340+ vSphere 6.7 added a new interface on the host side that allows tools
1341+ to send a "generic" backup manifest during a quiesced snapshot on
1342+ Linux guests. VMTools 10.2.0 or later will try to send the manifest
1343+ file and if the host is unable to field it, then VMTools logs this
1344+ information and continues with the quiesced snapshot in the older
1345+ fashion. This change reduces the logging that is done in this case.
1346+
1347+commit a4b4c338f1202d161e8cad2eb7cf78d44f2fd302
1348+Author: Oliver Kurth <okurth@vmware.com>
1349+Date: Fri Sep 7 15:53:27 2018 -0700
1350+
1351+ Common source file change not directly applicable to open-vm-tools
1352+
1353+ Verify existence of the returned path, retry the guest OP
1354+ CreateTemporaryFileInGuest/CreateTemporaryDirectoryInGuest using system
1355+ temp folder if the path disappears.
1356+
1357+commit b6c450d123141a752bd4805263b7d476f5b1f26b
1358+Author: Oliver Kurth <okurth@vmware.com>
1359+Date: Fri Sep 7 15:53:27 2018 -0700
1360+
1361+ Fix coverity complaint; not a real bug
1362+
1363+commit 23bd37544bb9ae4069002d73cb1c1b40e221d36a
1364+Author: Oliver Kurth <okurth@vmware.com>
1365+Date: Fri Sep 7 15:53:27 2018 -0700
1366+
1367+ Common source file change not directly applicable to open-vm-tools.
1368+
1369+commit c2dd430ea5c8c9309700d25548513469dae68c9b
1370+Author: Oliver Kurth <okurth@vmware.com>
1371+Date: Fri Sep 7 15:53:26 2018 -0700
1372+
1373+ Disable hgfsServer plugin when not running in a VMware VM.
1374+
1375+ VmCheck_GetVersion() accesses Backdoor in an unsafe manner
1376+ which is not expected to work on non-VMware environments
1377+ including physical machines. So, we need to make sure that
1378+ VmCheck_GetVersion() is called only when we are running in
1379+ a VMware VM.
1380+
1381+commit 31a60ab3529a8dad8d602a524d194013d90abeec
1382+Author: Oliver Kurth <okurth@vmware.com>
1383+Date: Fri Sep 7 15:53:26 2018 -0700
1384+
1385+ Expose more guest stats for vROPS to report the exact physical memory
1386+ stats as the guest OS UI does.
1387+
1388+ Windows:
1389+ guest.mem.modifiedPages (Win32_PerfRawData_PerfOS_Memory#ModifiedPageListBytes)
1390+ guest.mem.standby.core (Win32_PerfRawData_PerfOS_Memory#StandbyCacheCoreBytes)
1391+ guest.mem.standby.normal (Win32_PerfRawData_PerfOS_Memory#StandbyCacheNormalPriorityBytes)
1392+ guest.mem.standby.reserve (Win32_PerfRawData_PerfOS_Memory#StandbyCacheReserveBytes)
1393+
1394+ Linux:
1395+ guest.mem.total (/proc/meminfo#MemTotal)
1396+ guest.mem.buffers (/proc/meminfo#Buffers)
1397+ guest.mem.cached (/proc/meminfo#Cached)
1398+ guest.mem.slabReclaim (/proc/meminfo#SReclaimable)
1399+ guest.mem.available (/proc/meminfo#MemAvailable since Linux 3.14, emulated by VMTools for kernels 2.6.27+)
1400+
1401+commit 0b01aefe3ee960c6035863bcf4fd7e2ff654b99b
1402+Author: Oliver Kurth <okurth@vmware.com>
1403+Date: Fri Sep 7 15:53:26 2018 -0700
1404+
1405+ Update the tools version to 10.3.5
1406+
1407+ Set the tools version in vm_tools_version.h to be
1408+ TOOLS_VERSION_JACKHAMMER_UPDATE1 = 10.3.5.
1409+
1410+commit 2147df6aabe639fc5ff423ed791a8e7f02bf8d0a
1411+Author: Oliver Kurth <okurth@vmware.com>
1412+Date: Fri Jul 13 11:54:23 2018 -0700
1413+
1414+ prepare for 10.3.0 release
1415+commit a30d7aaa4d10fbce4b7d262487fffaf1dc32d949
1416+Author: Oliver Kurth <okurth@vmware.com>
1417+Date: Fri Jul 6 14:31:55 2018 -0700
1418+
1419+ Common source file change, not directly applicable to open-vm-tools.
1420+
1421+ Enforce monotonic behavior for the value returned by times() on Mac.
1422+
1423+commit 12e5559e4dcf3968dd45131077b68364578f3bef
1424+Author: Oliver Kurth <okurth@vmware.com>
1425+Date: Fri Jul 6 14:31:55 2018 -0700
1426+
1427+ Update the Tools-10.3.0 OSL.
1428+
1429+ Update the Tools-10.3.0 open source license files.
1430+
1431+commit c80bb3fc7960bc78a6d39c89b6952218a401b0cf
1432+Author: Oliver Kurth <okurth@vmware.com>
1433+Date: Fri Jul 6 14:31:55 2018 -0700
1434+
1435+ [tools-plugin] Potential solution for reported desktopEvent crash
1436+
1437+ On several distros like RHEL, CentOS and Fedora, plugin desktopEvents.so
1438+ crashes have been reported. However, neither development or QE can
1439+ reproduce this issue in local environments.
1440+
1441+ The XFetchName document states that it may generate BadWindow error. That
1442+ means that the value for a Window argument does not name a defined Window.
1443+ X FAQ also suggests handling badwindow error after finding it. Since
1444+ the window does not exist when XFetchName is run on it, the name is not
1445+ needed. Suppress this error to avoid a crash.
1446+
1447+ After grabbing the X server, use XSetErrorHandler to temporarily define
1448+ a local error handler to intercept and cleanly handle any BadWindow
1449+ errors. XSetErrorHandler returns the current error handler, so it is
1450+ straightforward to reinstate GDK's original handler.
1451+
1452+commit 6172812c021469704c51817693c6c8f6bf226509
1453+Author: Oliver Kurth <okurth@vmware.com>
1454+Date: Fri Jul 6 14:31:55 2018 -0700
1455+
1456+ Remove the new guest metrics feature switch, permanently enabling the
1457+ collection of new guest metrics for vROps..
1458+
1459+commit 6e6285ec690a13ff8ba894ee463a5aa0fd034269
1460+Author: Oliver Kurth <okurth@vmware.com>
1461+Date: Tue Jun 19 11:07:46 2018 -0700
1462+
1463+ Previous change to configure.ac and vmtools.m4 caused a regression
1464+
1465+ Backing out of 10.3.0.
1466+
1467+commit 699cda01fab8b1ad8a1e912d650aa92f7ffdf0e6
1468+Author: Oliver Kurth <okurth@vmware.com>
1469+Date: Tue Jun 19 11:07:46 2018 -0700
1470+
1471+ [OVT] Update copyright year to 2018 for few files.
1472+
1473+ Updated the copyright year to 2018 for few files changed in the last
1474+ few days.
1475+
1476+commit cecbaf6b16f5fd1ecbfe4419310352353b047ba2
1477+Author: Oliver Kurth <okurth@vmware.com>
1478+Date: Tue Jun 19 11:07:46 2018 -0700
1479+
1480+ open-vm-tools: use AC_CHECK_TOOL for pkg-config
1481+
1482+ AC_CHECK_TOOL honors the --host setting to configure, and searches
1483+ for tools with the cross compile prefix thus allowing for cross
1484+ compile specific tools.
1485+
1486+ Fixes issue #26 in github.
1487+
1488+commit f2c8d02161569c96ac452f9d1063756d133562ba
1489+Author: Oliver Kurth <okurth@vmware.com>
1490+Date: Tue Jun 19 11:07:45 2018 -0700
1491+
1492+ open-vm-tools: build dndcp with thread libs
1493+
1494+ Recent changes in the dndcp plugin made it necessary to make sure that
1495+ it links against pthread libs.
1496+
1497+commit 99df5712ba7b8910c3db138c64aab6957f31c914
1498+Author: Oliver Kurth <okurth@vmware.com>
1499+Date: Tue Jun 19 11:07:45 2018 -0700
1500+
1501+ Clipboard content on the host gets loaded to tmp on Linux guest with a right click on Guest
1502+
1503+ Root Cause:
1504+ Dndcp plugin creates a sub thread to monitor if there is other application
1505+ access the specific file. The root cause for this bug is the main thread
1506+ doesn't update its field before wakeup the sub thread, this cause the sub
1507+ thread get a wrong value.
1508+
1509+ Solution:
1510+ Main thread should update the field before wakeup the sub thread.
1511+
1512+commit 99af79200f91c246580197b5698995fba4dc47af
1513+Author: Oliver Kurth <okurth@vmware.com>
1514+Date: Tue Jun 19 11:07:45 2018 -0700
1515+
1516+ open-vm-tools: build for FreeBSD fails in fakeMouseWayland
1517+
1518+ Root Cause:
1519+ In the file fakeMouseWayland.cpp, several Linux related header files
1520+ are included:
1521+ <linux/input.h>
1522+ <linux/ioctl.h>
1523+ <linux/uinput.h>
1524+
1525+ These header files do not exist for FreeBSD and Solaris.
1526+
1527+ Solution:
1528+ Lib fakeMouse is not needed by FreeBSD and Solaris, so update the makefile
1529+ to build the fakemouse related code only on Linux.
1530+
1531+commit 104cab14e08b93a2525992e09f0d13ff26d52d9d
1532+Author: Oliver Kurth <okurth@vmware.com>
1533+Date: Tue Jun 19 11:07:45 2018 -0700
1534+
1535+ Use "/var/run" or "/run" instead of "/tmp" in Linux guest for imc package copy
1536+
1537+ 1. check if /var/run is a directory in VM
1538+ 2. if Yes, use /var/run/XXXXXX
1539+ 3. check if /run is a directory in VM
1540+ 4. if Yes, use /run/XXXXXX
1541+ 5. if both No, use /tmp/XXXXXX as before
1542+
1543+commit 8f93d803066032a738b9d9a6990e32ed17b589e1
1544+Author: Oliver Kurth <okurth@vmware.com>
1545+Date: Tue Jun 19 11:07:45 2018 -0700
1546+
1547+ Build open-vm-tools with xmlsec1 by default.
1548+
1549+ Build open-vm-tools with xmlsec1 by default, rather than with
1550+ xml-security-c as is done currently. This requires modifications
1551+ to configure.ac to change the default for use_xmlsec1, plus
1552+ modifications to bora-vmsoft/install/Source/tools-pkg.make to
1553+ initialize flags for xmlsec1 and xml2 now needed by the OVT build
1554+ that is done during tools builds.
1555+
1556+ Another change that surfaced during this was that the symbol that
1557+ configure checks for the xmlsec library was wrong. It should be
1558+ xmlSecCheckVersionExt rather than xmlSecCheckVersion. The latter
1559+ is a header-defined macro but not a library symbol.
1560+
1561+commit 7313fdc5b2b14ac83340b2e59752b934494c2ae9
1562+Author: Oliver Kurth <okurth@vmware.com>
1563+Date: Tue Jun 19 11:07:45 2018 -0700
1564+
1565+ [Wayland Copy & Paste] Part2: Uses VMBlock notification mechanism for Copy & Paste
1566+
1567+ This patch is part of the new feature for Workstation 15: \[P0\] Wayland
1568+ support in Linux guest - Copy & Paste.
1569+
1570+ In the first patch, the notification mechanism is added to the VMBlock module.
1571+ In this patch, the notification mechanism is used,
1572+
1573+commit c04b9987786901f544c4df04f7701b48ac8f6475
1574+Author: Oliver Kurth <okurth@vmware.com>
1575+Date: Tue Jun 19 11:07:45 2018 -0700
1576+
1577+ [Wayland Copy & Paste] Part1: Add notification mechanism to the VMBlock module
1578+
1579+ This patch is part of the new feature for Workstation 15: [P0] Wayland support
1580+ in Linux guest - Copy & Paste.
1581+
1582+ In the implementation of current VMTools, there is a restriction, in the first
1583+ second after grab into the guest, the CopyPasteUIX11::LocalGetFileRequestCB,
1584+ which is a callback from a file paste request from another guest application
1585+ and begins copying the files from host to guest and return the file list,
1586+ will return none directly.
1587+
1588+ The Wayland file explorer will request the content in the clipboard after the
1589+ user clicks on the file explorer, and the request will get nothing since the
1590+ restriction in the VMTools, so the following ‘Paste’ operation will fail.
1591+
1592+ Solution:
1593+ This solution is only used for the Linux guest with Wayland. The behavior
1594+ for Linux guest with X11 will not change.
1595+
1596+ The restriction, the CopyPasteUIX11::LocalGetFileRequestCB returns directly
1597+ in the first second after grab into the guest, will be removed.
1598+
1599+ And, the notification mechanism will be added into the VM block file system.
1600+ This mechanism is similar with the inotify module.
1601+
1602+ Take the VMBlock Fuse File System as an example, currently, the mount point contains below contents:
1603+
1604+ * /blockdir/
1605+
1606+ * /dev
1607+
1608+ /blockdir/ contains the symlinks to the contents of the target directory.
1609+
1610+ /dev is the control file for VMBlock Fuse File System.
1611+
1612+ In this new solution, a new folder /notifydir/ will be added, each file in this folder is a special file, read from this file will be blocked until any other process read from the corresponding file in target directory or the block on the target directory is removed.
1613+
1614+ This patch only focus on the notification mechanism.
1615+
1616+commit 6c0b2130e7ee103ece06eb674c5f5dfea66c26f1
1617+Author: Oliver Kurth <okurth@vmware.com>
1618+Date: Tue Jun 19 11:07:45 2018 -0700
1619+
1620+ FreeBSD: clang compiler related changes to configure.ac
1621+
1622+ On FreeBSD, the unwind.h header is available in the libunwind
1623+ package (/usr/ports/devel/libunwind) which may or may not be installed
1624+ on a system. The libunwind functions to determine the call-chain in a
1625+ program are defined only if " __GNU_SOURCE" is defined to enable "all"
1626+ GCC extensions. Avoid the unwind.h header if seen on FreeBSD.
1627+
1628+ The "clang" compiler will issue warnings if the address of a member
1629+ of a packed structure is taken. Since warnings are errors with -Wall,
1630+ add --Wno-address-of-packed-member to CFLAGS when compiling with
1631+ "clang".
1632+
1633+commit bba52bfa5b29c8860f18200022db5b8b250d326b
1634+Author: Oliver Kurth <okurth@vmware.com>
1635+Date: Tue Jun 19 11:07:45 2018 -0700
1636+
1637+ open-vm-tools: build with tirpc
1638+
1639+ Newer distros (Fedora, OpenSuSE Tumblweed) no longer ship rpcgen with glibc,
1640+ so we need to build with libtirpc (see
1641+ https://bugzilla.redhat.com/show_bug.cgi?id=1531540 and
1642+ https://bugzilla.suse.com/show_bug.cgi?id=1089181).
1643+ With this change, configure will check for the presence of libtirpc and
1644+ if found, sets flags to build with it. configure will also exit with an
1645+ error if rpcgen is not found.
1646+
1647+commit 5c0b9496db96af9ea5e4b3b1321f0612a3f62d99
1648+Author: Oliver Kurth <okurth@vmware.com>
1649+Date: Tue Jun 19 11:07:44 2018 -0700
1650+
1651+ Changes to build CAF with VS 2015; not applicable to open-vm-tools.
1652+
1653+commit 3961588fcce58090c249f4a65ad8cc109efecc5c
1654+Author: Oliver Kurth <okurth@vmware.com>
1655+Date: Tue Jun 19 11:07:44 2018 -0700
1656+
1657+ Log full version of Tools in vmware.log.
1658+
1659+ Currently, only the Tools build number is logged in vmware.log.
1660+ It will be very handy to have the full version logged in
1661+ there and avoid the need to manually lookup the build.
1662+
1663+commit bf494fd02a77a4f34ff420c03c0c5a19e43218d3
1664+Author: Oliver Kurth <okurth@vmware.com>
1665+Date: Tue Jun 19 11:07:44 2018 -0700
1666+
1667+ Tools 10.3.0 L10n drop2
1668+
1669+ This is to integrate the final L10n drop for VMware Tools 10.3.
1670+
1671+commit 065f09b94e09f1127901db29e73cc9b9f36df4fc
1672+Author: Oliver Kurth <okurth@vmware.com>
1673+Date: Tue Jun 19 11:07:44 2018 -0700
1674+
1675+ Add two switches for max IPv4/6 routes to gather
1676+
1677+ Gathering nic info in a Linux guest OS which is configured with large
1678+ number(60000+) of ipv6 routes could result in vmtoolsd process taking a
1679+ long time and rock solid 100% CPU of a core. Though tools only exports
1680+ at most NICINFO_MAX_ROUTES(100) routes, it tries to read all the contents
1681+ of /proc/net/ipv6_route which costs too much time because:
1682+ 1. IPv6 route table is not efficient natively compared to ipv4 due to
1683+ its implementation.
1684+ 2. The g_io library can aggravate the performance.
1685+
1686+ On the other hand, when gathering routes, IPv4 comes first, and IPv6 second.
1687+ And the routes reported to VMX has an overall limitation of serializing
1688+ (NICINFO_MAX_ROUTES). If there's more than NICINFO_MAX_ROUTES IPv4 routes
1689+ in system, no IPv6 will get reported.
1690+
1691+ Added two switches "max-ipv4-routes" and "max-ipv6-routes"
1692+ (NICINFO_MAX_ROUTES by default) in tools.conf and let SlashProcNet_GetRoute*()
1693+ only read the first max ipv4/6 routes lines of /proc/net/[ipv6_]route to avoid
1694+ performance problem. Users can disable ipv4/ipv6 routes gathering
1695+ separately if they want ipv6 or ipv4 only.
1696+
1697+commit bf86c612a8ffe1d20b98c20b76f0c34840a7a2a3
1698+Author: Oliver Kurth <okurth@vmware.com>
1699+Date: Tue Jun 19 11:07:44 2018 -0700
1700+
1701+ Not checking symbols when building open-vm-tools
1702+
1703+ Using a hard-coded mangled name is not a good idea because C++ does not
1704+ have any standard for name mangling. Remove these mangled names introduced
1705+ in an earlier fix.
1706+
1707+commit d36ed6e5b4784a36cb93f50e05d6a49b5d76b86e
1708+Author: Oliver Kurth <okurth@vmware.com>
1709+Date: Tue Jun 19 11:07:44 2018 -0700
1710+
1711+ [OVT] Update copyright year to 2018 for files modified since 10.2.5 GA
1712+
1713+commit 8086ead225faf3a051952773c0b98b2c751b1e84
1714+Author: Oliver Kurth <okurth@vmware.com>
1715+Date: Tue Jun 19 11:07:44 2018 -0700
1716+
1717+ Hgfs Win Client: fix bad illegal character escaping; not applicable to open-vm-tools.
1718+
1719+commit 7efc7b70a57cf734012a069fabab19e96f8cf16d
1720+Author: Oliver Kurth <okurth@vmware.com>
1721+Date: Tue Jun 19 11:07:43 2018 -0700
1722+
1723+ Add the JACKHAMMER code name to the 10.3.0 release version defines.
1724+
1725+ Adding the code name JACKHAMMER to the 10.3.x series version notation
1726+ for the public source release and use by future 10.3.x patches or
1727+ updates.
1728+
1729+commit d71381445f6c3b986e263435006428a44be0451a
1730+Author: Oliver Kurth <okurth@vmware.com>
1731+Date: Tue Jun 19 11:07:43 2018 -0700
1732+
1733+ Hgfs Server Plugin: only handle the shared folders client in hosted products
1734+
1735+ Only initialize the Shared Folders client redirector in hosted product
1736+ environments.
1737+
1738+ Details: Check if the tools system service started in a non-hosted product
1739+ and if so do not start the shared folders client redirector.
1740+ Check if the tools user service started in a non-hosted product product and if
1741+ so then skip reconnecting any Shared Folders mapped drives.
1742+
1743+commit ad7c68780a773d6d456687aff0d27f9cff808370
1744+Author: Oliver Kurth <okurth@vmware.com>
1745+Date: Thu May 10 16:47:16 2018 -0700
1746+
1747+ update version number
1748+
1749+commit cac0f086ffcc00da73dd7dd80fef6956962f4dd6
1750+Author: Oliver Kurth <okurth@vmware.com>
1751+Date: Thu May 10 16:38:11 2018 -0700
1752+
1753+ Remove debug display of CPUID vendor string seen in VmCheck_IsVirtualWorld
1754+
1755+ The "Debug" message containing vendor string returned by the CPUID
1756+ instruction will appear on STDERR for stand-alone programs such
1757+ as vmware-checkvm. This unexpected output is at best noise and may
1758+ adversely affect existing scripts.
1759+
1760+commit 7ddbe3c9df400dfdf7d67d259ae3942d157dedb4
1761+Author: Oliver Kurth <okurth@vmware.com>
1762+Date: Mon Apr 30 15:42:54 2018 -0700
1763+
1764+ sync deploypkg files
1765+
1766+commit 80a23d71a281493071668fd45b77d7f8248fad68
1767+Author: Oliver Kurth <okurth@vmware.com>
1768+Date: Mon Apr 30 14:04:14 2018 -0700
1769+
1770+ Changes to common header files:
1771+ - Add Amazon Linux 2 to the known guest OS list.
1772+ - Other change not application to open-vm-tools.
1773+
1774+commit 48dc7a57ff3fe5cb1441040876f74b69772c1ea5
1775+Author: Oliver Kurth <okurth@vmware.com>
1776+Date: Mon Apr 30 14:04:13 2018 -0700
1777+
1778+ [DeployPkg] Replace Log() references with g_log()
1779+
1780+ * Modified the code to replace a couple of Log() references with g_debug()
1781+ so that they are properly logged with 'deplogPkg' domain instead of the
1782+ generic 'vmsvc' domain in the tools log files.
1783+
1784+commit 9cb12223b4da529df043d95ab025f22c6ee00c39
1785+Author: Oliver Kurth <okurth@vmware.com>
1786+Date: Mon Apr 23 17:08:18 2018 -0700
1787+
1788+ [oss] Upgrade GTK+ and its dependent libraries for VMtools
1789+
1790+ GTK+ and its dependent libraries are upgraded to:
1791+ gtk+ 2.24.32
1792+ atk 2.28.1
1793+ gdk-pixbuf 2.36.11
1794+ pango 1.40.13
1795+ cairo 1.14.12
1796+ fontconfig 2.13.0
1797+ freetype 2.9
1798+
1799+commit a5c03957c95ec78c92246b87cdf60a90b2eca7f7
1800+Author: Oliver Kurth <okurth@vmware.com>
1801+Date: Mon Apr 23 17:08:18 2018 -0700
1802+
1803+ Common header file change not applicable to open-vm-tools.
1804+
1805+commit f87d177acab33f00229234ed51722504e2f7afc7
1806+Author: Oliver Kurth <okurth@vmware.com>
1807+Date: Mon Apr 23 17:08:18 2018 -0700
1808+
1809+ Changes to common header files not directly applicable to open-vm-tools.
1810+
1811+commit ba65905dfc7e6c07d1aeea37db885284e54b02fa
1812+Author: Oliver Kurth <okurth@vmware.com>
1813+Date: Mon Apr 23 17:08:18 2018 -0700
1814+
1815+ Set perms on Tools script logs.
1816+
1817+ Make the network script logs secure; set log file perms to 0600.
1818+
1819+commit aa59d16e0b5968efc298065ef50ece282d406265
1820+Author: Oliver Kurth <okurth@vmware.com>
1821+Date: Mon Apr 23 17:08:18 2018 -0700
1822+
1823+ [Wayland DnD] Part2: Open the uinput device file with root permission.
1824+
1825+ The device file /dev/uinput (or /dev/input/uinput) can only be accessed
1826+ by root account, so the dndcp plugin may failed to open this device file
1827+ if the current user is not root account.
1828+
1829+ A way to fix this issue is opening this device file with root account,
1830+ then pass the file descriptor to the sub task which is started with the
1831+ current account. An example for this solution is blockVM file system
1832+ device file.
1833+
1834+ This patch is part of the new feature 'Wayland support in Linux guest'.
1835+
1836+commit b3899c91d348d23c2e6c22944b8ac1a06e4e3988
1837+Author: Oliver Kurth <okurth@vmware.com>
1838+Date: Mon Apr 23 17:08:18 2018 -0700
1839+
1840+ [Wayland DnD] Part1: Add 'fakeMouse' module which is used to simulate the
1841+ mouse motion under Wayland
1842+
1843+ For Linux guest with X11, the VMTools uses the X system APIs to simulate
1844+ the mouse motion, but these X11 System APIs do not work in Wayland. Need
1845+ to pick up another method to simulate the mouse motion.
1846+
1847+ Another way to simulate the mouse motion is using uinput module.
1848+
1849+ uinput is a kernel module that makes it possible to emulate input devices
1850+ from userspace. By writing to /dev/uinput (or /dev/input/uinput) device,
1851+ a process can create a virtual input device with specific capabilities.
1852+ Once this virtual device is created, the process can send events through
1853+ it, that will be delivered to userspace and in-kernel consumers.
1854+
1855+ Here is the link which contains more information about the uinput module:
1856+
1857+ https://www.kernel.org/doc/html/v4.12/input/uinput.html
1858+
1859+ This patch adds a new module named 'fakeMouse' which is used to simulate the mouse motion under Wayland.
1860+
1861+ This patch is part of the new feature 'Wayland support in Linux guest'.
1862+
1863+commit 995befcb0d6156fb47773c96db6d478173d1bc89
1864+Author: Oliver Kurth <okurth@vmware.com>
1865+Date: Mon Apr 23 17:08:18 2018 -0700
1866+
1867+ Add new guest metrics to be consumed by vROps.
1868+
1869+ Windows:
1870+ * ProcessorQueueLength
1871+ * CurrentDiskQueueLength
1872+ * AvgDiskQueueLength
1873+
1874+ Linux:
1875+ * CPU run queue size
1876+ * Current disk queue size
1877+ * Average disk queue size
1878+
1879+commit 9d6cfe650cd15095e65024fbb5d9cd6944e1cf14
1880+Author: Oliver Kurth <okurth@vmware.com>
1881+Date: Mon Apr 23 17:08:17 2018 -0700
1882+
1883+ Historical: Recording version numbers assigned for 10.2.x patches.
1884+
1885+ Define TOOLS_VERSION_CHAINSAW_PATCH1 as 10.2.1.
1886+ Define TOOLS_VERSION_CHAINSAW_PATCH2 as 10.2.6.
1887+
1888+commit ba6c319f18d294b36c0e989f851fbfdbc8a629b7
1889+Author: Oliver Kurth <okurth@vmware.com>
1890+Date: Mon Apr 23 17:08:17 2018 -0700
1891+
1892+ Bump up the version requirement for glib and friends to 2.34.0
1893+
1894+ For open-vm-tools, we are bumping up the minimum version requirement
1895+ to 2.34.0 for glib and its friends. Modified the configure.ac
1896+ with the proper new version checks. Also, updated the
1897+ error message with the proper version.
1898+
1899+commit 26d03ad8075913cb869b814462b7285c02367252
1900+Author: Oliver Kurth <okurth@vmware.com>
1901+Date: Mon Apr 23 17:08:17 2018 -0700
1902+
1903+ Common header file change not applicable to open-vm-tools.
1904+
1905+commit ce1ed002f5e05f09678e15b4021bac8155edb1eb
1906+Author: Oliver Kurth <okurth@vmware.com>
1907+Date: Mon Apr 23 17:08:17 2018 -0700
1908+
1909+ Common source file changes that are not directly related to open-vm-tools.
1910+
1911+ Build vmtools and vgauth for Windows with xmlsec instead of
1912+ xml-security-c. It will still be possible to build with xml-security-c
1913+ either by commenting out the definition of USE_XMLSEC_FOR_WINDOWS in
1914+ bora-vmsoft/vgauth/make/inc/defs.mk or adding a make command line
1915+ argument of USE_XMLSEC_FOR_WINDOWS=0.
1916+
1917+commit d5c0bcea04aae65484ba3c2756b64acf6f6388d0
1918+Author: Oliver Kurth <okurth@vmware.com>
1919+Date: Mon Apr 23 17:08:17 2018 -0700
1920+
1921+ Update bora-vmsoft/install/Source/README
1922+
1923+ The content is stale. Since the file is used internally and is
1924+ not published, rather than maintain it in two places, point to
1925+ the current README file and Release Notes on github.
1926+
1927+commit 512d5475520ec5e0525633cd47530faaae774b5e
1928+Author: Oliver Kurth <okurth@vmware.com>
1929+Date: Mon Apr 23 17:08:17 2018 -0700
1930+
1931+ Common header file change not applicable to open-vm-tools.
1932+
1933+commit 982998c9a6a3ec8664f9c4c08ff9ef30f52a9ae2
1934+Author: Oliver Kurth <okurth@vmware.com>
1935+Date: Mon Apr 23 17:08:17 2018 -0700
1936+
1937+ Common header file change not applicable to open-vm-tools.
1938+
1939+commit ab36b3227275a5beded8a5115929e2d649c6aad3
1940+Author: Oliver Kurth <okurth@vmware.com>
1941+Date: Mon Apr 23 17:08:17 2018 -0700
1942+
1943+ Common header file changes not applicable to open-vm-tools.
1944+
1945+commit 0527d5c5f14f626a5129231778ec433dfff55c2a
1946+Author: Oliver Kurth <okurth@vmware.com>
1947+Date: Mon Apr 23 17:08:17 2018 -0700
1948+
1949+ Common header file change not applicable to open-vm-tools.
1950+
1951+commit 571dc1fbadd962d91dcb7a44652b501de3f48e0e
1952+Author: Oliver Kurth <okurth@vmware.com>
1953+Date: Mon Apr 23 17:08:16 2018 -0700
1954+
1955+ Common header file change not applicable to open-vm-tools.
1956+
1957+commit 998903d73496bf6080053f994c8410dc880db2f9
1958+Author: Oliver Kurth <okurth@vmware.com>
1959+Date: Mon Apr 23 17:08:16 2018 -0700
1960+
1961+ Common header file change not applicable to open-vm-tools.
1962+
1963+commit 3b814f9b4dcbf54893078a4ba187d8d0cbf23e31
1964+Author: Oliver Kurth <okurth@vmware.com>
1965+Date: Mon Apr 23 17:08:16 2018 -0700
1966+
1967+ lib/hashMap/hashMap.c:
1968+ Add new HashMap_Get() which uses a constant time memory comparison function.
1969+
1970+ lib/misc/utilMem.c:
1971+ Constant time memory and string comparison functions.
1972+
1973+commit 5daceb4448834143d884b061f391c37aeaaad683
1974+Author: Oliver Kurth <okurth@vmware.com>
1975+Date: Mon Apr 23 17:08:16 2018 -0700
1976+
1977+ Changes to common header files not applicable to open-vm-tools.
1978+
1979+commit 42d1e6b11c0b11c1b1f6f967cb5c4d7e2f3b39e0
1980+Author: Oliver Kurth <okurth@vmware.com>
1981+Date: Mon Apr 23 17:08:16 2018 -0700
1982+
1983+ Change to common header file not applicable to open-vm-tools.
1984+
1985+commit f4b7b227119712c90be4a3583d4430a3fcc1d093
1986+Author: Oliver Kurth <okurth@vmware.com>
1987+Date: Mon Apr 23 17:08:16 2018 -0700
1988+
1989+ Change to common header file not applicable to open-vm-tools.
1990+
1991+commit 874b8b4801a5bba439401db8e624e3e3d1989ca7
1992+Author: Oliver Kurth <okurth@vmware.com>
1993+Date: Mon Apr 23 17:08:16 2018 -0700
1994+
1995+ Common header file change not applicale to open-vm-tools.
1996+
1997+commit ff2616a657c32bbb5e6799f8b8cd0a470d0e5202
1998+Author: Oliver Kurth <okurth@vmware.com>
1999+Date: Mon Apr 23 17:08:16 2018 -0700
2000+
2001+ Common header file changes not applicable to open-vm-tools.
2002+
2003+commit 5d9cc73f1c7979466d55f7897f98c0888d2fb15d
2004+Author: Oliver Kurth <okurth@vmware.com>
2005+Date: Mon Apr 23 17:08:15 2018 -0700
2006+
2007+ Header file change in preparation for C++11 compilation. Also updating
2008+ copyright dates.
2009+
2010+commit 29fb30f6d1956ccd4ad803b1b7f0430e4ef28ceb
2011+Author: Oliver Kurth <okurth@vmware.com>
2012+Date: Mon Apr 23 17:08:15 2018 -0700
2013+
2014+ FreeBSD vmmemctl: Fold in open-vm-tools pull requests #125 and #140
2015+
2016+ This change incorporates two open-vm-tools pull requests that provide
2017+ code changes that allows the existing vmmemctl.ko driver to be compiled
2018+ on FreeBSD 10, 11 or 12.
2019+
2020+ Pull request #125:
2021+ An optional argument has been added to the sysctl_add_oid() function
2022+ in FreeBSD 12.x. All releases have a SYSCTL_ADD_OID() macro that does
2023+ not require the additional argument.
2024+
2025+ Pull request #140:
2026+ Functions and macros to lock and unlock memory pages and objects have
2027+ changed between the FBSD 10 & 11. The pull request provides a set C
2028+ preprocessor directives to select the appropriate code based on the
2029+ FreeBSD release being targeted.
2030+
2031+ The code change as been tidied up by using the release version checks
2032+ to define LOCK and UNLOCK macros for memory pages and objects at the
2033+ beginning of the source file. The code logic is easier to follow
2034+ without the abundance of #if, #else and #endif statements scattered
2035+ about.
2036+
2037+ Ed Schouten: https://github.com/vmware/open-vm-tools/pull/125
2038+ Steve Wills: https://github.com/vmware/open-vm-tools/pull/140
2039+
2040+commit 2a34b181de524b3f0d01cad90d3da184bde7ad99
2041+Author: Oliver Kurth <okurth@vmware.com>
2042+Date: Mon Apr 23 17:08:15 2018 -0700
2043+
2044+ Common source file changes not directly applicable to open-vm-tools.
2045+
2046+commit fab45e62a1468b86d2097a6a0784c4f259d6b0ef
2047+Author: Oliver Kurth <okurth@vmware.com>
2048+Date: Mon Apr 23 17:08:15 2018 -0700
2049+
2050+ Common header file change not applicable to open-vm-tools.
2051+
2052+commit 357e8418e5441c2c5fc75a19f7b6529d6bce7452
2053+Author: Oliver Kurth <okurth@vmware.com>
2054+Date: Mon Apr 23 17:08:15 2018 -0700
2055+
2056+ Common header file change not applicable to open-vm-tools.
2057+
2058+commit fad97e4a7c756b3b297e0fe9e68a1a4674c4fdcc
2059+Author: Oliver Kurth <okurth@vmware.com>
2060+Date: Mon Apr 23 17:08:15 2018 -0700
2061+
2062+ Common header file change not applicable to open-vm-tools.
2063+
2064+commit 357d9139342c19a98ed12f5961f415d099df3287
2065+Author: Oliver Kurth <okurth@vmware.com>
2066+Date: Fri Mar 23 15:05:36 2018 -0700
2067+
2068+ Common source file changes that are not applicable to open-vm-tools.
2069+
2070+commit 6c3261d152442fa11fc2b928490d74846f23465d
2071+Author: Oliver Kurth <okurth@vmware.com>
2072+Date: Fri Mar 23 15:05:36 2018 -0700
2073+
2074+ Common header file change not applicable to open-vm-tools.
2075+
2076+commit 3747daca8efbfe8e709687b97c874a29f183b717
2077+Author: Oliver Kurth <okurth@vmware.com>
2078+Date: Fri Mar 23 15:05:36 2018 -0700
2079+
2080+ Backout previous change to lib/include/vm_basic_math.h.
2081+
2082+commit f9414d19532a9664e6c260a8644ee09200e32429
2083+Author: Oliver Kurth <okurth@vmware.com>
2084+Date: Fri Mar 23 15:05:36 2018 -0700
2085+
2086+ Common header file change: lib/include/vm_basic_math.h
2087+
2088+ Define portability macros for Inf and Nan tests.
2089+
2090+commit de2010a1a45a9e515b932a1a83374539661a2b39
2091+Author: Oliver Kurth <okurth@vmware.com>
2092+Date: Fri Mar 23 15:05:35 2018 -0700
2093+
2094+ Add missing memory constraints for vm_atomic RMW (Read/Modify/Write) instructions
2095+
2096+ There are two inseparable concepts involved when dealing with atomics:
2097+ 1. Atomicity of the access itself
2098+ 2. Ordering of the access with respect to other reads&writes (from the view of
2099+ other processors).
2100+
2101+ Our Read-Modify-Write functions are all meant to provide the highest level of
2102+ ordering guarantee: Sequential Consistency, which means no reordering of reads
2103+ or writes across the access. We properly implement that on ARM, and on
2104+ x86/x64 at the hardware layer. But, on x86/x64 we needed to tell the compiler
2105+ (it must flush out any pending reads/writes that are currently hiding in
2106+ registers)
2107+
2108+ Side Note: we do *not* change the pure Read and pure Write functions, only
2109+ the Read/Modify/Write ones. On both ARM and x86/x64, vm_atomic functions like
2110+ Atomic_WriteN provide no (re)ordering guarantees today (at the hardware layer
2111+ on ARM or at the compiler layer on x86/x64). This is because some callers
2112+ didn't need or want such guarantees - as such, Atomic_WriteN by itself is
2113+ *not* sufficient to, say, release a lock. Making these remaining atomic
2114+ weapons safe by default will require us to first
2115+ 1. add new unordered atomic equivalents of Atomic_ReadN/TestBitN and
2116+ Atomic_WriteN (in C11 terminology, acquire/release and relaxed)
2117+ 2. Scan the tree and switch appropriate callers to the new functions
2118+
2119+ *and only then*
2120+ 3. Strengthen the defaults, affecting only callers who needed the stronger
2121+ defaults to be correct. ... but that would be a separate change in the
2122+ future.
2123+
2124+ Codegen differences (vmm.vmm64):
2125+ --------------------------------
2126+ The function that uncovered this was ST_HandleCrossCall, which invoked
2127+ Atomic_And64.
2128+
2129+ original w/o explicit compiler mem barrier in ST_HandleCrossCall:
2130+ ...
2131+ lock and QWORD PTR [rdx+0x0],rax
2132+ movsxd rax,DWORD PTR [rip+offset] <-- load reordered after Atomic_And64
2133+ lea rax,[rax+rax*2]
2134+ lea rdi,[rax*8+0x0]
2135+
2136+ with "memory" constraint, it's now identical to code w/an explicit
2137+ compiler mem barrier (which was the workaround):
2138+ ...
2139+ mov edx,DWORD PTR [rip+offset] <-- load emitted prior to Atomic_And64
2140+ ...
2141+ lock and QWORD PTR [rsi+0x0],rax
2142+ movsxd rax,edx <-- ... and used after Atomic_And64
2143+ lea rax,[rax+rax*2]
2144+ lea rdi,[rax*8+0x0]
2145+
2146+ vmm.vmm64's .text section shrank 28 bytes
2147+ vmware-vmx's .text section shrank 16 bytes
2148+
2149+ Given that these are tiny fractions of the .text section, this suggests the
2150+ problem was quite rare, which is why it escaped our attention until now.
2151+ (Testing of vmx's lib/lock, lib/sync, lib/vprobe, and lib/misc saw no
2152+ differences with GCC 4.4, 6.4, 7.1 or Clang)
2153+
2154+ While in there: nuke some tabs
2155+
2156+ Slated for a future change: vmkapi_atomic.h
2157+
2158+commit 333ac41076afff4e31ccb0d0688e1581e8c9019a
2159+Author: Oliver Kurth <okurth@vmware.com>
2160+Date: Fri Mar 23 15:05:35 2018 -0700
2161+
2162+ Common header file change not applicable to open-vm-tools.
2163+
2164+commit 8671bd8d4f68a490a5b20f1876f05797f3057c4b
2165+Author: Oliver Kurth <okurth@vmware.com>
2166+Date: Fri Mar 23 15:05:35 2018 -0700
2167+
2168+ vmcheck.c VmCheck_IsVirtualWorld(): Always check for a working backdoor.
2169+
2170+ The specific checks for Xen and VirtualPC hypervisors currently happen
2171+ only if the VMware hypervisor is not detected. The test for a working
2172+ VMware backdoor is then done to avoid all other hypervisors.
2173+
2174+ In the case where running on a VMware hypervisor and the backdoor
2175+ channel has been disabled such as with
2176+
2177+ monitor_control.restrict_backdoor = "TRUE"
2178+
2179+ vmtoolsd, vmware-toolbox-cmd and vmware-checkvm will crash when
2180+ attempting to get the version number of the installed VMware Tools.
2181+
2182+ Added an additional test to detect Linux KVM with the existing tests
2183+ for the Xen hypervisor and Microsoft Virtual PC. Avoid checking for
2184+ a working backdoor if a non VMware hypervisor is seen.
2185+
2186+ Microsoft Hv checking to be added later and is tracked in a separate PR.
2187+ Oracle VirtualBox provides no unique CPUID vendor signature string.
2188+
2189+commit 09958952cc761075d5546b18bed0ce59260ec4db
2190+Author: Oliver Kurth <okurth@vmware.com>
2191+Date: Fri Mar 23 15:05:35 2018 -0700
2192+
2193+ FreeBSD open-vm-tools kernel modules compilations cannot locate <stdint.h>
2194+
2195+ With the change for VMware headers to utilize the standard types
2196+ defined in C99 standard headers, the compilation of FreeBSD kernel
2197+ modules must specifically add /usr/include to the compilation
2198+ options.
2199+
2200+ CFLAGS += -isystem /usr/include
2201+
2202+ This change updates the Makefiles's for FreeBSD kernel modules and
2203+ drivers.
2204+
2205+commit cdf0406dc669f2284e1e810ac5820f123d46a50e
2206+Author: Oliver Kurth <okurth@vmware.com>
2207+Date: Fri Mar 23 15:05:35 2018 -0700
2208+
2209+ FreeBSD: Improper use of sysconf() for getpwent buffer size leads to
2210+ vmtoolsd crash.
2211+
2212+ On FreeBSD, sysconf(_SC_GETPW_R_SIZE_MAX) can return -1 if it has
2213+ no hard limit ultimately resulting in an incorrect buffer size.
2214+
2215+ This change is adapting the sysconf() ifixes done elsewhere to
2216+ bora-vmsoft/services/plugins/vix/vixTools.c and updating the
2217+ open-vm-tools AUTHORS file to share credit for the pull request.
2218+
2219+ https://github.com/vmware/open-vm-tools/pull/238
2220+
2221+commit e20e9bd49d244749ee6bcd4ea7d57a26d891afbe
2222+Author: Oliver Kurth <okurth@vmware.com>
2223+Date: Fri Mar 23 15:05:35 2018 -0700
2224+
2225+ Common header file change not applicable to open-vm-tools.
2226+
2227+commit 7e03f0676a8d1a8667d7d6aeda968a74c8708c0e
2228+Author: Oliver Kurth <okurth@vmware.com>
2229+Date: Fri Mar 23 15:05:35 2018 -0700
2230+
2231+ Common header file change not applicable to open-vm-tools.
2232+
2233+commit 0c4420178932c1879f402ece689e5cfaf5f37d84
2234+Author: Oliver Kurth <okurth@vmware.com>
2235+Date: Fri Mar 23 15:05:35 2018 -0700
2236+
2237+ CAF changes for Windows; not applicable to open-vm-tools.
2238+
2239+commit e9463abdc0d56d0612237faf01a5736c9998b499
2240+Author: Oliver Kurth <okurth@vmware.com>
2241+Date: Fri Mar 23 14:57:12 2018 -0700
2242+
2243+ sysconf() usage leads to crashes in BSD tools
2244+
2245+ Not using the sysconf interface properly when determinining the
2246+ getpwent buffer size. Fix this.
2247+
2248+ Problem was identified and proposed fix was submitted in pull request
2249+ https://github.com/vmware/open-vm-tools/pull/238
2250+
2251+commit 4eff69adab058331a1e93aee17ed9a4e13fa8714
2252+Author: Oliver Kurth <okurth@vmware.com>
2253+Date: Fri Mar 23 14:57:12 2018 -0700
2254+
2255+ [lib/file]: remove useless heap allocation
2256+
2257+ FileIO_AtomicUpdateEx allocates the argument to the "swap" ioctl
2258+ on the heap. This argument is a struct which contains a single int
2259+ fd... there is no need to heap-allocate it, the stack is just fine.
2260+
2261+commit 6de42f7d96fb5c70d70ae3b68011477f8b93aef2
2262+Author: Oliver Kurth <okurth@vmware.com>
2263+Date: Fri Mar 23 14:57:12 2018 -0700
2264+
2265+ bora/lib: Use _exit when in the context of a signal handler
2266+
2267+ There are a few cases in bora/lib where exit(3) is used in the
2268+ context of a signal handler. It was recently noticed that exit(3) is
2269+ not async-signal-safe, and _exit(2) should be used instead.
2270+
2271+ This patch changes a call from exit(3) to _exit(2) in bora/lib.
2272+
2273+commit 54415a34a372388374bf322d8118ef47c7b0f9f7
2274+Author: Oliver Kurth <okurth@vmware.com>
2275+Date: Fri Mar 23 14:57:12 2018 -0700
2276+
2277+ Hgfs FUSE Client: enable the FUSE client for RHEL 7, Ubuntu 14.04 and others
2278+
2279+ The RHEL 7.x releases are all kernel 3.10 based. Currently the Hgfs FUSE
2280+ client will not be enabled for these earlier kernel versions, enabled only
2281+ for 4.0 kernels and later. This means for default tools install on plaftorms
2282+ running those kernel versions the Hgfs kernel client must be installed and
2283+ used for Shared Folders. The consequence of this means that the tar tools
2284+ installer must be run to provide the Hgfs kernel client on top of the OVT
2285+ install.
2286+
2287+ To remove the need to install the tar tools we must enable support for the
2288+ Hgfs FUSE client, which just requires the kernel version check to be modified
2289+ from 4.0.0 to 3.10.0.
2290+
2291+commit 84977ad9a0ca964d5873516c42efec328bac23c9
2292+Author: Oliver Kurth <okurth@vmware.com>
2293+Date: Fri Mar 23 14:57:12 2018 -0700
2294+
2295+ Changes to common header files; not applicable to open-vm-tools.
2296+
2297+commit 587d95eeadbdab2f20020ef24686bd989af6d8b0
2298+Author: Oliver Kurth <okurth@vmware.com>
2299+Date: Fri Mar 23 14:57:11 2018 -0700
2300+
2301+ lib/misc/hostinfoPosix.c: Fix sscanf format string case typo.
2302+
2303+commit 8e22cb4da06036b71a06698da3377ed72cfef440
2304+Author: Oliver Kurth <okurth@vmware.com>
2305+Date: Fri Mar 23 14:57:11 2018 -0700
2306+
2307+ Changes to common header files; not applicable to open-vm-tools.
2308+
2309+commit 9e3738b457eba1d9f8302fa449e9521da59f2dfd
2310+Author: Oliver Kurth <okurth@vmware.com>
2311+Date: Fri Mar 23 14:57:11 2018 -0700
2312+
2313+ Changes to common header files; not applicable to open-vm-tools.
2314+
2315+commit 18358aecd27f7d77b71d5ab31250edc600b7bfbc
2316+Author: Oliver Kurth <okurth@vmware.com>
2317+Date: Fri Mar 23 14:57:11 2018 -0700
2318+
2319+ Changes to common header files; not applicable to open-vm-tools.
2320+
2321+commit 670dba44e90c64173a1f67e617a7193f18fc3a2c
2322+Author: Oliver Kurth <okurth@vmware.com>
2323+Date: Fri Mar 23 14:57:11 2018 -0700
2324+
2325+ Common header file change not applicable to open-vm-tools.
2326+
2327+commit 5fe941cd27194495811036667d312f14aece1975
2328+Author: Oliver Kurth <okurth@vmware.com>
2329+Date: Fri Mar 23 14:57:11 2018 -0700
2330+
2331+ Common header file change not applicable to open-vm-tools.
2332+
2333+commit 03faa87192b23354a996b4d62282c002de002c59
2334+Author: Oliver Kurth <okurth@vmware.com>
2335+Date: Fri Mar 23 14:57:11 2018 -0700
2336+
2337+ Common header file change not applicable to open-vm-tools.
2338+
2339+commit 2438cefba37d37de65bf2003b1880f47b529ef47
2340+Author: Oliver Kurth <okurth@vmware.com>
2341+Date: Tue Mar 6 10:38:43 2018 -0800
2342+
2343+ Enhancements for rpcChannel library.
2344+
2345+ rpcChannel.c file contains the code for building rpcChannel library. A good
2346+ amount of the same code is duplicated in rpcChannelSimple.c file to
2347+ build a simplified version (no glib dependency) of the rpcChannel library.
2348+ It's recommended to remove the duplication and maintain only one single
2349+ file which can be used to build both 'glib-dependent rpcChannel' and
2350+ 'glib independent rpcChannel' library.
2351+
2352+ This changeset implements the following changes:
2353+ * Removed rpcChannelSimple.c
2354+
2355+ * Renamed I_USE_SIMPLE_RPC make variable to USE_RPCI_ONLY. If this
2356+ flag is specified, rpcChannel library will be built using only RPCI.
2357+ No dependencies on rpcIn will be added. This inturn will remove
2358+ dependencies on dynxdr, xdr and glib.
2359+
2360+ * Modified the RpcChannelInt structure to have only the necessary
2361+ attributes when USE_RPCI_ONLY is defined.
2362+
2363+ * Modified a bunch of functions into '#if defined(NEED_RPCIN)' block
2364+ to make available only when necessary.
2365+
2366+ * Modified guestrpc.h to provide the declarations for few RpcChannel_*
2367+ functions only when needed.
2368+
2369+ * Modified rpcChannel library to implement necessary stub files / functions
2370+ when it has to be built 'with rpci only' setting.
2371+
2372+ * Removed various copies of 'glib_stubs.c' maintained by different
2373+ consumers of rpcChannel (appmonitorlib, vmGuestLib, 'imgcust' components).
2374+
2375+ * Modified the make files of various consumers (vmGuestLib, appmonitorlib,
2376+ imgcust components [linux-pkg-deployer, guestcustutil, UnitTest]) to
2377+ remove the dependencies for dynxdr library.
2378+
2379+ * Did some code refactoring.
2380+ - Removed some dead code in some make files.
2381+
2382+commit 87be66f17bf7911a8ec59ce9917778f7f653a398
2383+Author: Oliver Kurth <okurth@vmware.com>
2384+Date: Tue Mar 6 10:38:43 2018 -0800
2385+
2386+ Implement a new function VMTools_GetTimeAsString.
2387+
2388+ * Implemented a new function VMTools_GetTimeAsString in
2389+ vmtools library which returns a properly formatted UTC timestamp
2390+ information. This function can be used by different modules / plugins
2391+ in 'VMware Tools' to add the timestamp information in log files.
2392+
2393+ Example of UTC timestamp information: "2018-02-22T21:17:38.517Z"
2394+
2395+ * Modified vmtools logging module to call the new function and
2396+ prepend the UTC timestamp information in every log message.
2397+
2398+ * Modified deployPkgLog.c to use the new function.
2399+
2400+ * Removed references / definition of System_GetTimeAsString since
2401+ it is no longer used anywhere in the code.
2402+
2403+commit acbf7d90add72d9d3aa70bb8677179e7b3d28e23
2404+Author: Oliver Kurth <okurth@vmware.com>
2405+Date: Tue Mar 6 10:38:43 2018 -0800
2406+
2407+ Common header file change; not applicable to open-vm-tools.
2408+
2409+commit 87ddd2684bff33836db5667718449f42642c76e2
2410+Author: Oliver Kurth <okurth@vmware.com>
2411+Date: Tue Mar 6 10:38:43 2018 -0800
2412+
2413+ GOS Table: The official Amazon Linux 2 string is "amazonlinux2-64"
2414+
2415+ The hosted UI isn't creating an Amazon 2 VM with the correct guest OS
2416+ identifier string. Fix this.
2417+
2418+commit 91b42f829a0ddc13a1657610700332dad7a9e362
2419+Author: Oliver Kurth <okurth@vmware.com>
2420+Date: Tue Mar 6 10:38:43 2018 -0800
2421+
2422+ Fix vgauth log timestamps to have zone and use UTC
2423+
2424+commit d225ed26cca556f559c035234d11bd7d380c6d7f
2425+Author: Oliver Kurth <okurth@vmware.com>
2426+Date: Tue Mar 6 10:38:42 2018 -0800
2427+
2428+ Common header file change; not applicable to open-vm-tools
2429+
2430+commit d585ee8fcc4135d6d52fdc38ec2e0ca747663bf7
2431+Author: Oliver Kurth <okurth@vmware.com>
2432+Date: Tue Mar 6 10:38:42 2018 -0800
2433+
2434+ Compilation fixes to build Tools with VS2015
2435+
2436+ This change consists of fixing warnings/errors as a result of building Tools with VS2015.
2437+
2438+commit 03c98a1fb30513b223e3d6eafb21b5f4d4c6c5bc
2439+Author: Oliver Kurth <okurth@vmware.com>
2440+Date: Tue Mar 6 10:38:42 2018 -0800
2441+
2442+ Add timestamp information to each deploypkg log message.
2443+
2444+ * Modified deployPkgLog.c file to prepend UTC timestamp information
2445+ to each log message coming from 'deploypkg' module in 'VMware Tools'.
2446+
2447+ * Used bunch of glib functions to get the current UTC time. As per
2448+ the glib manual, these glib functions are available since 2.26. 2.26 was
2449+ released around 8 years ago which is kind of very old. Having the glib
2450+ dependency on 2.26 is OK.
2451+
2452+ * Did some minor code refactoring. In DeployPkg.c file, at all
2453+ call sites for DeployPkgLog_Log, replaced the hard coded values with
2454+ the proper LogLevel enums.
2455+
2456+commit 73a21a057dc23cf428b5fa1799eb0c5945732fee
2457+Author: Oliver Kurth <okurth@vmware.com>
2458+Date: Tue Mar 6 10:38:42 2018 -0800
2459+
2460+ Common header file change; not applicable to open-vm-tools.
2461+
2462+commit 3eb8434aebde9a2eebc65d57044d8ea6367d685f
2463+Author: Oliver Kurth <okurth@vmware.com>
2464+Date: Tue Mar 6 10:38:42 2018 -0800
2465+
2466+ Common header file change; not applicable to open-vm-tools.
2467+
2468+commit 24e9d211752210abb94bd1e76bec8be20d8abef8
2469+Author: Oliver Kurth <okurth@vmware.com>
2470+Date: Tue Mar 6 10:38:42 2018 -0800
2471+
2472+ vm_basic_types.h: enable stdint.h for c99
2473+
2474+ C99 mode (a.k.a. __STDC_VERSION__ >= 199901L) guarantees
2475+ the stdint.h header will be present, which means we can use it
2476+ for standard types instead of rolling our own.
2477+
2478+commit b4016c210e7cb6c0407d40dba5edfa64d550bef3
2479+Author: Oliver Kurth <okurth@vmware.com>
2480+Date: Tue Mar 6 10:38:41 2018 -0800
2481+
2482+ Don't lose errno/lastError when logging
2483+
2484+ guestOps need to see errno/lastError in order to return the proper
2485+ error to VIX/guestOps APIs. Logging (at any layer) can cause these
2486+ to be overwritten, so make sure they're preserved.
2487+
2488+commit 14a0ffe23be6437c9ee656ccf2d516ead6265dfd
2489+Author: Oliver Kurth <okurth@vmware.com>
2490+Date: Mon Feb 26 19:23:18 2018 -0800
2491+
2492+ Enhancing CAF listener preconfigured check logic to update the preconfigured flag at runtime
2493+
2494+ 1. Preconfigure listener and start listener upon tunnel enabled logic are
2495+ invoked in two different threads.
2496+ 2. There is a case where preconfigure logic is performed after the
2497+ pre-configured flag is computed in the enable-listener thread.
2498+
2499+ The current patch invalidates the flag in the start listener thread and
2500+ should guarantee the preconfigured status is up-to-date.
2501+
2502+commit 60f7afc97264435e1c04c2e70fe39397261b52b4
2503+Author: Oliver Kurth <okurth@vmware.com>
2504+Date: Mon Feb 26 19:22:04 2018 -0800
2505+
2506+ CAF MA Performance Issues
2507+
2508+ CAF MA Performance Issues
2509+
2510+ Vmware CAF ManagementAgentHost service was polling every 5 secs to check if Guest Network "Tunnel(port 6672)" was enabled to preconfigure & bring up Vmware CAF CommAmqpListener service.
2511+ This resulted in more CPU Utilization as opposed to previous release in CAF & caused regression in vmtools 10.2.0.
2512+ We are increasing the Poll rate to 5 mins, which fixed the issue & is giving us the same CPU/memory utilizations as in vmtools 10.1.0.
2513+
2514+ We were checking for the different stages of listener preconfiguration status from the listenerpreConfigure.txt files in the polling time interval, which caused increased IO operations.
2515+ To fix that we have stored the value of listener preconfiguration status from the files into a variable locally & using the same at all places instead of file access.
2516+
2517+commit 872baeed3fd1e79f89143baa0b9c47077b655567
2518+Author: Oliver Kurth <okurth@vmware.com>
2519+Date: Mon Feb 26 12:29:08 2018 -0800
2520+
2521+ lib/file: add File_MakeSafeTempSubdir
2522+
2523+ File_MakeSafeTempDir and File_GetSafeTmpDir are typically used to create
2524+ "safe" temp dirs on Windows and Linux. These are dirs in a known-secure
2525+ location with known-secure security attributes that only allow access to
2526+ the current user. These APIs work fine. However, on Windows if one creates
2527+ a subdir inside the safe dir, the subdir may be given an unexpected
2528+ (and overly restrictive) set of default DACLs on it in unusual situations.
2529+ The solution is to introduce a new API specifically to allow a caller to
2530+ create a subdir within an existing safe dir that ensures the DACLs
2531+ are exactly what are needed.
2532+
2533+commit bdbab22ec42544dbfff657b811d695e5b5a6d429
2534+Author: Oliver Kurth <okurth@vmware.com>
2535+Date: Mon Feb 26 12:29:08 2018 -0800
2536+
2537+ Remove the header file safetime.h
2538+
2539+ This removes the file itself.
2540+
2541+commit 047f05f379eb73530ac943d35cda5c162e045fa2
2542+Author: Oliver Kurth <okurth@vmware.com>
2543+Date: Mon Feb 26 12:29:08 2018 -0800
2544+
2545+ Common source file change; not applicable to open-vm-tools.
2546+
2547+commit 2c927bb65029cb89ba0c4b7ba9b341890166823d
2548+Author: Oliver Kurth <okurth@vmware.com>
2549+Date: Mon Feb 26 12:29:07 2018 -0800
2550+
2551+ Skip specified file systems when doing a quiesced snapshot on Linux
2552+
2553+ Add a tools.conf setting "excludedFileSystems" that specifies one or
2554+ more file system mount points to be skipped over when performing a
2555+ quiesced snapshot on Linux guests. The value of excludedFileSystems
2556+ is a comma-separated list of glob-style patterns as recognized by the
2557+ glib routines described here:
2558+
2559+ https://developer.gnome.org/glib/stable/glib-Glob-style-pattern-matching.html
2560+
2561+ With this change, when performing a quiesced snapshot, the sync driver
2562+ freeze routine removes from the list of mount points it is to process
2563+ any path that matches a pattern in the excludedFileSystems list.
2564+
2565+ In the course of testing the change, a bug was found in SyncDriverFreeze
2566+ in which it returned SD_ERROR rather than FALSE when the path list is
2567+ empty.
2568+
2569+ This change also includes some whitespace cleanup in syncDriverWin32.c.
2570+
2571+commit 9fb904dbdbd12952f2743d1463cda56a72c50c90
2572+Author: Oliver Kurth <okurth@vmware.com>
2573+Date: Mon Feb 26 12:29:07 2018 -0800
2574+
2575+ lib/file: Paranoid clear of old cached values
2576+
2577+ Rare, but an app might toggle addPid; cover this. Also optimize the
2578+ cache update.
2579+
2580+commit d244dac08f07cbbcba3f66eab7d78c16150edfba
2581+Author: Oliver Kurth <okurth@vmware.com>
2582+Date: Mon Feb 26 12:29:07 2018 -0800
2583+
2584+ lib/file: File_GetSafeTmpDir is not aware of credentials changes
2585+
2586+ Some applications may masquerade their use (change their EUID).
2587+ Futhermore, each thread in an application can have a separate EUID.
2588+
2589+ Anytime a application or thread asked for its safe temporary directory,
2590+ it needs to get the same result regardless of how many times it asks.
2591+
2592+ Change File_GetSafeTmpDir to cache the EUID associated with the cached
2593+ values. If there is an EUID change, invalidate the existing cache
2594+ entries and recompute them. The recomputation process is stable, in
2595+ that it will obtain the same return any time it is called.
2596+
2597+ This way we get the benefit of the cache (performance), ensured
2598+ correctness (for applications that do not masquerade), and correctness
2599+ for those applications that do masquerade.
2600+
2601+commit f9177b133f7f683fcc0f85770712d8069ec52421
2602+Author: Oliver Kurth <okurth@vmware.com>
2603+Date: Mon Feb 26 12:29:07 2018 -0800
2604+
2605+ Common header file change; not applicable to open-vm-tools.
2606+
2607+commit 4da56779c42a55ce1b872748f9d6fd90bd10d281
2608+Author: Oliver Kurth <okurth@vmware.com>
2609+Date: Mon Feb 26 12:29:07 2018 -0800
2610+
2611+ lib/file: Clean up POSIX File_GetSafeTempDir() in fileTempPosix.c
2612+
2613+ Make things clearer.
2614+
2615+commit f608f63948520ab2088870a800bcc62c67a416ab
2616+Author: Oliver Kurth <okurth@vmware.com>
2617+Date: Mon Feb 26 12:29:07 2018 -0800
2618+>>>>>>> open-vm-tools/ChangeLog
2619+
2620+ Changes to common header files; not applicable to open-vm-tools.
2621+
2622+<<<<<<< open-vm-tools/ChangeLog
2623+commit 3011466e0f59471292a58ba5124238898d18945a
2624+Author: Oliver Kurth <okurth@vmware.com>
2625+Date: Tue Feb 6 16:32:39 2018 -0800
2626+=======
2627+commit 5d98c8b5183e236dc8fb548647574f4b24e87d23
2628+Author: Oliver Kurth <okurth@vmware.com>
2629+Date: Mon Feb 26 12:29:07 2018 -0800
2630+>>>>>>> open-vm-tools/ChangeLog
2631+
2632+ open-vm-tools: use ENV{DEVTYPE}=="disk" in udev scsi rule
2633+
2634+ Fix udev scsi rule to not print warnings on boot.
2635+ The rule now checks for the device type. The previous fix by
2636+ trying to check for a valid timeout field did not work as expected.
2637+ This change uses the rule from Mike Latimer at
2638+ https://github.com/vmware/open-vm-tools/pull/216
2639+
2640+<<<<<<< open-vm-tools/ChangeLog
2641+commit 9da6562e0c04fa79fad726513508a628f29f4812
2642+Author: Oliver Kurth <okurth@vmware.com>
2643+Date: Tue Feb 6 16:32:39 2018 -0800
2644+
2645+ Common header file change not applicable to open-vm-tools.
2646+
2647+commit 6ccc073a58e1822dc4eb8c20e10dc89791643e9c
2648+Author: Oliver Kurth <okurth@vmware.com>
2649+Date: Tue Feb 6 16:32:39 2018 -0800
2650+
2651+ Fix memory corruption bug in StdIO_ReadNextLine
2652+
2653+commit 4f729b61b908c82318b8dcfc16264c15b58817c8
2654+Author: Oliver Kurth <okurth@vmware.com>
2655+Date: Tue Feb 6 16:32:39 2018 -0800
2656+
2657+ Common header file changes not applicable to open-vm-tools.
2658+
2659+commit 9fa726051f7efe1b7e0bab745b7bad85d1fb3efb
2660+Author: Oliver Kurth <okurth@vmware.com>
2661+Date: Tue Feb 6 16:32:39 2018 -0800
2662+
2663+ Common header file changes not applicable to open-vm-tools.
2664+
2665+commit 378c193d4a57cfed14045ffed6ea641957ed18c7
2666+Author: Oliver Kurth <okurth@vmware.com>
2667+Date: Tue Feb 6 16:32:39 2018 -0800
2668+
2669+ Common header file change not applicable to open-vm-tools.
2670+
2671+commit ba83dcff6214190f8ed545401f2bfa27650bbf07
2672+Author: Oliver Kurth <okurth@vmware.com>
2673+Date: Tue Feb 6 16:32:39 2018 -0800
2674+
2675+ Common header file change not directly applicable to open-vm-tools.
2676+
2677+commit fc922804318de417578fd08fab2e07c1d58e8de8
2678+Author: Oliver Kurth <okurth@vmware.com>
2679+Date: Tue Feb 6 16:32:39 2018 -0800
2680+
2681+ Update copyright year to 2018.
2682+
2683+commit ca39511ceb8e88254cad71e98cba5cbfff08a99d
2684+Author: Oliver Kurth <okurth@vmware.com>
2685+Date: Tue Feb 6 16:32:39 2018 -0800
2686+
2687+ UUID: Clean up UUID_PackText
2688+
2689+ Use size_t, not int.
2690+
2691+commit c358e5e181b95d872da9ffcc943cc147ae0584f8
2692+Author: Oliver Kurth <okurth@vmware.com>
2693+Date: Tue Feb 6 16:32:39 2018 -0800
2694+=======
2695+commit 65a35ec640223e4455e016c883261f514eb21492
2696+Author: Oliver Kurth <okurth@vmware.com>
2697+Date: Mon Feb 26 12:29:06 2018 -0800
2698+
2699+ Common header file change; not applicable to open-vm-tools.
2700+
2701+commit aefcbec68487e14de8938fafbf0606a9ce37b2b9
2702+Author: Oliver Kurth <okurth@vmware.com>
2703+Date: Mon Feb 26 12:29:06 2018 -0800
2704+
2705+ Skip davfs mount points during quiescing (part 2)
2706+
2707+ Refactor the change to skip davfs mount points. Capture the length
2708+ of the static URL prefixes at compile time and avoid repetitive
2709+ strlen() calls when checking each active mount point.
2710+
2711+commit f459a325c4eec2e31eddc7f74901623b30ea0525
2712+Author: Oliver Kurth <okurth@vmware.com>
2713+Date: Mon Feb 26 12:29:06 2018 -0800
2714+
2715+ Skip davfs mount points during quiescing
2716+
2717+ The davfs2 is a Linux filesystem that allows mounting a Web Distributed
2718+ Authoring and Versioning (WebDAV) network resource as a local filesystem.
2719+ On some Linux releases, the FREEZE ioctl() is rejected and quiescing
2720+ these filesystems is not attempted. On others, however, the FREEZE is
2721+ not rejected and there exists the potential of a quiescing deadlock
2722+ if the davfs2 attempts to write to its cache in /var which has already
2723+ been quiesced.
2724+
2725+ This fix is to avoid a potential deadlock by excluding davfs2 mounts
2726+ as the networking filesystem they are. Since davfs2 may be implemented
2727+ on the Linux fuse (default) or coda filesystem kernel module,
2728+ the detection of these network mounts must be based upon detection
2729+ of the URL prefix of the mounted device name.
2730+
2731+ The static function SyncDriverIsRemoteFSType() is being updated to
2732+ not only exclude remote filesystems based on filesystem type but also
2733+ to exclude davfs2 remote filesystems by the "http://" or "https://"
2734+ URL prefix on the device name. The function name is being changed
2735+ to SyncDriverIsRemoteFS().
2736+
2737+commit 3af8139cfcb4578dd9d7cd9a85301ed808775eb4
2738+Author: Oliver Kurth <okurth@vmware.com>
2739+Date: Mon Feb 26 12:29:06 2018 -0800
2740+
2741+ vm_basic_types.h: scrub FMTxx specifiers
2742+
2743+ Reduce the amount of magic in vm_basic_types.h... nowadays, any
2744+ system we support (including Tools) DEFINITELY supports C99-style
2745+ specifiers, with two exceptions: pre-vs2015 MSVC, and pre-10.13
2746+ macOS kernels.
2747+
2748+ Rip out all the pre-C99 junk. Add a few comments explaining exactly
2749+ what the caveats here are.
2750+
2751+commit 442683ac70f1f1c8665feb347be40cac5c8edd65
2752+Author: Oliver Kurth <okurth@vmware.com>
2753+Date: Mon Feb 26 12:29:06 2018 -0800
2754+
2755+ amazonlinux2-64 should use OVT only, not tar tools linux.iso.
2756+
2757+commit b4e66d7ac1f29b4d81877741c0dc85b8eeb68365
2758+Author: Oliver Kurth <okurth@vmware.com>
2759+Date: Mon Feb 26 12:29:06 2018 -0800
2760+
2761+ Common header file change; not applicable to open-vm-tools.
2762+
2763+commit 16e63100ba9aeb419d22d8ade3af1eda2e3f02c0
2764+Author: Oliver Kurth <okurth@vmware.com>
2765+Date: Mon Feb 26 12:29:05 2018 -0800
2766+
2767+ Changes to common header files; not applicable to open-vm-tools.
2768+
2769+commit f5b05ca724708bd54b5c5b7dc3f9d0d959134773
2770+Author: Oliver Kurth <okurth@vmware.com>
2771+Date: Mon Feb 26 12:29:05 2018 -0800
2772+>>>>>>> open-vm-tools/ChangeLog
2773+
2774+ Common header file change; not applicable to open-vm-tools.
2775+
2776+<<<<<<< open-vm-tools/ChangeLog
2777+commit 0ccc8b1a79bf76b9826c37b2133e5dbd4b9904dc
2778+Author: Oliver Kurth <okurth@vmware.com>
2779+Date: Tue Feb 6 16:32:38 2018 -0800
2780+
2781+ Common header file change not applicable to open-vm-tools.
2782+
2783+commit 5c6f7b09d6865496036653360301092b8672675f
2784+Author: Oliver Kurth <okurth@vmware.com>
2785+Date: Tue Feb 6 16:32:38 2018 -0800
2786+
2787+ guestOS identification: Tweak handling the LSB
2788+
2789+ The multi-standard handing code dealt with the LSB strictly. This
2790+ causes some issues with older distros that are not LSB compliant but
2791+ happened to work due to a specific behavior.
2792+
2793+ Return the LSB to "LSB and old way" and provide some specific coverage
2794+ of detaults to ensure coverage.
2795+
2796+commit 2516f528e47722faa38868d99939c825f13c2bdb
2797+Author: Oliver Kurth <okurth@vmware.com>
2798+Date: Tue Feb 6 16:32:38 2018 -0800
2799+
2800+ Restore "ufs" to the list of known filesystems
2801+
2802+ Removing extraneous #ifdef VMX86_TOOLS - #endif
2803+
2804+commit 3c453912325ead3f19b84fced65217608069ddfa
2805+Author: Oliver Kurth <okurth@vmware.com>
2806+Date: Tue Feb 6 16:32:38 2018 -0800
2807+
2808+ Restore "ufs" to the list of known filesystems
2809+
2810+ A previous change, 5074636, to remove "ufs" from the kernel also removed
2811+ "ufs" from the known list of Linux filesystems. As a result, the "ufs"
2812+ filesystems on FreeBSD and Solaris VMs cannot be seen and therefore
2813+ no disk information is available in vmsvc/get.guest output.
2814+
2815+commit aa6502a057aec571a72b971cb13cf0e9d713cddc
2816+Author: Oliver Kurth <okurth@vmware.com>
2817+Date: Tue Feb 6 16:32:38 2018 -0800
2818+
2819+ Update tools copyright to 2018
2820+
2821+commit 5af33281a66ebf0c30ad15074f931f33bda0bc9d
2822+Author: Oliver Kurth <okurth@vmware.com>
2823+Date: Tue Feb 6 16:32:38 2018 -0800
2824+
2825+ Common header file change not applicable to open-vm-tools.
2826+
2827+commit dc028e7bbb63865e1ae1c6262872e74c47c80d61
2828+Author: Oliver Kurth <okurth@vmware.com>
2829+Date: Tue Feb 6 16:32:38 2018 -0800
2830+
2831+ Common header file change that is not applicable to open-vm-tools.
2832+
2833+commit d55cc529267b0b385fc9d4453075d023c789e46f
2834+Author: Oliver Kurth <okurth@vmware.com>
2835+Date: Tue Feb 6 16:32:38 2018 -0800
2836+
2837+ Hgfs Server: replace duplicate function usage with a common function.
2838+
2839+ This change simply replaces a duplicate function usage with a common
2840+ function and removes the duplicate one.
2841+
2842+commit ccdef7096a4782dd00b6f55695aff9c3f01cf4b5
2843+Author: Oliver Kurth <okurth@vmware.com>
2844+Date: Tue Feb 6 16:32:38 2018 -0800
2845+
2846+ hostinfoPosix.c: Change a warning to a log message.
2847+
2848+commit 2321ff31fa671658ad0af3af22eef27e5d9af050
2849+Author: Oliver Kurth <okurth@vmware.com>
2850+Date: Tue Feb 6 16:32:38 2018 -0800
2851+
2852+ Switch IMC to use RpcChannel_SendOne instead of deprecated RpcOut_sendOne
2853+
2854+ Modify ./libDeployPkg/Makefile.am to build deploypkg module for
2855+ open-vm-tools correctlly.
2856+
2857+commit d9f7c825cfbe075c3b643632419ff26a72628e41
2858+Author: Oliver Kurth <okurth@vmware.com>
2859+Date: Tue Feb 6 16:32:38 2018 -0800
2860+
2861+ lib/file: Clean up a few things.
2862+
2863+commit b4ee6678c9dd8cdf4e144056545dd41ba0636085
2864+Author: Oliver Kurth <okurth@vmware.com>
2865+Date: Tue Feb 6 16:32:37 2018 -0800
2866+
2867+ hostinfoPosix.c: Pick up some review comments
2868+
2869+commit ce060ca498defdf08da4fac899dc623328d47a5d
2870+Author: Oliver Kurth <okurth@vmware.com>
2871+Date: Tue Feb 6 16:32:37 2018 -0800
2872+
2873+ GuestOS: Support the os-release standard
2874+
2875+ While bringing up Amazon Linux as a guest, it was discovered that
2876+ Amazon Linux was not LSB compilant. The LSB standard defines a way
2877+ to uniquely determine which distro one is running on. Since our code
2878+ was based on the LSB standard, we made some changes to explicitly
2879+ detect Amazon Linux and handle it as a special case.
2880+
2881+ Amazon let us know that there is a "new" standard - os-release - which
2882+ they are compliant with. One must explicitly install Amazon Linux in a
2883+ special way to obtain the LSB compliance.
2884+
2885+ Researching the "new" standard, it turned out to not be that different
2886+ than the LSB standard. Further research showed that some distros (e.g.
2887+ Ubuntu) are releasing with both standards.
2888+
2889+ This change refactors the existing code, removes the explicit Amazon
2890+ Linux checking, and accepts the os-release standard. Amazon Linux then
2891+ "just falls out".
2892+
2893+commit 6bd88d82e943d691c4312e3f2e7cef1038af7a9c
2894+Author: Oliver Kurth <okurth@vmware.com>
2895+Date: Tue Feb 6 16:32:37 2018 -0800
2896+
2897+ Reduce Vigor transport socket draining overhead
2898+
2899+ A previous change in VigorPollImpl and asyncsocket to fix a memory
2900+ leak that causes a performance regression for parallel reconfiguration of
2901+ running VMs (the kind requiring FSR). During an FSR, the connection
2902+ between hostd and the source vmx would drop and hostd would then
2903+ reconnect to the destination vmx. One source of regression is that
2904+ the buffer has to be drained when a disconnect happens and the draining
2905+ logic may potentially unregister and re-register the recv callback
2906+ multiple times. This change adds an asyncsocket function specifically
2907+ for draining recv that reduces the manipulation of callback. It
2908+ reduces the regression by up to ~50% (the effect is more pronounced with
2909+ more VMs).
2910+
2911+commit de9b602664d91c54288b91a81f6a01d7cb927fce
2912+Author: Oliver Kurth <okurth@vmware.com>
2913+Date: Tue Feb 6 16:32:37 2018 -0800
2914+
2915+ atomic: add TestSetBitVector and TestClearBitVector functions
2916+
2917+ Implement atomic set/clear bit from a byte array.
2918+
2919+ Also add missing "memory" constraint to non-atomic ClearBitVector()
2920+ and ComplementBitVector().
2921+
2922+commit 17e9209aeb4f6d3a3535b7064916f3a25b985395
2923+Author: Oliver Kurth <okurth@vmware.com>
2924+Date: Tue Feb 6 16:32:37 2018 -0800
2925+
2926+ Tools Hgfs Server Plugin: fix logging of client redirector handling functions
2927+
2928+ Modify logging of client redirector handling functions for starting the client
2929+ redirector kernel component and reconnecting mapped drives at services start
2930+ up. This changes the level from warning to info as these messages are purely
2931+ informational and not warnings of unexpected events or conditions.
2932+
2933+commit 076b7201b61af9f3dcb36050ff37a8145a05d404
2934+Author: Oliver Kurth <okurth@vmware.com>
2935+Date: Tue Feb 6 16:32:37 2018 -0800
2936+
2937+ Fix error reported by clang 6.0.0 - comparison 'int' <= 4294967295 is always true
2938+
2939+ Fix the logical constant compare warning/error in vixTools.c of the
2940+ vix plugin. Rewrite the continuous for loop to simply iterate from
2941+ zero to MAX_INT32.
2942+
2943+commit 7a58576e98e5bdb47fbe101c43b106ba77f2e811
2944+Author: Oliver Kurth <okurth@vmware.com>
2945+Date: Tue Feb 6 16:32:37 2018 -0800
2946+
2947+ Add VMware Tools 10.2.5 to vm_tools_version.h
2948+
2949+ - Add tools version 10.2.5 as the first scheduled tools 10.2.x
2950+ update - TOOLS_VERSION_CHAINSAW_UPDATE1
2951+ - Corrected a typo in a macro name in an earlier tools version
2952+ definition.
2953+
2954+commit 13c49b85cebacea847d30c4e5a0b92fa7ea9dba8
2955+Author: Oliver Kurth <okurth@vmware.com>
2956+Date: Tue Feb 6 16:32:37 2018 -0800
2957+
2958+ hostinfo: Identify Amazon Linux
2959+
2960+ Amazon Linux is not LSB compliant. Add a small amount of code such that
2961+ Amazon Linux can differentiated from all of other Linuxen and correctly
2962+ report its identifying data.
2963+
2964+commit c5bc784da611ee929e0da7c20a410e03e6540613
2965+Author: Oliver Kurth <okurth@vmware.com>
2966+Date: Fri Jan 26 15:04:36 2018 -0800
2967+
2968+ Set X11 as the backend for gtk3 of open-vm-tools
2969+
2970+ Open-vm-tools defaults to gtk3. For distros like Fedora 27, Wayland is
2971+ the default display server. With no restriction on the backend, plugins
2972+ will try to use Wayland as the backend of Gtk+3. As a result,
2973+ gdk_display_get_default() returns a Wayland display;
2974+ gdk_display_get_default_group() also returns a Wayland window. Applying
2975+ GDK_WINDOW_XID() on the Wayland window will result in the crash reported
2976+ on recent Linux releases that default to a Wayland display server.
2977+
2978+ As X11-specific code is widely used in tools plugins, a migratation to
2979+ Wayland in the short term is not possible. So, as a compromised solution,
2980+ plugins can be forced to run on XWayland, which is the compatible mode
2981+ of Wayland for legacy X11 clients.
2982+
2983+ gdk_set_allowed_backends() only applies when flag GTK3 is defined, and Gtk
2984+ version cwgreater than 3.10.
2985+
2986+commit 98e0ab52c86b3a1d4fd38cec6913b1f5ba0f336c
2987+Author: Oliver Kurth <okurth@vmware.com>
2988+Date: Fri Jan 26 15:04:36 2018 -0800
2989+
2990+ hostinfo: More cleanup
2991+
2992+ Continue the prep for Amazon Linux.
2993+
2994+commit ce769ae4aa3a14810b418c044629f2d9dcb72a37
2995+Author: Oliver Kurth <okurth@vmware.com>
2996+Date: Fri Jan 26 15:04:36 2018 -0800
2997+
2998+ hostinfo: More prep work for Amazon Linux support
2999+
3000+ Amazon Linux is not LSB compliant but it does have a file that is
3001+ much like an LSB compliant release (name=value pairs). Make the names
3002+ of the structures generic... the logic can be reused for Amazon Linux
3003+ in a follow up change.
3004+
3005+ Fix up some function headers.
3006+
3007+commit 7fce1b8f9ec60c27865717f536a4e440587500ad
3008+Author: Oliver Kurth <okurth@vmware.com>
3009+Date: Fri Jan 26 15:04:36 2018 -0800
3010+
3011+ Refactor HostinfoOSData...
3012+
3013+ Refactor the HostinfoOsData in several smaller and simpler routines.
3014+ This will make it easier to maintain in the future (it was pretty
3015+ unwieldy already) and easier to add the logic for a non-LSB Linux.
3016+
3017+ More refactoring and actually adding the Amazon recognition code will
3018+ follow.
3019+
3020+commit b2b71c7995f4389cd7a9899dca8aa29bd9fa9c6a
3021+Author: Oliver Kurth <okurth@vmware.com>
3022+Date: Fri Jan 26 15:04:36 2018 -0800
3023+
3024+ Common header file change not applicable to open-vm-tools.
3025+
3026+commit 40bcee40c892cc7de92825cce1226576d6eab66c
3027+Author: Oliver Kurth <okurth@vmware.com>
3028+Date: Fri Jan 26 15:04:35 2018 -0800
3029+
3030+ Changes to common source files:
3031+
3032+ lib/asyncsocket/asyncsocket.c: Use ASSERT instead of VERIFY when removings
3033+ poll callback in AsyncSocketCancelRecv.
3034+ lib/include/vm_product_versions.h: Change not applicable to open-vm-tools.
3035+
3036+commit 757833d601541e9bde24571fa22e669900e98a7e
3037+Author: Oliver Kurth <okurth@vmware.com>
3038+Date: Fri Jan 26 15:04:35 2018 -0800
3039+
3040+ Change the glibc constraint to 2.11 from 2.12.
3041+
3042+ Earlier, we made a change to stop building open-vm-tools
3043+ for LINUX systems with glibc < 2.12 But SLES 11 SP4 which is
3044+ supported comes with glibc 2.11.3 The check will
3045+ block SLES 11 SP4 from moving to OVT 10.2.x To fix it, this change
3046+ relaxes the glibc constraint to 2.11.
3047+
3048+commit 75825dcc7548d779f23c4c93429736d690d86a45
3049+Author: Oliver Kurth <okurth@vmware.com>
3050+Date: Fri Jan 26 15:04:35 2018 -0800
3051+
3052+ Hgfs: remove Hgfs VMCI transport header from linux open-vm-tools
3053+
3054+ Linux Hgfs clients do not use the VMCI module for a transport and have
3055+ since migrated to a FUSE implementation. Therefore we do not need to
3056+ include the Hgfs VMCI transport header file.
3057+
3058+commit 09b6621863ece170e4fc6b617f0bc1e3d17867f2
3059+Author: Oliver Kurth <okurth@vmware.com>
3060+Date: Fri Jan 26 15:04:35 2018 -0800
3061+
3062+ Hgfs Server: fix error result for new dir creation in the virtual folder
3063+
3064+ The Hgfs server code detects when a client tries to create a new folder in the
3065+ virtual folder containing the VMware Shares. This is not allowed as only the
3066+ host can add new Shares which appears in this folder. The current error code
3067+ returned to the client in these cases is access denied. This is only correct
3068+ when the new folder does not collide with an existing share. This stops clients
3069+ treating the virtual folder as a regular read/write physical folder. However,
3070+ for the case where the name collides, the access denied error is not correct,
3071+ as it does not tell the client the folder already exists. This causes some
3072+ applications to fail as they expect to see this error if the path component
3073+ exists as that is okay and expected. At this point the application will continue
3074+ to traverse the path and ensure the next component exists or if not create that.
3075+
3076+ To ensure that applications don't prematurely fail and can test that the share
3077+ still exists in the path the Hgfs server should return HGFS_ERROR_FILE_EXIST
3078+ and leave HGFS_ERROR_ACCESS_DENIED for all other cases.
3079+
3080+commit fb3630fb0d7846b9f06f0c506c38eadf0cfbfa81
3081+Author: Oliver Kurth <okurth@vmware.com>
3082+Date: Fri Jan 26 15:04:35 2018 -0800
3083+
3084+ Hgfs: get rid of vmware_pack_begin and vmware_pack_end header files
3085+
3086+ Get rid of vmware_pack_begin and vmware_pack_end header files and
3087+ replace with the pragma pack and pop. This code currently only
3088+ affects Windows clients and the VMX HGFS VMCI transport.
3089+
3090+commit f7c551253400e7f153cc696b5b121cd6e0d4ebd8
3091+Author: Oliver Kurth <okurth@vmware.com>
3092+Date: Fri Jan 26 15:04:35 2018 -0800
3093+
3094+ GOSTable: Amazon Linux 2
3095+
3096+ Add the basic support for Amazon Linux 2. The distro identification
3097+ code will follow in a separate change.
3098+
3099+commit c8f7c09d106884c19100077fdffe8f11b80d6bdb
3100+Author: Oliver Kurth <okurth@vmware.com>
3101+Date: Fri Jan 5 14:47:15 2018 -0800
3102+
3103+ Changes to common header files not applicable to open-vm-tools
3104+
3105+commit 5939eaefbad529e811c64b46d93ddcce56615db8
3106+Author: Oliver Kurth <okurth@vmware.com>
3107+Date: Fri Jan 5 14:47:15 2018 -0800
3108+
3109+ Common header file change not applicable to open-vm-tools
3110+
3111+commit 55f323265bb7aee605a40f289f9c1a8ba7be56c6
3112+Author: Oliver Kurth <okurth@vmware.com>
3113+Date: Fri Jan 5 14:47:15 2018 -0800
3114+
3115+ Common header file change not applicable to open-vm-tools
3116+
3117+commit d42e5bf76689c820dfb84d681c007c96197f6182
3118+Author: Oliver Kurth <okurth@vmware.com>
3119+Date: Fri Jan 5 14:47:15 2018 -0800
3120+
3121+ Common header file change not applicable to open-vm-tools.
3122+
3123+commit 90819beef53238ba108be35cba93329b9d160de7
3124+Author: Oliver Kurth <okurth@vmware.com>
3125+Date: Fri Jan 5 14:47:15 2018 -0800
3126+
3127+ Get rid of convertutf and bsd_printf for all non-Win VMware Tools
3128+
3129+ The MsgFmt_* functions are referenced in a few utilities
3130+ related to VMware Tools. This change replaces the MsgFmt_*
3131+ with a stub. This also affects the Windows version.
3132+
3133+commit e5e478d46f047aa8f22b427b9d4505581af9915a
3134+Author: Oliver Kurth <okurth@vmware.com>
3135+Date: Fri Jan 5 14:47:15 2018 -0800
3136+
3137+ Fix the SSL/AsyncSocket "SSL_shutdown:shutdown while in init" problem
3138+
3139+ QE regression tests have caught a bug in the bora SSL/AsyncSocket
3140+ layer. A normal SSL connection could be abnormally terminated by some
3141+ other random connections.
3142+
3143+ Seems a common bug of the SSL usage according to the link below.
3144+ VMware is not the first one to hit it. :-)
3145+ https://marc.info/?l=openssl-users&w=4&r=1&s=shutdown+while+in+init&q=b
3146+
3147+ The cause is that the SSL error queue was not cleared before
3148+ calling the SSL IO functions like SSL_write,read,connect,accept.
3149+ Refer to the man page of SSL_get_error, Paragraph 2 of the Description.
3150+ Fixed the problem by adding addtional call to clear the error queue.
3151+
3152+ Found another problem that the system error is not preserved between
3153+ where it is set after the SSL IO call and the use of it to determine
3154+ whether to retry the SSL IO. This is probably due to tools has its
3155+ own logging which does not preserve the system error number.
3156+ Fixed the logging.
3157+
3158+commit 8a9c43698ebcc858314ec1c041d24b8e8d1372cf
3159+Author: Oliver Kurth <okurth@vmware.com>
3160+Date: Fri Jan 5 14:47:15 2018 -0800
3161+
3162+ vm_basic_types.h: use stdint.h a little more.
3163+
3164+ Now that enough of the builds are C++11, let's make the common case
3165+ use the <stdint.h> header to define the intNN types directly
3166+ from language-standard intNN_t types, and treat pre-C99/C++98
3167+ code as the special case.
3168+
3169+ This also provides some clarity about the last __STRICT_ANSI__
3170+ macros in this file. One was related to usage of 'long long' in
3171+ strict c90 mode and has been replaced with a comment indicating that
3172+ 64-bit-variable compiler extensions are mandatory (strict c90 mode is
3173+ not allowed via the headers). The other related to X11 headers; those
3174+ headers have been examined to understand the workarounds needed and
3175+ the exact scenario(s) that are problematic have been commented (turns
3176+ out FreeBSD had nothing to do with the problem).
3177+
3178+ Finally, all the Bool-related definitions have been moved and merged
3179+ to a single location NOT at the top of the file.
3180+
3181+ Net effects of this change:
3182+ - non-linux C++11 (so Windows+Mac) now uses stdint.h
3183+ - exact set of macros involved in declaring Bool is reduced
3184+ - compiling with c90 mode really will break now (use gnu90 instead).
3185+
3186+commit 2674b02449875b04889be00400f52351105ab25f
3187+Author: Oliver Kurth <okurth@vmware.com>
3188+Date: Fri Jan 5 14:47:15 2018 -0800
3189+
3190+ Consume vmx headear files in bora tree instead of gosc's own copy
3191+
3192+ 1. Consuming header files from bora/vmx instead of gosc/vmx
3193+ 2. Deprecated "gosc/vmx/public/toolsdDeployPkg.h",
3194+ use "bora/guestABI/include/vmware/guestrpc/deploypkg.h" instead.
3195+ Combined macro definition to the new header file and modified
3196+ reference accordingly.
3197+ 3. Modified makefile for open-vm-tools to consume new header file,
3198+ removed old header file staging in open-vm-tools.stage
3199+
3200+commit bd018012a08579e89209e23b69963937210e5182
3201+Author: Oliver Kurth <okurth@vmware.com>
3202+Date: Fri Jan 5 14:47:15 2018 -0800
3203+
3204+ Common header file change not applicable to open-vm-tools
3205+
3206+commit 36929119b9e28df8e267c49b5661354253439215
3207+Author: Oliver Kurth <okurth@vmware.com>
3208+Date: Fri Jan 5 14:47:15 2018 -0800
3209+
3210+ Remove some __STRICT_ANSI__ guards in vm_basic_types.h
3211+
3212+ Some time in the distant past, these guards were needed to
3213+ work around... something. (Probably, it was that 'long long'
3214+ is not a valid type in strict c90 mode). Note that we don't
3215+ use c90 mode, we only use gnu90 or c99.
3216+
3217+ This ends up being relevant because for C++ we are indeed
3218+ using -std=c++11 (which implies __STRICT_ANSI__). The Linux/C++
3219+ section of this file thus had duplicate definitions (which I am
3220+ now removing) to work around the gap.
3221+
3222+ Quick cheat sheet for -std= values:
3223+ - c90 := __STRICT_ANSI__, no long long type
3224+ - gnu90 := c90 + gcc extensions, has long long type
3225+ - c99 := __STRICT_ANSI__, has long long type (defined in c99)
3226+ - c++11 := __STRICT_ANSI__, has long long type (defined in C++11)
3227+
3228+commit 6b1ef0ef99f34011da3f5383414eeedf81c59d3b
3229+Author: Oliver Kurth <okurth@vmware.com>
3230+Date: Fri Jan 5 14:47:15 2018 -0800
3231+
3232+ open-vm-tools: fix finding C++ compiler for cross-compiling
3233+
3234+ Patch contributed by Andrew Stormont (andy-js) on github:
3235+ https://github.com/vmware/open-vm-tools/pull/206 and
3236+ https://github.com/vmware/open-vm-tools/issues/92.
3237+
3238+commit df18c2c2c3e7dde4478ee68a5f4a96600a3d07a2
3239+Author: Oliver Kurth <okurth@vmware.com>
3240+Date: Fri Jan 5 14:47:14 2018 -0800
3241+
3242+ Allow copying of object policy within the same container
3243+
3244+ ObjLib_CloneExtParams is currently not allowing copying of policy from
3245+ parent to child/clone object on VSAN. This is because the copy policy
3246+ check is based on unique filesystem ID, which will be different for
3247+ parent and child on VSAN because they will mostly be created on same
3248+ container but different namespace. This change uses VCFS root instead
3249+ of namespace UUID to make the comparison on VSAN.
3250+
3251+ Bonus fix: File_FullPath is now fixed to work for any combination of
3252+ ancestor path being present. Currently it only works if either the
3253+ given path exists, or when only the last component of the path does
3254+ not exist. And since this fix relies on finding the VCFS root of both
3255+ parent and child (parent is present but child is not),
3256+ ObjLibPathToVCFSRoot has been modified to rely on File_FullPath in
3257+ addition to Util_GetCanonicalPath if the path does not exist.
3258+
3259+commit a678f3ea9f6de366b3b3de2f99956d93d2216b08
3260+Author: Oliver Kurth <okurth@vmware.com>
3261+Date: Fri Jan 5 14:47:14 2018 -0800
3262+
3263+ Correction to previous change for Solaris11_64 GOS.
3264+
3265+commit 74eb0c942f78f775c9de2bfd0e4f9970a8cded51
3266+Author: Oliver Kurth <okurth@vmware.com>
3267+Date: Fri Jan 5 14:47:14 2018 -0800
3268+
3269+ Properly classify Solaris 11-64 as 64-bit
3270+
3271+commit 47e604c2dba131c13300fe15bf4ad69d5b996674
3272+Author: Oliver Kurth <okurth@vmware.com>
3273+Date: Mon Dec 4 16:27:21 2017 -0800
3274+
3275+ Common header file change; not applicable to open-vm-tools.
3276+
3277+commit 584aa9f307c85b07fa8adaf113e87cc3c200cca9
3278+Author: Oliver Kurth <okurth@vmware.com>
3279+Date: Mon Dec 4 16:27:21 2017 -0800
3280+
3281+ Common header file change; not applicable to open-vm-tools.
3282+
3283+commit 976e505b4ad5233f4eb97c7e09be63f6b0662fc7
3284+Author: Oliver Kurth <okurth@vmware.com>
3285+Date: Mon Dec 4 16:27:21 2017 -0800
3286+
3287+ Common header file change; not applicable to open-vm-tools.
3288+
3289+commit 96f90f19e87cfb9b1dd62d30f4b88333d973bb90
3290+Author: Oliver Kurth <okurth@vmware.com>
3291+Date: Mon Dec 4 16:27:21 2017 -0800
3292+
3293+ open-vm-tools: add missing copyright headers
3294+
3295+commit 124c6437b0fcac3e65a7748f336e8b47d9528767
3296+Author: Oliver Kurth <okurth@vmware.com>
3297+Date: Mon Dec 4 16:27:21 2017 -0800
3298+
3299+ Common header file change; not applicable to open-vm-tools.
3300+
3301+commit 11ff20501da5a4a4a6bcc05797b0129462cafc95
3302+Author: Oliver Kurth <okurth@vmware.com>
3303+Date: Mon Dec 4 16:27:21 2017 -0800
3304+
3305+ Common header file change; not applicable to open-vm-tools.
3306+
3307+commit 3dc2785d95c6b6ca42161c270fc9b3f17764ff2d
3308+Author: Oliver Kurth <okurth@vmware.com>
3309+Date: Mon Dec 4 16:27:21 2017 -0800
3310+
3311+ Common header file change; not applicable to open-vm-tools.
3312+
3313+commit 525f5824a48d8856ec30250d73a99da9fea2c39f
3314+Author: Oliver Kurth <okurth@vmware.com>
3315+Date: Mon Dec 4 16:27:21 2017 -0800
3316+
3317+ Common header file change; not applicable to open-vm-tools.
3318+
3319+commit fe6997afdc10d3bd7396c7dea7417523851166d6
3320+Author: Oliver Kurth <okurth@vmware.com>
3321+Date: Mon Dec 4 16:27:20 2017 -0800
3322+
3323+ Update the Tools-10.2.0 GA Open Source License Files.
3324+
3325+commit 9ac30cc60efd96556df21e87d5e8a42c7057fc95
3326+Author: Oliver Kurth <okurth@vmware.com>
3327+Date: Mon Dec 4 16:27:20 2017 -0800
3328+
3329+ RpcVMX: Report driver name and driver version to vmx to store the key-value in
3330+ GuestVars, and write a log in vmware.log using RpcVMX_Log.
3331+
3332+commit 1667bc143164a6709debca423e4be0241e3275db
3333+Author: Oliver Kurth <okurth@vmware.com>
3334+Date: Mon Dec 4 16:27:20 2017 -0800
3335+
3336+ GuestInfo: skip check for shrinkable disk when gathering disk info
3337+
3338+ Some Linux OSes may have a non-existing device mounted to a filesystem,
3339+ for example Photon OS has the root file system mounted from
3340+ /dev/root, which does not exist. The wiper library does a check
3341+ for a shrinkable disk, and this fails. This change skips the check
3342+ when gathering data for diskinfo, but leaves it intact for
3343+ other disk wiper purposes. Information from read-only flesystems
3344+ will also be reported.
3345+
3346+commit 35b115033acb5c65e22bd4e44b90d6d69a6815c6
3347+Author: Oliver Kurth <okurth@vmware.com>
3348+Date: Mon Dec 4 16:27:20 2017 -0800
3349+
3350+ FileIO: Add customizable privileged file opener for Apple. The change is
3351+ not applicable to open-vm-tools.
3352+
3353+commit eb8456de3ddb41ecc7155c447e4bac17ca440a5d
3354+Author: Oliver Kurth <okurth@vmware.com>
3355+Date: Mon Dec 4 16:27:20 2017 -0800
3356+
3357+ Make AutoCPtr's constructor explicit to make it more obvious when
3358+ pointer ownership is transferred. (This also matches std::auto_ptr.)
3359+
3360+commit 29c40dee7848e52437b5dab2ed466771a15df13b
3361+Author: Oliver Kurth <okurth@vmware.com>
3362+Date: Thu Nov 30 15:38:04 2017 -0800
3363+
3364+ Make logfiles readable only by admin/root.
3365+
3366+commit 989d96498a370034423515d3818fd02749677097
3367+Author: Oliver Kurth <okurth@vmware.com>
3368+Date: Thu Nov 30 15:38:04 2017 -0800
3369+
3370+ Common header file change not applicable to open-vm-tools.
3371+
3372+commit c4387fa58c21a0174a9cd6b053e565aea2c4870f
3373+Author: Oliver Kurth <okurth@vmware.com>
3374+Date: Thu Nov 30 15:38:04 2017 -0800
3375+
3376+ Common header file change not applicable to open-vm-tools.
3377+
3378+commit e2f15a777d241f468f5ca2bc0b608f3ecb71fc6a
3379+Author: Oliver Kurth <okurth@vmware.com>
3380+Date: Thu Nov 30 15:38:04 2017 -0800
3381+
3382+ Common header files change not applicable to open-vm-tools.
3383+
3384+commit d3c3a4d3e9d97e09b07018df2dccb4b4b2c4dd1b
3385+Author: Oliver Kurth <okurth@vmware.com>
3386+Date: Thu Nov 30 15:38:04 2017 -0800
3387+
3388+ Common header file change that is not applicable to open-vm-tools.
3389+
3390+commit 9a08115f6b111445f57302651f7fcb1e4f11e907
3391+Author: Oliver Kurth <okurth@vmware.com>
3392+Date: Thu Nov 30 15:38:04 2017 -0800
3393+
3394+ Changes to common header files not directly applicable to open-vm-tools.
3395+
3396+commit a8f4c5ada9852dfdb251715f3785b1fee45b8f67
3397+Author: Oliver Kurth <okurth@vmware.com>
3398+Date: Thu Nov 30 15:38:04 2017 -0800
3399+
3400+ Change to common header file; not applicable to open-vm-tools.
3401+
3402+commit 443f07aab7c60df74e1731127921b92447c86d61
3403+Author: Oliver Kurth <okurth@vmware.com>
3404+Date: Thu Nov 30 15:38:04 2017 -0800
3405+
3406+ Typo correction in common header file comment.
3407+
3408+commit a5d480e471fe4e0e73f6be28ab65f6ecde64f775
3409+Author: Oliver Kurth <okurth@vmware.com>
3410+Date: Thu Nov 30 15:38:03 2017 -0800
3411+
3412+ Improve diskinfo debug output
3413+
3414+ Add more debug information so that it is easier to figure out why some
3415+ partitions are not being found.
3416+
3417+commit 08abcfc9cc08c758a8189e69e7f99ab270a2e553
3418+Author: Oliver Kurth <okurth@vmware.com>
3419+Date: Thu Nov 30 15:38:03 2017 -0800
3420+
3421+ Make VigorPollImpl FD-based callbacks non-periodic (take 3)
3422+
3423+ The previous attempt reveals another pre-existing issue. An fd that is
3424+ closed by AsyncSocket may be reused right away. The SharedStream for
3425+ that fd may still have an outstanding callback that needs to fire
3426+ before it would be destroyed. If the destruction happens after the fd
3427+ is re-used and the new owner is using boost asio stream, the Release()
3428+ call would cancel the async read/write operation for the new owner.
3429+ One simple fix is to dup the fd when creating a SharedStream. This
3430+ means hostd would need 2 fds for each running VM. The hostd fd limit
3431+ is currently 4096 and I was able to power on 1K VMs. If necessary, the
3432+ fd limit can be increased (the system limit is 32K).
3433+
3434+ Previous description:
3435+
3436+ The original change has an issue on Linux that is not observed in ESX.
3437+ When the read and write callbacks fire in parallel, both would release
3438+ the reference to the SharedStream, triggering its destructor. Later
3439+ when the read callback tries to re-register itself, it would hit a
3440+ boost exception. To avoid that, I delayed the reset of
3441+ CallbackFD::stream to the end of Invoke so that the SharedStream
3442+ object woudl not be destroyed as long as the callback is re-registered.
3443+
3444+ Original description:
3445+
3446+ The hard-to-reproduce AsyncSocket leak turns out to be a variation of
3447+ PR 1530561. The fix for that bug only plugs the leak when the race is
3448+ between a VigorPollImpl callback that fires with an CanceledException
3449+ (which can be triggered by another callback registered on the same fd --
3450+ this is the boost behavior) and a thread trying to unregister the same
3451+ callback (e.g. upon detection of a disconnect). There is still a
3452+ potential reference leak when the read and write callbacks run in
3453+ parallel, if a disconnection happens between the two asyncsocket
3454+ callbacks (the asyncsocket callbacks take the asyncsocket lock, so they
3455+ are mostly serialized). The second asyncsocket callback handling the
3456+ disconnect error would unregister the first callback while the first
3457+ callback would be attempting to re-register itself at the VigorPollImpl
3458+ level (to provide the periodic behavior exposed by IVmdbPoll). If the
3459+ unregister wins the race, it would return false because the callback
3460+ cannot be cancelled (it is running). Then ReRegister would not find
3461+ the callback in the hash table, so the callback would not fire again,
3462+ which means the reference taken when registering the callback is leaked.
3463+
3464+ Applying the fix for PR 1530561 in the above scenario would not work
3465+ because an AsycnSocket callback may unregister itself and in that case
3466+ the reference is appropriately released. Unless we save the thread ID
3467+ in Unregister, we would not be able to distinguish when the callback
3468+ needs to run in order to release the reference. After considering
3469+ various options, I believe trying to support periodic fd-based
3470+ callbacks on top of a multi-threaded poll API is troublesome. This
3471+ change adds a poll flag for one-shot callbacks and used that in
3472+ AsyncSocket with IVmdbPoll. VigorPollImpl only support the one-shot
3473+ behavior. In the long term I would like to retire IVmdbPoll and create
3474+ a new poll interface. For now I would like to minimize churn while
3475+ fixing the memory leak.
3476+
3477+commit 595f5add83e8fbf1ffcabd7537d294c1c9c4edfe
3478+Author: Oliver Kurth <okurth@vmware.com>
3479+Date: Thu Nov 30 15:38:03 2017 -0800
3480+
3481+ Fix memory leak in vmtoolsd.
3482+
3483+commit 884aa32f9c9f773957275e09cd6620598185718a
3484+Author: Oliver Kurth <okurth@vmware.com>
3485+Date: Thu Nov 30 15:38:03 2017 -0800
3486+
3487+ Tools: GuestInfo: ESX: dynamically load libvmkmemstats.so
3488+
3489+ The new version of the vmware tools will be installed on older version
3490+ of ESX. But these older versions do not come with libvmkmemstats.so
3491+ and a dynamic linking error occurs.
3492+
3493+ This patch changes the code to deal with the case where the lib is not
3494+ available. Instead of relying on the linker to dynamically link with
3495+ libvmkmemstats.so, g_module_open() is used to open the library, if
3496+ available, and gracefully handle any eventual errors.
3497+ Before the patch, the whole libguestinfo would stop working and after
3498+ the patch only the memory stats are unavailable.
3499+
3500+commit 6151fbafe8714c15614dd254ff8816cd28620f3c
3501+Author: Oliver Kurth <okurth@vmware.com>
3502+Date: Thu Nov 30 15:38:03 2017 -0800
3503+
3504+ Correcting the few copyright notice added to a few CAF related files bundled in Open-VM-Tools.
3505+
3506+commit 23cfd0c0fc03c36b83c47614037f85ff98806b86
3507+Author: Oliver Kurth <okurth@vmware.com>
3508+Date: Thu Nov 30 15:38:03 2017 -0800
3509+
3510+ Adding copyright notice to a few CAF related files bundled in Open-VM-Tools.
3511+
3512+commit 6056c840a4a5593a3f4a87acc175b5eac3ce23dc
3513+Author: Oliver Kurth <okurth@vmware.com>
3514+Date: Tue Oct 24 14:07:36 2017 -0700
3515+
3516+ DragNDrop plugin change for VMware Tools on Windows; not applicable to
3517+ open-vm-tools.
3518+
3519+commit 965dbcad8680e32a8b093715b29656505a8eaf44
3520+Author: Oliver Kurth <okurth@vmware.com>
3521+Date: Tue Oct 24 14:07:36 2017 -0700
3522+
3523+ GuestInfo: add primary-nics and low-priority-nics options
3524+
3525+ Add the options 'primary-nics' and 'low-priority-nics' for GuestInfo.
3526+
3527+ The options accept a list of comma separated patterns for interface names
3528+ which can be considered as 'primary' or 'low priority' network interfaces.
3529+ This will cause the NicInfo to be put on top of the list for primary
3530+ interfaces, and to the bottom for low priority interfaces.
3531+
3532+ Example:
3533+
3534+ primary-nics=eth1
3535+
3536+ will make sure that the IP address(es) for eth1 will be sorted on
3537+ top of the list of IP addresses.
3538+
3539+ primary-nics=eth*
3540+
3541+ will make sure that any one of the addresses of all interfaces
3542+ matching eth* will be sorted on top of the list of IP addresses,
3543+ but won't guarantee which one if there is more than one.
3544+
3545+ low-priority-nics=eth*
3546+
3547+ will work analogously, but interfaces will be sorted to the bottom.
3548+
3549+ In case the limit of the number of interfaces to be reported is reached,
3550+ low priority interfaces are the first to be skipped.
3551+
3552+commit b5c64af227b2eea0f23f2c8f3cf40c5d24c8548f
3553+Author: Oliver Kurth <okurth@vmware.com>
3554+Date: Tue Oct 24 14:07:35 2017 -0700
3555+
3556+ VGAuth changes:
3557+
3558+ - add calling LoadUserProfile()/UnloadUserProfile() in VGAuth
3559+ impersonation/unimpersonation code paths
3560+ - VMTools side code change to use the new VGAuth SDK.
3561+
3562+commit cc18f0829bbf9d61b36f6c292a2f4fb9b9618812
3563+Author: Oliver Kurth <okurth@vmware.com>
3564+Date: Tue Oct 24 14:07:35 2017 -0700
3565+
3566+ VGAuth changes:
3567+
3568+ - add calling LoadUserProfile()/UnloadUserProfile() in VGAuth
3569+ impersonation/unimpersonation code paths
3570+ - VGAuth part of code change plus tools vix plugin make file.
3571+
3572+commit 4b0af4d8b889eccd0fbc18d63698c95f83be1ca3
3573+Author: Oliver Kurth <okurth@vmware.com>
3574+Date: Tue Oct 24 14:07:35 2017 -0700
3575+
3576+ [Tools] Fix crash issue when stopping vmtoolsd(vmuser)
3577+
3578+ When stopping vmtoolsd, the code tries to unload all plugins. The
3579+ signal TOOLS_CORE_SIG_CAPABILITIES is emitted before really starting
3580+ to unload plugins. If the plugin should try to call RpcChannel_Send
3581+ while processing the signal and the RPC channel has been shutdown, an
3582+ ASSERT is triggered. The fix is to check whether rpc exists and if
3583+ unavailable, avoid sending the TOOLS_CORE_SIG_CAPABILITIES signal.
3584+
3585+commit 13438dc9ab2af20587e003bc7f8ba088dc2d3ed8
3586+Author: Oliver Kurth <okurth@vmware.com>
3587+Date: Tue Oct 24 14:07:35 2017 -0700
3588+
3589+ Update copyright year to 2017 for open-vm-tools 10.2.0.
3590+
3591+commit a94ed0b8af8afc7d446312c3b391f336421bd4c3
3592+Author: Oliver Kurth <okurth@vmware.com>
3593+Date: Tue Oct 24 14:07:33 2017 -0700
3594+
3595+ Add SUSE Server for SAP Applications to hostinfoPosix.c
3596+
3597+ On SLES-SP1-SAP the "lsb_release -sd" command returns the string
3598+ "SUSE Linux Enterprise Server for SAP Applications 12 SP1".
3599+ Parsing in HostinfoGetOSShortName() detects the sub-strings "suse"
3600+ and "enterprise" but not "server 12". STR_OS_SLES is returned
3601+ resulting in displaying of "SUSE Linux Enterprise 8/9" in the
3602+ summary screen of the vSphere client. This is wrong.
3603+
3604+ Instead, search for the sub-string "server for sap applications 12"
3605+ and return STR_OS_SLES_12. SLES11-SAP is not affected.
3606+
3607+ Please see: github.com/vmware/open-vm-tools/pull/123
3608+
3609+commit 2aba22668d4f61ddad7dff2a3e872458bf64e67a
3610+Author: Oliver Kurth <okurth@vmware.com>
3611+Date: Tue Oct 24 14:07:33 2017 -0700
3612+
3613+ lib/file: Enhance File_EnsureDirectoryEx to do more checking
3614+
3615+ When creating a directory, distinguish whether an EEXIST error is
3616+ because the directory already exists or because there is a file with
3617+ that path name. Return the appropriate error.
3618+
3619+commit c579e664050ddd35e975b4a7fa18beb74f2decdc
3620+Author: Oliver Kurth <okurth@vmware.com>
3621+Date: Tue Oct 24 14:07:33 2017 -0700
3622+
3623+ VMware Tools 10.2.0 L10n changes for VGAuth.
3624+
3625+commit 07973b8c75feafba8c5ea400a87d0f03cdea744d
3626+Author: Oliver Kurth <okurth@vmware.com>
3627+Date: Tue Oct 24 14:07:33 2017 -0700
3628+
3629+ Common header file changed; not applicable to open-vm-tools.
3630+
3631+commit b88ff280ea0ea778ef9a4e422129bbf66291be73
3632+Author: Oliver Kurth <okurth@vmware.com>
3633+Date: Tue Oct 24 14:07:33 2017 -0700
3634+
3635+ lib/file: Reduce the create directory spam
3636+
3637+ The lib/file primitives (e.g. create file, create directory) may fail -
3638+ but they also return errno/GetLastError. The caller should inspect a
3639+ failure and decide what to do (or log). The lib/file primitives should
3640+ not log. The client should do that. The primitives are the high
3641+ performance path and failure isn't necessarily a failure, only the
3642+ client can decide.
3643+
3644+ The lib/file primitives (e.g. create file, create directory) may fail -
3645+ but they also return errno/GetLastError. The caller should inspect a
3646+ failure and decide what to do (or log). The lib/file primitives should
3647+ not log. The client should do that. The primitives are the high
3648+ performance path and failure isn't necessarily a failure, only the
3649+ client can decide.
3650+
3651+commit 8bdee4f53760e3a63a890653a0960c09b9258db9
3652+Author: Oliver Kurth <okurth@vmware.com>
3653+Date: Tue Oct 24 14:07:33 2017 -0700
3654+
3655+ Misc GuestOS ID fixes.
3656+
3657+ - Centos8 64bit guest will have linux 4.x. Moved Centos8-64 guest id
3658+ from all3xlinux64 to all4xlinux64 guest list.
3659+ - oracle8_64 is missing in the list. Added it to all4xlinux64 guest list.
3660+ - Photon has linux 4.x. Moved photon from all3xlinux64 to all4xlinux64
3661+ guest list.
3662+
3663+ - Changed the HostinfoOSData() function to return other4xlinux for
3664+ the distros where the version cannot be determined.
3665+
3666+commit 2ca8abc426c42e3ad7c05fd22e38ca04d6cc5e86
3667+Author: Oliver Kurth <okurth@vmware.com>
3668+Date: Tue Oct 24 14:07:33 2017 -0700
3669+
3670+ Bump imgcust version to 8.4.0.xxxx
3671+
3672+commit 921f05729bdbcb83a98ab1a28641baabd095af97
3673+Author: Oliver Kurth <okurth@vmware.com>
3674+Date: Tue Oct 24 14:07:33 2017 -0700
3675+
3676+ Back out commit d2c18c44...: Make VigorPollImpl FD-based callbacks non-periodic
3677+
3678+ Yet another issue is exposed by the change. This is a clean backout
3679+ but keeping the cleanupOnError fix in SharedStreamFactory::Get.
3680+
3681+commit e373c1ca328f78581d915940bd7e98abdb76a089
3682+Author: Oliver Kurth <okurth@vmware.com>
3683+Date: Tue Oct 24 14:07:32 2017 -0700
3684+
3685+ open-vm-tools: make building with gtk3 the default
3686+
3687+ This makes building with gtk3 the default, and sets sane
3688+ defaults when building with/without gtk2/gtk3.
3689+
3690+commit 3455478483a6f8e810c00519b6611020e25fee83
3691+Author: Oliver Kurth <okurth@vmware.com>
3692+Date: Tue Oct 24 14:07:32 2017 -0700
3693+=======
3694+commit 783e87e2a465d28db5233e7d1e284fa9410ffec4
3695+Author: Oliver Kurth <okurth@vmware.com>
3696+Date: Mon Feb 26 12:29:05 2018 -0800
3697+
3698+ Remove uses of header file safetime.h
3699+
3700+ - (many places) replace "safetime.h" with <time.h> and/or <sys/stat.h>,
3701+ occasionally re-ordering this header to top of file
3702+ - (many places) remove "safetime.h" as no time functions are used
3703+
3704+commit bf31e9478b99b5713f2c330e48d2e40c5091d3bc
3705+Author: Oliver Kurth <okurth@vmware.com>
3706+Date: Mon Feb 26 12:29:04 2018 -0800
3707+
3708+ Common header file change; not applicable to open-vm-tools.
3709+
3710+commit cbdbeef4b6c3454f58e9733079140edcc30fdb2a
3711+Author: Oliver Kurth <okurth@vmware.com>
3712+Date: Mon Feb 26 12:29:03 2018 -0800
3713+
3714+ Remove GLIBC_VERSION_NN macros
3715+
3716+ No existing usages. Astute observers will note we currently
3717+ use glibc-2.5 minimum (so all but one of these macros are ALWAYS
3718+ defined).
3719+
3720+commit eec6e2798def2e9ff6da5e73b092cfe92e60b763
3721+Author: Oliver Kurth <okurth@vmware.com>
3722+Date: Wed Feb 7 16:39:26 2018 -0800
3723+
3724+ Common header file change not applicable to open-vm-tools.
3725+
3726+commit 5170db44c1c7b814d0d2bd4131e1895dbd999db7
3727+Author: Oliver Kurth <okurth@vmware.com>
3728+Date: Wed Feb 7 16:39:26 2018 -0800
3729+
3730+ Use a unique random temp directory for vmtoolsd on Linux.
3731+
3732+ The temporay directory currently used by vmtoolsd and its plugins
3733+ on Linux is of the form /tmp/vmware-<user>. Since it is used to
3734+ upload VMware Tools upgrade and GOS customization scripts and commands,
3735+ that name predictability may make it susceptible to attack. This
3736+ change adds a new function File_GetSafeRandomTmpDir() in
3737+ bora/lib/file/fileTempPosix.c to both add the PID to the user name
3738+ and add a random number suffix to the temp directory path.
3739+
3740+ /tmp/vmware-<user>_<pid>-nnnnnn
3741+
3742+ VMware Tools commands and plugins are being updated to use this random
3743+ temp directory.
3744+
3745+commit 9bc56af5d0cb7dcc6f079ff4ab4d3456535365b2
3746+Author: Oliver Kurth <okurth@vmware.com>
3747+Date: Wed Feb 7 16:39:26 2018 -0800
3748+
3749+ Changes to common header files not applicable to open-vm-tools.
3750+
3751+commit 3e4091698461c0a5c36f9025410941f189c5af69
3752+Author: Oliver Kurth <okurth@vmware.com>
3753+Date: Wed Feb 7 16:39:26 2018 -0800
3754+
3755+ Fix two comment typos in hostinfoPosix.c.
3756+
3757+commit cf4f582e5b3c2df25aa775d77d458a15583a05ad
3758+Author: Oliver Kurth <okurth@vmware.com>
3759+Date: Wed Feb 7 16:39:26 2018 -0800
3760+
3761+ open-vm-tools: ignore with/without gtk2/3 options when building without X
3762+
3763+ When building without X support, we should ignore the options to enable/disable
3764+ gtk2 and gtk3. This was reported in gthub issue
3765+ https://github.com/vmware/open-vm-tools/issues/228 .
3766+
3767+commit 0a099c6f4949a05d1400dc147ab68ad15ebf152a
3768+Author: Oliver Kurth <okurth@vmware.com>
3769+Date: Wed Feb 7 16:39:26 2018 -0800
3770+
3771+ Common header file change not applicable to open-vm-tools.
3772+
3773+commit 7be0019e01c7d473deffb8b8646fce1dff22e11a
3774+Author: Oliver Kurth <okurth@vmware.com>
3775+Date: Wed Feb 7 16:39:25 2018 -0800
3776+
3777+ Common header file changes not applicable to open-vm-tools.
3778+
3779+commit f838807d08b9c4e72d4887642d4181dea25b6c35
3780+Author: Oliver Kurth <okurth@vmware.com>
3781+Date: Wed Feb 7 16:39:25 2018 -0800
3782+
3783+ Common header file change not applicable to open-vm-tools.
3784+
3785+commit 25d00050c8009dd74e3bbcf1883fdd408411a693
3786+Author: Oliver Kurth <okurth@vmware.com>
3787+Date: Wed Feb 7 16:39:25 2018 -0800
3788+
3789+ Common header file change not applicable to open-vm-tools.
3790+
3791+commit 6b6038522ed24ea134eb4e4a2752288f6f42fcd5
3792+Author: Oliver Kurth <okurth@vmware.com>
3793+Date: Wed Feb 7 16:39:25 2018 -0800
3794+
3795+ Header file change not applicable to open-vm-tools.
3796+
3797+commit ee4bd450c4449f8905dbca2e4759660fda5c58dc
3798+Author: Oliver Kurth <okurth@vmware.com>
3799+Date: Tue Feb 6 16:32:40 2018 -0800
3800+
3801+ fix buffer overrun in AsyncTCPSocketConnect()
3802+
3803+ Callers may pass a struct smaller than sockaddr_storage, but a
3804+ sockaddr_storage-sized chunk gets copied to asock->remoteAddr.
3805+ memcpy() should be used.
3806+
3807+ One such caller is AsyncSocket_ConnectUnixDomain(). It passes sockaddr_un.
3808+ sizeof(sockaddr_un) == 110, sizeof(sockaddr_storage) == 128.
3809+
3810+ Caught by AddressSanitizer.
3811+
3812+commit 13df0e2fc2f68aeab0380761eb0c5ab129730710
3813+Author: Oliver Kurth <okurth@vmware.com>
3814+Date: Tue Feb 6 16:32:40 2018 -0800
3815+
3816+ open-vm-tools: use pkg-config for building with icu
3817+
3818+ icu uses pkg-config in recent versions, and no longer ships with
3819+ icu-config in most recent versions. Make the configure script
3820+ use pkg-config for icu if available, and icu-config if not. For
3821+ pkg-config we need to specify 'icui18n' which returns the same result
3822+ as icu-config did to link with icui18n.
3823+
3824+commit 3a8221c7e4b149efacf87658ac239d815c56adba
3825+Author: Oliver Kurth <okurth@vmware.com>
3826+Date: Tue Feb 6 16:32:40 2018 -0800
3827+
3828+ Ignore ENXIO errors with SyncDriver
3829+
3830+ A quiesced snapshot fails when the target VM has a bind mount. The
3831+ problem is that the syncDriver gets an ENXIO error when it tries to
3832+ open the mount point. To fix the problem, let the quiesce operation
3833+ skip a mount point when opening it results in an ENXIO error.
3834+
3835+ This change is based on pull request
3836+ https://github.com/vmware/open-vm-tools/pull/218 .
3837+
3838+commit ff754c8a99bffe92b07c933898c7d9d20c02873f
3839+Author: Oliver Kurth <okurth@vmware.com>
3840+Date: Tue Feb 6 16:32:40 2018 -0800
3841+
3842+ Refinement for memory corruption bug fix in StdIO_ReadNextLine
3843+
3844+commit 7b45a62730624c711fb4eb63a0bfd125a2befa57
3845+Author: Oliver Kurth <okurth@vmware.com>
3846+Date: Tue Feb 6 16:32:40 2018 -0800
3847+
3848+ lib/file: Style clean up in the public file.h
3849+
3850+commit 3a7dc2f92e6cb61c9ca8e57c367c972683355278
3851+Author: Oliver Kurth <okurth@vmware.com>
3852+Date: Tue Feb 6 16:32:40 2018 -0800
3853+
3854+ Common header file changes not applicable to open-vm-tools.
3855+
3856+commit c52bb302a181d4bdd0b2b61d6e901339b61d2dab
3857+Author: Oliver Kurth <okurth@vmware.com>
3858+Date: Tue Feb 6 16:32:40 2018 -0800
3859+
3860+ Common header file change not applicable to open-vm-tools.
3861+
3862+commit 035765d487f8ab9b2222ad239b278e4725aa5a22
3863+Author: Oliver Kurth <okurth@vmware.com>
3864+Date: Tue Feb 6 16:32:39 2018 -0800
3865
3866 Changes to common header files; not applicable to open-vm-tools.
3867
3868@@ -2320,6 +5108,7 @@ Date: Tue Oct 24 14:07:35 2017 -0700
3869 commit cc18f0829bbf9d61b36f6c292a2f4fb9b9618812
3870 Author: Oliver Kurth <okurth@vmware.com>
3871 Date: Tue Oct 24 14:07:35 2017 -0700
3872+>>>>>>> open-vm-tools/ChangeLog
3873
3874 VGAuth changes:
3875
3876@@ -2327,6 +5116,106 @@ Date: Tue Oct 24 14:07:35 2017 -0700
3877 impersonation/unimpersonation code paths
3878 - VGAuth part of code change plus tools vix plugin make file.
3879
3880+<<<<<<< open-vm-tools/ChangeLog
3881+commit a62edfbf695ea5ad4bf8f8d91bac1740e428158f
3882+Author: Oliver Kurth <okurth@vmware.com>
3883+Date: Tue Oct 24 14:07:32 2017 -0700
3884+
3885+ Common header file change; not directly applicable to open-vm-tools
3886+
3887+commit 009def580b00040fa6e6c07cb5743e60973973f5
3888+Author: Oliver Kurth <okurth@vmware.com>
3889+Date: Mon Oct 23 14:21:23 2017 -0700
3890+
3891+ GuestInfo: enable nic/iproute information for Linux without libdnet
3892+
3893+ Linux glibc (since 2.3) fully supports getting ip addresses using
3894+ getifaddrs() for both IPv4 and IPv6. Use of getifaddrs() was already
3895+ implemented in nicInfoPosix.c for tools for ESXi. This change
3896+ enables that code also for Linux, if libdnet is not used.
3897+
3898+ The change also enables the iproute information, which does not
3899+ depend on libdnet, except by the use of addr_stob(), which can
3900+ be replaced easily with the existing function CountNetmaskBits().
3901+
3902+commit 7643a1eddcc2cdc0b8a42af821ae92ca076ee37a
3903+Author: Oliver Kurth <okurth@vmware.com>
3904+Date: Mon Oct 23 14:21:22 2017 -0700
3905+
3906+ Make disk free space reporting consistent with Linux 'df' command.
3907+
3908+ On Linux, statfs syscall reports free space in two fields.
3909+ From http://man7.org/linux/man-pages/man2/statfs.2.html:
3910+ 1. f_bfree => Free blocks in filesystem
3911+ 2. f_bavail => Free blocks available to unprivileged user
3912+
3913+ For file systems that maintain reserved space for system
3914+ activities f_bfree > f_bavail because f_bfree includes the
3915+ reserved space in the file system. The reserved space is
3916+ typically 5% for 'ext4' file systems. Newer distros like
3917+ RHEL 7.x use 'xfs' by default and report same value for
3918+ both the fields.
3919+
3920+ The Linux 'df' command uses f_bavail in its reporting.
3921+ Tools reports, conditionally, f_bfree for root and f_bavail
3922+ for non-root. However, since vmtoolsd runs as root, Tools
3923+ always reports f_bfree, which is more free space than 'df'
3924+ would report (depending on amount of reserved space).
3925+
3926+ In order to be consistent with Linux 'df' command,
3927+ report f_bavail as the disk free space by default. This does
3928+ change the behavior a little bit in that Tools will report less
3929+ disk free space than before, the difference being the same as
3930+ the reserved space on the file system, typically 5%. This
3931+ should be OK in general because it makes the space reporting
3932+ a bit conservative. If this change in behavior is not desired
3933+ for some use cases, the old behavior can be restored by setting
3934+ the following newly added configuration in this change:
3935+
3936+ [guestinfo]
3937+ diskinfo-include-reserved=true
3938+
3939+ The existing callers that are outside the guestInfo plugin
3940+ will continue to include reserved space in their space
3941+ accounting as before.
3942+
3943+ Also fixed a few minor stuff/touchups in vmtoolsConfig.c.
3944+
3945+commit ff6daf51be641a805f94fa11415e032bad3ef48a
3946+Author: Oliver Kurth <okurth@vmware.com>
3947+Date: Mon Oct 23 14:21:22 2017 -0700
3948+
3949+ Porting some common code to another architecture; not applicable to
3950+ open-vm-tools.
3951+
3952+commit a1d4afc447091d9fbccf89be6561accfc1e33aa9
3953+Author: Oliver Kurth <okurth@vmware.com>
3954+Date: Mon Oct 23 14:21:22 2017 -0700
3955+
3956+ Add support to tools timeSync to issue w32tm resync in Windows guests.
3957+
3958+ This change adds support to issue a w32tm resync command from within
3959+ VMware tools timeSync in order to reconfigure w32time configuration
3960+ parameters. This forces guest time to be resynchronized to external
3961+ time server.
3962+
3963+commit d2c18c44df3fbc410e04b2f1b2595a326a52afec
3964+Author: Oliver Kurth <okurth@vmware.com>
3965+Date: Mon Oct 23 14:21:22 2017 -0700
3966+
3967+ Add a poll flag for one-shot callbacks in AsyncSocket
3968+
3969+ The original change had an issue. When the read and write callbacks
3970+ fire in parallel, both would release the reference to the SharedStream,
3971+ triggering its destructor. Later when the read callback tried to
3972+ re-register itself, it would hit a boost exception. To avoid that,
3973+ delay the reset of CallbackFD::stream to the end of Invoke so that the
3974+ SharedStream object will not be destroyed as long as the callback is
3975+ re-registered.
3976+
3977+commit 485dc67e56ad68e05d4106059594279f67dd119b
3978+Author: Oliver Kurth <okurth@vmware.com>
3979+=======
3980 commit 4b0af4d8b889eccd0fbc18d63698c95f83be1ca3
3981 Author: Oliver Kurth <okurth@vmware.com>
3982 Date: Tue Oct 24 14:07:35 2017 -0700
3983@@ -2549,6 +5438,7 @@ Date: Mon Oct 23 14:21:22 2017 -0700
3984
3985 commit 485dc67e56ad68e05d4106059594279f67dd119b
3986 Author: Oliver Kurth <okurth@vmware.com>
3987+>>>>>>> open-vm-tools/ChangeLog
3988 Date: Mon Oct 23 14:21:22 2017 -0700
3989
3990 Change to shared header file unrelated to open-vm-tools.
3991diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
3992index 72dc4ff..e952cff 100644
3993--- a/open-vm-tools/configure.ac
3994+++ b/open-vm-tools/configure.ac
3995@@ -35,10 +35,17 @@
3996 ### Initialization
3997 ###
3998
3999+<<<<<<< open-vm-tools/configure.ac
4000 TOOLS_VERSION="10.3.0"
4001 AC_INIT(
4002 [open-vm-tools],
4003 [10.3.0],
4004+=======
4005+TOOLS_VERSION="10.3.5"
4006+AC_INIT(
4007+ [open-vm-tools],
4008+ [10.3.5],
4009+>>>>>>> open-vm-tools/configure.ac
4010 [open-vm-tools-devel@lists.sourceforge.net])
4011
4012 # In order to make this configure script auto-detect situations where
4013@@ -1370,9 +1377,6 @@ if test "$os" = "freebsd" || test "$os" = "kfreebsd-gnu"; then
4014 if test "$osVersion" -ge 302000; then
4015 MODULES="$MODULES vmmemctl"
4016 fi
4017- if test "$osVersion" -ge 409000; then
4018- MODULES="$MODULES vmxnet"
4019- fi
4020 if test "$osVersion" -ge 600000; then
4021 MODULES="$MODULES vmblock"
4022 fi
4023diff --git a/open-vm-tools/lib/file/file.c b/open-vm-tools/lib/file/file.c
4024index 6053247..2d1154b 100644
4025--- a/open-vm-tools/lib/file/file.c
4026+++ b/open-vm-tools/lib/file/file.c
4027@@ -1863,7 +1863,7 @@ FileDeleteDirectoryTree(const char *pathName, // IN: directory to delete
4028 char *base;
4029
4030 char **fileList = NULL;
4031- Bool sawFileError = FALSE;
4032+ Err_Number fileError = 0;
4033
4034 if (Posix_EuidAccess(pathName, F_OK) != 0) {
4035 /*
4036@@ -1909,7 +1909,7 @@ FileDeleteDirectoryTree(const char *pathName, // IN: directory to delete
4037 case S_IFDIR:
4038 /* Directory, recurse */
4039 if (!FileDeleteDirectoryTree(curPath, FALSE)) {
4040- sawFileError = TRUE;
4041+ fileError = Err_Errno();
4042 }
4043 break;
4044
4045@@ -1917,7 +1917,7 @@ FileDeleteDirectoryTree(const char *pathName, // IN: directory to delete
4046 case S_IFLNK:
4047 /* Delete symlink, not what it points to */
4048 if (FileDeletion(curPath, FALSE) != 0) {
4049- sawFileError = TRUE;
4050+ fileError = Err_Errno();
4051 }
4052 break;
4053 #endif
4054@@ -1927,19 +1927,21 @@ FileDeleteDirectoryTree(const char *pathName, // IN: directory to delete
4055 #if defined(_WIN32)
4056 if (File_SetFilePermissions(curPath, S_IWUSR)) {
4057 if (FileDeletion(curPath, FALSE) != 0) {
4058- sawFileError = TRUE;
4059+ fileError = Err_Errno();
4060 }
4061 } else {
4062- sawFileError = TRUE;
4063+ fileError = Err_Errno();
4064 }
4065 #else
4066- sawFileError = TRUE;
4067+ fileError = Err_Errno();
4068 #endif
4069 }
4070 break;
4071 }
4072 } else {
4073- sawFileError = TRUE;
4074+ fileError = Err_Errno();
4075+ Log(LGPFX" %s: Lstat of '%s' failed, errno = %d\n",
4076+ __FUNCTION__, curPath, errno);
4077 }
4078
4079 Posix_Free(curPath);
4080@@ -1952,14 +1954,16 @@ FileDeleteDirectoryTree(const char *pathName, // IN: directory to delete
4081 * Call File_DeleteEmptyDirectory() only if there is no prior error
4082 * while deleting the children.
4083 */
4084- if (!sawFileError && !File_DeleteEmptyDirectory(pathName)) {
4085- sawFileError = TRUE;
4086+ if (fileError == 0 && !File_DeleteEmptyDirectory(pathName)) {
4087+ fileError = Err_Errno();
4088 }
4089 }
4090
4091 Util_FreeStringList(fileList, numFiles);
4092
4093- return !sawFileError;
4094+ Err_SetErrno(fileError);
4095+
4096+ return fileError == 0;
4097 }
4098
4099
4100diff --git a/open-vm-tools/lib/glibUtils/fileLogger.c b/open-vm-tools/lib/glibUtils/fileLogger.c
4101index af1cb8a..98d5bb5 100644
4102--- a/open-vm-tools/lib/glibUtils/fileLogger.c
4103+++ b/open-vm-tools/lib/glibUtils/fileLogger.c
4104@@ -1,5 +1,5 @@
4105 /*********************************************************
4106- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
4107+ * Copyright (C) 2010-2018 VMware, Inc. All rights reserved.
4108 *
4109 * This program is free software; you can redistribute it and/or modify it
4110 * under the terms of the GNU Lesser General Public License as published
4111@@ -299,11 +299,26 @@ FileLoggerOpen(FileLogger *data)
4112 }
4113
4114 logfile = g_io_channel_new_file(path, data->append ? "a" : "w", NULL);
4115- g_free(path);
4116
4117 if (logfile != NULL) {
4118 g_io_channel_set_encoding(logfile, NULL, NULL);
4119+#ifdef VMX86_TOOLS
4120+ /*
4121+ * Make the logfile readable only by user and root/administrator.
4122+ */
4123+#ifdef _WIN32
4124+ /*
4125+ * XXX TODO: Set the ACLs properly for Windows.
4126+ */
4127+#else
4128+ /*
4129+ * Can't do anything if it fails, so ignore return.
4130+ */
4131+ (void) chmod(path, 0600);
4132+#endif
4133+#endif // VMX86_TOOLS
4134 }
4135+ g_free(path);
4136
4137 return logfile;
4138 }
4139diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
4140index bcde636..7ea3b7f 100644
4141--- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
4142+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
4143@@ -7246,8 +7246,8 @@ HgfsValidateRenameFile(Bool useHandle, // IN:
4144 if (HGFS_ERROR_SUCCESS != status) {
4145 LOG(4, ("%s: could not map cached handle %d, error %u\n",
4146 __FUNCTION__, fileHandle, status));
4147- } else if (!HgfsHandle2FileNameMode(fileHandle, session, &shareInfo->writePermissions,
4148- &shareInfo->readPermissions, localFileName,
4149+ } else if (!HgfsHandle2FileNameMode(fileHandle, session, &shareInfo->readPermissions,
4150+ &shareInfo->writePermissions, localFileName,
4151 localNameLength)) {
4152 /*
4153 * HgfsPlatformRename requires valid source file name even when file handle
4154diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
4155index c4f7c89..f2b7ce6 100644
4156--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
4157+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
4158@@ -1,5 +1,5 @@
4159 /*********************************************************
4160- * Copyright (C) 1998-2017 VMware, Inc. All rights reserved.
4161+ * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
4162 *
4163 * This program is free software; you can redistribute it and/or modify it
4164 * under the terms of the GNU Lesser General Public License as published
4165@@ -4583,8 +4583,8 @@ HgfsPlatformDeleteFileByHandle(HgfsHandle file, // IN: File being delet
4166 char *localName;
4167 size_t localNameSize;
4168
4169- if (HgfsHandle2FileNameMode(file, session, &writePermissions,
4170- &readPermissions, &localName, &localNameSize)) {
4171+ if (HgfsHandle2FileNameMode(file, session, &readPermissions, &writePermissions,
4172+ &localName, &localNameSize)) {
4173 if (writePermissions && readPermissions) {
4174 status = HgfsPlatformDeleteFileByName(localName);
4175 } else {
4176@@ -4665,8 +4665,8 @@ HgfsPlatformDeleteDirByHandle(HgfsHandle file, // IN: File being delete
4177 char *localName;
4178 size_t localNameSize;
4179
4180- if (HgfsHandle2FileNameMode(file, session, &writePermissions,
4181- &readPermissions, &localName, &localNameSize)) {
4182+ if (HgfsHandle2FileNameMode(file, session, &readPermissions, &writePermissions,
4183+ &localName, &localNameSize)) {
4184 if (writePermissions && readPermissions) {
4185 status = HgfsPlatformDeleteDirByName(localName);
4186 } else {
4187diff --git a/open-vm-tools/lib/include/buildNumber.h b/open-vm-tools/lib/include/buildNumber.h
4188index c0a903a..80245f1 100644
4189--- a/open-vm-tools/lib/include/buildNumber.h
4190+++ b/open-vm-tools/lib/include/buildNumber.h
4191@@ -1,4 +1,5 @@
4192 #define BUILD_NUMBER \
4193+<<<<<<< open-vm-tools/lib/include/buildNumber.h
4194 "build-8931395"
4195 #define BUILD_NUMBER_NUMERIC \
4196 8931395
4197@@ -10,3 +11,16 @@
4198 5330
4199 #define PRODUCT_BUILD_NUMBER_NUMERIC_STRING \
4200 "5330"
4201+=======
4202+ "build-10430147"
4203+#define BUILD_NUMBER_NUMERIC \
4204+ 10430147
4205+#define BUILD_NUMBER_NUMERIC_STRING \
4206+ "10430147"
4207+#define PRODUCT_BUILD_NUMBER \
4208+ "product-build-7752"
4209+#define PRODUCT_BUILD_NUMBER_NUMERIC \
4210+ 7752
4211+#define PRODUCT_BUILD_NUMBER_NUMERIC_STRING \
4212+ "7752"
4213+>>>>>>> open-vm-tools/lib/include/buildNumber.h
4214diff --git a/open-vm-tools/lib/include/conf.h b/open-vm-tools/lib/include/conf.h
4215index af68534..f9698c1 100644
4216--- a/open-vm-tools/lib/include/conf.h
4217+++ b/open-vm-tools/lib/include/conf.h
4218@@ -171,6 +171,32 @@
4219
4220 /*
4221 ******************************************************************************
4222+ * BEGIN GuestOSInfo goodies.
4223+ */
4224+
4225+/**
4226+ * Defines the string used for the GuestOSInfo config file group.
4227+ */
4228+#define CONFGROUPNAME_GUESTOSINFO "guestosinfo"
4229+
4230+/**
4231+ * Lets users override the short OS name sent by Tools.
4232+ */
4233+#define CONFNAME_GUESTOSINFO_SHORTNAME "short-name"
4234+
4235+/**
4236+ * Lets users override the long OS name sent by Tools.
4237+ */
4238+#define CONFNAME_GUESTOSINFO_LONGNAME "long-name"
4239+
4240+/*
4241+ * END GuestOSInfo goodies.
4242+ ******************************************************************************
4243+ */
4244+
4245+
4246+/*
4247+ ******************************************************************************
4248 * BEGIN Unity goodies.
4249 */
4250
4251diff --git a/open-vm-tools/lib/include/err.h b/open-vm-tools/lib/include/err.h
4252index b692db4..65b45a5 100644
4253--- a/open-vm-tools/lib/include/err.h
4254+++ b/open-vm-tools/lib/include/err.h
4255@@ -122,6 +122,7 @@ char *Err_SanitizeMessage(const char *msg);
4256 */
4257
4258 #if defined(_WIN32)
4259+<<<<<<< open-vm-tools/lib/include/err.h
4260 #define WITH_ERRNO(e, body) do { \
4261 Err_Number e = Err_Errno(); \
4262 int __win__##e = errno; \
4263@@ -130,12 +131,29 @@ char *Err_SanitizeMessage(const char *msg);
4264 errno = __win__##e; \
4265 } while (0)
4266 #else
4267+=======
4268+>>>>>>> open-vm-tools/lib/include/err.h
4269 #define WITH_ERRNO(e, body) do { \
4270 Err_Number e = Err_Errno(); \
4271+ int __win__##e = errno; \
4272 body; \
4273 Err_SetErrno(e); \
4274+<<<<<<< open-vm-tools/lib/include/err.h
4275 } while (0)
4276 #endif
4277+=======
4278+ errno = __win__##e; \
4279+ } while (0)
4280+#else
4281+#define WITH_ERRNO(e, body) do { \
4282+ Err_Number e = Err_Errno(); \
4283+ body; \
4284+ Err_SetErrno(e); \
4285+ } while (0)
4286+#endif
4287+
4288+#define WITH_ERRNO_FREE(p) WITH_ERRNO(__errNum__, free((void *)p))
4289+>>>>>>> open-vm-tools/lib/include/err.h
4290
4291 #if defined(__cplusplus)
4292 } // extern "C"
4293diff --git a/open-vm-tools/lib/include/ioplGet.h b/open-vm-tools/lib/include/ioplGet.h
4294index bcecf9b..2ebe8aa 100644
4295--- a/open-vm-tools/lib/include/ioplGet.h
4296+++ b/open-vm-tools/lib/include/ioplGet.h
4297@@ -1,5 +1,5 @@
4298 /*********************************************************
4299- * Copyright (C) 2012-2017 VMware, Inc. All rights reserved.
4300+ * Copyright (C) 2012-2018 VMware, Inc. All rights reserved.
4301 *
4302 * This program is free software; you can redistribute it and/or modify it
4303 * under the terms of the GNU Lesser General Public License as published
4304@@ -33,7 +33,7 @@
4305 extern "C" {
4306 #endif
4307
4308-#define Iopl_Get() ((GetCallerEFlags() >> EFLAGS_IOPL_SHIFT) && 0x3)
4309+#define Iopl_Get() ((GetCallerEFlags() >> EFLAGS_IOPL_SHIFT) & 0x3)
4310
4311 #if defined(__cplusplus)
4312 } // extern "C"
4313diff --git a/open-vm-tools/lib/include/posix.h b/open-vm-tools/lib/include/posix.h
4314index 4a643f0..b5ae883 100644
4315--- a/open-vm-tools/lib/include/posix.h
4316+++ b/open-vm-tools/lib/include/posix.h
4317@@ -35,6 +35,7 @@
4318 #include "unicodeTypes.h"
4319 #include "unicodeBase.h"
4320 #include "codeset.h"
4321+#include "err.h"
4322
4323 #if defined(__cplusplus)
4324 extern "C" {
4325@@ -125,14 +126,7 @@ char *Posix_MkTemp(const char *pathName);
4326 *-----------------------------------------------------------------------------
4327 */
4328
4329-static INLINE void
4330-Posix_Free(void *p) // IN
4331-{
4332- int err = errno;
4333- free(p);
4334- errno = err;
4335-}
4336-
4337+#define Posix_Free(p) WITH_ERRNO_FREE(p)
4338
4339 #if !defined(_WIN32)
4340 /*
4341diff --git a/open-vm-tools/lib/include/rpcin.h b/open-vm-tools/lib/include/rpcin.h
4342index 64b8155..5f06546 100644
4343--- a/open-vm-tools/lib/include/rpcin.h
4344+++ b/open-vm-tools/lib/include/rpcin.h
4345@@ -1,5 +1,5 @@
4346 /*********************************************************
4347- * Copyright (C) 2007-2016 VMware, Inc. All rights reserved.
4348+ * Copyright (C) 2007-2018 VMware, Inc. All rights reserved.
4349 *
4350 * This program is free software; you can redistribute it and/or modify it
4351 * under the terms of the GNU Lesser General Public License as published
4352@@ -33,6 +33,8 @@ extern "C" {
4353
4354 typedef void RpcIn_ErrorFunc(void *clientData, char const *status);
4355
4356+typedef void RpcIn_ClearErrorFunc(void *clientData);
4357+
4358 typedef struct RpcIn RpcIn;
4359
4360 #if defined(VMTOOLS_USE_GLIB) /* { */
4361@@ -44,7 +46,9 @@ RpcIn *RpcIn_Construct(GMainContext *mainCtx,
4362 gpointer clientData);
4363
4364 Bool RpcIn_start(RpcIn *in, unsigned int delay,
4365- RpcIn_ErrorFunc *errorFunc, void *errorData);
4366+ RpcIn_ErrorFunc *errorFunc,
4367+ RpcIn_ClearErrorFunc *clearErrorFunc,
4368+ void *errorData);
4369
4370 #else /* } { */
4371
4372@@ -66,7 +70,10 @@ RpcIn *RpcIn_Construct(DblLnkLst_Links *eventQueue);
4373
4374 Bool RpcIn_start(RpcIn *in, unsigned int delay,
4375 RpcIn_Callback resetCallback, void *resetClientData,
4376- RpcIn_ErrorFunc *errorFunc, void *errorData);
4377+ RpcIn_ErrorFunc *errorFunc,
4378+ RpcIn_ClearErrorFunc *clearErrorFunc,
4379+ void *errorData);
4380+
4381
4382 /*
4383 * Don't use this function anymore - it's here only for backwards compatibility.
4384diff --git a/open-vm-tools/lib/include/unicodeBase.h b/open-vm-tools/lib/include/unicodeBase.h
4385index b79c6c8..39cf4ec 100644
4386--- a/open-vm-tools/lib/include/unicodeBase.h
4387+++ b/open-vm-tools/lib/include/unicodeBase.h
4388@@ -34,6 +34,7 @@
4389 #include <errno.h>
4390 #include "util.h"
4391 #include "unicodeTypes.h"
4392+#include "err.h"
4393
4394 #if defined(__cplusplus)
4395 extern "C" {
4396@@ -348,11 +349,15 @@ const char *Unicode_GetStatic(const char *asciiBytes,
4397 */
4398 #if defined(_WIN32)
4399 #define UNICODE_GET_UTF16(s) Unicode_GetAllocUTF16(s)
4400+<<<<<<< open-vm-tools/lib/include/unicodeBase.h
4401 #define UNICODE_RELEASE_UTF16(s) do { \
4402 int err = errno; \
4403 free((utf16_t *)s); \
4404 errno = err; \
4405 } while (0)
4406+=======
4407+ #define UNICODE_RELEASE_UTF16(s) WITH_ERRNO_FREE(s)
4408+>>>>>>> open-vm-tools/lib/include/unicodeBase.h
4409 #endif
4410
4411 #if defined(__cplusplus)
4412diff --git a/open-vm-tools/lib/include/vm_product.h b/open-vm-tools/lib/include/vm_product.h
4413index d9ef05e..372ab75 100644
4414--- a/open-vm-tools/lib/include/vm_product.h
4415+++ b/open-vm-tools/lib/include/vm_product.h
4416@@ -78,6 +78,7 @@
4417 * This name should be used when referring to VMware Tools
4418 */
4419 #define VMWARE_TOOLS_SHORT_NAME MAKE_NAME("Tools")
4420+#define VMWARE_VGAUTH_SHORT_NAME MAKE_NAME("Guest Authentication")
4421
4422 #define PRODUCT_SCALABLE_SERVER_NAME MAKE_NAME(PRODUCT_SCALABLE_SERVER_BRIEF_NAME)
4423 #define PRODUCT_ESXI_NAME MAKE_NAME(PRODUCT_ESXI_BRIEF_NAME)
4424@@ -221,6 +222,8 @@
4425 # define PRODUCT_SHORT_NAME PRODUCT_GANTRY_NAME
4426 #elif defined(VMX86_TOOLS)
4427 # define PRODUCT_SHORT_NAME VMWARE_TOOLS_SHORT_NAME
4428+#elif defined(VMX86_VGAUTH)
4429+# define PRODUCT_SHORT_NAME VMWARE_VGAUTH_SHORT_NAME
4430 #elif defined(VMX86_VPX)
4431 # if defined(CSI_HA)
4432 # define PRODUCT_SHORT_NAME PRODUCT_HA_NAME
4433diff --git a/open-vm-tools/lib/include/vm_product_versions.h b/open-vm-tools/lib/include/vm_product_versions.h
4434index 231c4e5..f2870b1 100644
4435--- a/open-vm-tools/lib/include/vm_product_versions.h
4436+++ b/open-vm-tools/lib/include/vm_product_versions.h
4437@@ -57,7 +57,11 @@
4438 #define PRODUCT_VERSION 14,0,0,PRODUCT_BUILD_NUMBER_NUMERIC
4439 #elif defined(VMX86_SYSIMAGE)
4440 // SYSIMAGE_VERSION below has to match this
4441+<<<<<<< open-vm-tools/lib/include/vm_product_versions.h
4442 #define PRODUCT_VERSION 8,4,0,PRODUCT_BUILD_NUMBER_NUMERIC
4443+=======
4444+ #define PRODUCT_VERSION 8,4,1,PRODUCT_BUILD_NUMBER_NUMERIC
4445+>>>>>>> open-vm-tools/lib/include/vm_product_versions.h
4446 #else
4447 /* Generic catch-all. */
4448 #define PRODUCT_VERSION 0,0,0,PRODUCT_BUILD_NUMBER_NUMERIC
4449@@ -177,7 +181,11 @@
4450 #define FUSION_VERSION "e.x.p"
4451
4452 // These must match PRODUCT_VERSION for VMX86_SYSIMAGE above
4453+<<<<<<< open-vm-tools/lib/include/vm_product_versions.h
4454 #define SYSIMAGE_VERSION "8.4.0"
4455+=======
4456+#define SYSIMAGE_VERSION "8.4.1"
4457+>>>>>>> open-vm-tools/lib/include/vm_product_versions.h
4458 #define SYSIMAGE_VERSION_EXT_STR \
4459 SYSIMAGE_VERSION "." PRODUCT_BUILD_NUMBER_NUMERIC_STRING
4460
4461@@ -260,7 +268,7 @@
4462 #define VCSA_INSTALLER_VERSION "1.0.0"
4463 #define OVFTOOL_FILE_VERSION 4,3,0,PRODUCT_BUILD_NUMBER_NUMERIC
4464 #define VDM_CLIENT_VERSION "4.5.1"
4465-#define VGAUTH_VERSION "e.x.p"
4466+#define VGAUTH_VERSION "1.0.0"
4467 #define COMMON_AGENT_VERSION "e.x.p"
4468 #define VIEWY_VERSION "e.x.p"
4469 #define VMCFSDK_VERSION "e.x.p"
4470@@ -355,7 +363,9 @@
4471 # define PRODUCT_VERSION_NUMBER ESX_VERSION
4472 #elif defined(VMX86_HORIZON_VIEW)
4473 # define PRODUCT_VERSION_NUMBER VIEW_VERSION
4474-// VMX86_DESKTOP must be last because it is the default and is always defined.
4475+#elif defined(VMX86_VGAUTH)
4476+# define PRODUCT_VERSION_NUMBER VGAUTH_VERSION
4477+ // VMX86_DESKTOP must be last because it is the default and is always defined.
4478 #elif defined(VMX86_DESKTOP)
4479 # if defined(__APPLE__)
4480 # define PRODUCT_VERSION_NUMBER FUSION_VERSION
4481diff --git a/open-vm-tools/lib/include/vm_tools_version.h b/open-vm-tools/lib/include/vm_tools_version.h
4482index cbdc9bc..eda794d 100644
4483--- a/open-vm-tools/lib/include/vm_tools_version.h
4484+++ b/open-vm-tools/lib/include/vm_tools_version.h
4485@@ -1481,9 +1481,22 @@ TOOLS_VERSION_UINT_TO_COMPONENTS(const ToolsVersion toolsVersion, // IN
4486 #define TOOLS_VERSION_JACKHAMMER_RELEASE_V_MNR 3
4487 #define TOOLS_VERSION_JACKHAMMER_RELEASE_V_BASE 0
4488
4489+<<<<<<< open-vm-tools/lib/include/vm_tools_version.h
4490 #define TOOLS_VERSION_CURRENT TOOLS_VERSION_JACKHAMMER_RELEASE
4491 #define TOOLS_VERSION_CURRENT_STR TOOLS_VERSION_TO_STR(TOOLS_VERSION_JACKHAMMER_RELEASE)
4492 #define TOOLS_VERSION_CURRENT_CSV TOOLS_VERSION_TO_CSV(TOOLS_VERSION_JACKHAMMER_RELEASE)
4493+=======
4494+#ifndef RC_INVOKED
4495+#define TOOLS_VERSION_JACKHAMMER_UPDATE1 TOOLS_VERSION_TO_UINT(TOOLS_VERSION_JACKHAMMER_UPDATE1_V)
4496+#endif /* RC_INVOKED */
4497+#define TOOLS_VERSION_JACKHAMMER_UPDATE1_V_MJR 10
4498+#define TOOLS_VERSION_JACKHAMMER_UPDATE1_V_MNR 3
4499+#define TOOLS_VERSION_JACKHAMMER_UPDATE1_V_BASE 5
4500+
4501+#define TOOLS_VERSION_CURRENT TOOLS_VERSION_JACKHAMMER_UPDATE1
4502+#define TOOLS_VERSION_CURRENT_STR TOOLS_VERSION_TO_STR(TOOLS_VERSION_JACKHAMMER_UPDATE1)
4503+#define TOOLS_VERSION_CURRENT_CSV TOOLS_VERSION_TO_CSV(TOOLS_VERSION_JACKHAMMER_UPDATE1)
4504+>>>>>>> open-vm-tools/lib/include/vm_tools_version.h
4505
4506 /*
4507 * The extended Tools version is the current Tools version with the
4508diff --git a/open-vm-tools/lib/include/vmware/tools/guestrpc.h b/open-vm-tools/lib/include/vmware/tools/guestrpc.h
4509index e6fee26..659fd20 100644
4510--- a/open-vm-tools/lib/include/vmware/tools/guestrpc.h
4511+++ b/open-vm-tools/lib/include/vmware/tools/guestrpc.h
4512@@ -125,6 +125,15 @@ typedef void (*RpcChannelResetCb)(RpcChannel *chan,
4513 gboolean success,
4514 gpointer data);
4515
4516+/**
4517+ * Signature for the application callback function when unable to establish
4518+ * an RpcChannel connection.
4519+ *
4520+ * @param[in] _state Client data.
4521+ */
4522+typedef void (*RpcChannelFailureCb)(gpointer _state);
4523+
4524+
4525 gboolean
4526 RpcChannel_Start(RpcChannel *chan);
4527
4528@@ -160,7 +169,9 @@ RpcChannel_Setup(RpcChannel *chan,
4529 GMainContext *mainCtx,
4530 gpointer appCtx,
4531 RpcChannelResetCb resetCb,
4532- gpointer resetData);
4533+ gpointer resetData,
4534+ RpcChannelFailureCb failureCb,
4535+ guint maxFailures);
4536
4537 void
4538 RpcChannel_RegisterCallback(RpcChannel *chan,
4539diff --git a/open-vm-tools/lib/misc/vthreadBase.c b/open-vm-tools/lib/misc/vthreadBase.c
4540index 328a37c..350d4e3 100644
4541--- a/open-vm-tools/lib/misc/vthreadBase.c
4542+++ b/open-vm-tools/lib/misc/vthreadBase.c
4543@@ -481,8 +481,15 @@ VThreadBase_SetName(const char *name) // IN: new name
4544 }
4545
4546 #if defined VMW_HAVE_TLS
4547- /* Never copy last byte; this ensures NUL-term is always present */
4548+ /*
4549+ * Never copy last byte; this ensures NUL-term is always present.
4550+ * The NUL-term is always present because vthreadName is static,
4551+ * but gcc-8 generates a warning if it doesn't see it being explicilty
4552+ * set.
4553+ */
4554+
4555 strncpy(vthreadName, name, sizeof vthreadName - 1);
4556+ vthreadName[sizeof vthreadName - 1] = '\0';
4557 #else
4558 do {
4559 char *buf;
4560diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
4561index 8a063a0..a22981d 100644
4562--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
4563+++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
4564@@ -277,6 +277,22 @@ GuestInfoGetInterface(struct ifaddrs *ifaddrs,
4565
4566 if (sll != NULL && sll->sll_family == AF_PACKET) {
4567 char macAddress[NICINFO_MAC_LEN];
4568+
4569+ /*
4570+ * PR 2193804:
4571+ * On ESXi, AF_PACKET family is reported for vmk* interfaces only
4572+ * and its ifa_flags is reported as 0. No AF_PACKET family ifaddrs
4573+ * is reported for loopback interface.
4574+ */
4575+#if !defined(USERWORLD)
4576+ /*
4577+ * Ignore loopback and downed devices.
4578+ */
4579+ if (!(pkt->ifa_flags & IFF_UP) || pkt->ifa_flags & IFF_LOOPBACK) {
4580+ continue;
4581+ }
4582+#endif
4583+
4584 Str_Sprintf(macAddress, sizeof macAddress,
4585 "%02x:%02x:%02x:%02x:%02x:%02x",
4586 sll->sll_addr[0], sll->sll_addr[1], sll->sll_addr[2],
4587@@ -301,6 +317,8 @@ GuestInfoGetInterface(struct ifaddrs *ifaddrs,
4588 unsigned nBits = 0;
4589 /*
4590 * Ignore any loopback addresses.
4591+ * A loopback address would indicate a misconfiguration, since
4592+ * this is not a loopback device (we checked for that above).
4593 */
4594 if (family == AF_INET) {
4595 struct sockaddr_in *sin = (struct sockaddr_in *)sa;
4596diff --git a/open-vm-tools/lib/rpcChannel/rpcChannel.c b/open-vm-tools/lib/rpcChannel/rpcChannel.c
4597index e6c7e0d..d0903f8 100644
4598--- a/open-vm-tools/lib/rpcChannel/rpcChannel.c
4599+++ b/open-vm-tools/lib/rpcChannel/rpcChannel.c
4600@@ -52,7 +52,19 @@ typedef struct RpcChannelInt {
4601 RpcChannelResetCb resetCb;
4602 gpointer resetData;
4603 gboolean rpcError;
4604+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4605 guint rpcErrorCount;
4606+=======
4607+ guint rpcResetErrorCount; /* channel reset failures */
4608+ /*
4609+ * The rpcFailureCount is a cumulative count of calls made to
4610+ * RpcChannelError(). When getting repeated channel failures,
4611+ * the channel is constantly stopped and restarted.
4612+ */
4613+ guint rpcFailureCount; /* cumulative channel failures */
4614+ RpcChannelFailureCb rpcFailureCb;
4615+ guint rpcMaxFailures;
4616+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4617 #endif
4618 } RpcChannelInt;
4619
4620@@ -122,7 +134,7 @@ RpcChannelRestart(gpointer _chan)
4621 chanStarted = RpcChannel_Start(&chan->impl);
4622 g_static_mutex_unlock(&chan->impl.outLock);
4623 if (!chanStarted) {
4624- Warning("Channel restart failed [%d]\n", chan->rpcErrorCount);
4625+ Warning("Channel restart failed [%d]\n", chan->rpcResetErrorCount);
4626 if (chan->resetCb != NULL) {
4627 chan->resetCb(&chan->impl, FALSE, chan->resetData);
4628 }
4629@@ -153,9 +165,9 @@ RpcChannelCheckReset(gpointer _chan)
4630 if (chan->rpcError) {
4631 GSource *src;
4632
4633- if (++(chan->rpcErrorCount) > channelTimeoutAttempts) {
4634+ if (++(chan->rpcResetErrorCount) > channelTimeoutAttempts) {
4635 Warning("Failed to reset channel after %u attempts\n",
4636- chan->rpcErrorCount - 1);
4637+ chan->rpcResetErrorCount - 1);
4638 if (chan->resetCb != NULL) {
4639 chan->resetCb(&chan->impl, FALSE, chan->resetData);
4640 }
4641@@ -163,7 +175,7 @@ RpcChannelCheckReset(gpointer _chan)
4642 }
4643
4644 /* Schedule the channel restart for 1 sec in the future. */
4645- Debug(LGPFX "Resetting channel [%u]\n", chan->rpcErrorCount);
4646+ Debug(LGPFX "Resetting channel [%u]\n", chan->rpcResetErrorCount);
4647 src = g_timeout_source_new(1000);
4648 g_source_set_callback(src, RpcChannelRestart, chan, NULL);
4649 g_source_attach(src, chan->mainCtx);
4650@@ -173,7 +185,7 @@ RpcChannelCheckReset(gpointer _chan)
4651
4652 /* Reset was successful. */
4653 Debug(LGPFX "Channel was reset successfully.\n");
4654- chan->rpcErrorCount = 0;
4655+ chan->rpcResetErrorCount = 0;
4656 Debug(LGPFX "Clearing backdoor behavior ...\n");
4657 gVSocketFailed = FALSE;
4658
4659@@ -428,6 +440,11 @@ exit:
4660 * @param[in] appCtx Application context.
4661 * @param[in] resetCb Callback for when a reset occurs.
4662 * @param[in] resetData Client data for the reset callback.
4663+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4664+=======
4665+ * @param[in] failureCB Callback for when the channel failure limit is hit.
4666+ * @param[in] maxFailures Maximum channel failures allowed.
4667+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4668 */
4669
4670 void
4671@@ -436,7 +453,13 @@ RpcChannel_Setup(RpcChannel *chan,
4672 GMainContext *mainCtx,
4673 gpointer appCtx,
4674 RpcChannelResetCb resetCb,
4675+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4676 gpointer resetData)
4677+=======
4678+ gpointer resetData,
4679+ RpcChannelFailureCb failureCb,
4680+ guint maxFailures)
4681+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4682 {
4683 size_t i;
4684 RpcChannelInt *cdata = (RpcChannelInt *) chan;
4685@@ -446,6 +469,11 @@ RpcChannel_Setup(RpcChannel *chan,
4686 cdata->mainCtx = g_main_context_ref(mainCtx);
4687 cdata->resetCb = resetCb;
4688 cdata->resetData = resetData;
4689+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4690+=======
4691+ cdata->rpcFailureCb = failureCb;
4692+ cdata->rpcMaxFailures = maxFailures;
4693+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4694
4695 cdata->resetReg.name = "reset";
4696 cdata->resetReg.callback = RpcChannelReset;
4697@@ -486,6 +514,13 @@ RpcChannel_RegisterCallback(RpcChannel *chan,
4698 ASSERT(rpc->xdrIn == NULL || rpc->xdrInSize > 0);
4699 if (cdata->rpcs == NULL) {
4700 cdata->rpcs = g_hash_table_new(g_str_hash, g_str_equal);
4701+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4702+ }
4703+ if (g_hash_table_lookup(cdata->rpcs, rpc->name) != NULL) {
4704+ Panic("Trying to overwrite existing RPC registration for %s!\n", rpc->name);
4705+ }
4706+ g_hash_table_insert(cdata->rpcs, (gpointer) rpc->name, rpc);
4707+=======
4708 }
4709 if (g_hash_table_lookup(cdata->rpcs, rpc->name) != NULL) {
4710 Panic("Trying to overwrite existing RPC registration for %s!\n", rpc->name);
4711@@ -510,6 +545,43 @@ RpcChannel_UnregisterCallback(RpcChannel *chan,
4712 if (cdata->rpcs != NULL) {
4713 g_hash_table_remove(cdata->rpcs, rpc->name);
4714 }
4715+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4716+}
4717+
4718+
4719+/**
4720+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4721+ * Unregisters a new RPC handler from the given RPC channel. This function is
4722+ * not thread-safe.
4723+ *
4724+ * @param[in] chan The channel instance.
4725+ * @param[in] rpc Info about the RPC being unregistered.
4726+ */
4727+
4728+void
4729+RpcChannel_UnregisterCallback(RpcChannel *chan,
4730+ RpcChannelCallback *rpc)
4731+{
4732+ RpcChannelInt *cdata = (RpcChannelInt *) chan;
4733+ if (cdata->rpcs != NULL) {
4734+ g_hash_table_remove(cdata->rpcs, rpc->name);
4735+ }
4736+=======
4737+ * Callback function to clear the cumulative channel error count when RpcIn
4738+ * is able to establish a working connection following an error or reset.
4739+ *
4740+ * @param[in] _chan The RPC channel.
4741+ */
4742+
4743+static void
4744+RpcChannelClearError(void *_chan)
4745+{
4746+ RpcChannelInt *chan = _chan;
4747+
4748+ Debug(LGPFX " %s: Clearing cumulative RpcChannel error count; was %d\n",
4749+ __FUNCTION__, chan->rpcFailureCount);
4750+ chan->rpcFailureCount = 0;
4751+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4752 }
4753
4754
4755@@ -523,16 +595,36 @@ RpcChannel_UnregisterCallback(RpcChannel *chan,
4756
4757 static void
4758 RpcChannelError(void *_chan,
4759+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4760 char const *status)
4761+=======
4762+ char const *status)
4763+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4764 {
4765 RpcChannelInt *chan = _chan;
4766+
4767 chan->rpcError = TRUE;
4768+
4769 /*
4770 * XXX: Workaround for PR 935520.
4771 * Revert the log call to Warning() after fixing PR 955746.
4772 */
4773 Debug(LGPFX "Error in the RPC receive loop: %s.\n", status);
4774
4775+ /*
4776+ * If an RPC failure callback has been registered and the failure limit
4777+ * check has not been suppressed, check whether the RpcChannel failure
4778+ * limit has been reached.
4779+ */
4780+ if (chan->rpcFailureCb != NULL &&
4781+ chan->rpcMaxFailures > 0 &&
4782+ ++chan->rpcFailureCount >= chan->rpcMaxFailures) {
4783+ /* Maximum number of channel errors has been reached. */
4784+ Warning(LGPFX "RpcChannel failure count %d; calling the failure "
4785+ "callback function.\n", chan->rpcFailureCount);
4786+ chan->rpcFailureCb(chan->resetData);
4787+ }
4788+
4789 if (chan->resetCheck == NULL) {
4790 chan->resetCheck = g_idle_source_new();
4791 g_source_set_callback(chan->resetCheck, RpcChannelCheckReset, chan, NULL);
4792@@ -556,6 +648,25 @@ RpcChannelError(void *_chan,
4793
4794 RpcChannel *
4795 RpcChannel_Create(void)
4796+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4797+{
4798+ RpcChannelInt *chan = g_new0(RpcChannelInt, 1);
4799+ return &chan->impl;
4800+}
4801+
4802+
4803+/**
4804+ * Shuts down an RPC channel and release any held resources.
4805+ *
4806+ * @param[in] chan The RPC channel.
4807+ *
4808+ * @return Whether the channel was shut down successfully.
4809+ */
4810+
4811+gboolean
4812+RpcChannel_Destroy(RpcChannel *chan)
4813+{
4814+=======
4815 {
4816 RpcChannelInt *chan = g_new0(RpcChannelInt, 1);
4817 return &chan->impl;
4818@@ -573,6 +684,7 @@ RpcChannel_Create(void)
4819 gboolean
4820 RpcChannel_Destroy(RpcChannel *chan)
4821 {
4822+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4823 #if defined(NEED_RPCIN)
4824 size_t i;
4825 #endif
4826@@ -596,6 +708,10 @@ RpcChannel_Destroy(RpcChannel *chan)
4827 cdata->resetCb = NULL;
4828 cdata->resetData = NULL;
4829 cdata->appCtx = NULL;
4830+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4831+=======
4832+ cdata->rpcFailureCb = NULL;
4833+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4834
4835 g_free(cdata->appName);
4836 cdata->appName = NULL;
4837@@ -771,7 +887,12 @@ RpcChannel_Start(RpcChannel *chan)
4838
4839 #if defined(NEED_RPCIN)
4840 if (chan->in != NULL && !chan->inStarted) {
4841+<<<<<<< open-vm-tools/lib/rpcChannel/rpcChannel.c
4842 ok = RpcIn_start(chan->in, RPCIN_MAX_DELAY, RpcChannelError, chan);
4843+=======
4844+ ok = RpcIn_start(chan->in, RPCIN_MAX_DELAY, RpcChannelError,
4845+ RpcChannelClearError, chan);
4846+>>>>>>> open-vm-tools/lib/rpcChannel/rpcChannel.c
4847 chan->inStarted = ok;
4848 }
4849 #endif
4850diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c
4851index c2c5158..8eea7d8 100644
4852--- a/open-vm-tools/lib/rpcIn/rpcin.c
4853+++ b/open-vm-tools/lib/rpcIn/rpcin.c
4854@@ -1,5 +1,5 @@
4855 /*********************************************************
4856- * Copyright (C) 1998-2017 VMware, Inc. All rights reserved.
4857+ * Copyright (C) 1998-2018 VMware, Inc. All rights reserved.
4858 *
4859 * This program is free software; you can redistribute it and/or modify it
4860 * under the terms of the GNU Lesser General Public License as published
4861@@ -178,6 +178,13 @@ struct RpcIn {
4862 */
4863 Bool inLoop; // RpcInLoop is running.
4864 Bool shouldStop; // Stop the channel the next time RpcInLoop exits.
4865+
4866+ /*
4867+ * RpcInConnErrorHandler called; cleared when a non "reset" reply has been
4868+ * received.
4869+ */
4870+ Bool errStatus;
4871+ RpcIn_ClearErrorFunc *clearErrorFunc;
4872 };
4873
4874 static Bool RpcInSend(RpcIn *in, int flags);
4875@@ -1070,6 +1077,8 @@ RpcInConnErrorHandler(int err, // IN
4876 Debug("RpcIn: Error in socket %d, closing connection: %s.\n",
4877 AsyncSocket_GetFd(asock), AsyncSocket_Err2String(err));
4878
4879+ in->errStatus = TRUE;
4880+
4881 if (conn->connected) {
4882 RpcInCloseChannel(conn->in, errmsg);
4883 } else { /* the connection never gets connected */
4884@@ -1490,6 +1499,26 @@ exit:
4885
4886
4887 /*
4888+ * RpcInClearErrorStatus --
4889+ *
4890+ * Clear the errStatus indicator and if a callback has been registered,
4891+ * notify the RpcChannel layer that an error condition has been cleared.
4892+ */
4893+
4894+static void
4895+RpcInClearErrorStatus(RpcIn *in) // IN
4896+{
4897+ if (in->errStatus) {
4898+ Debug("RpcIn: %s: Clearing errStatus\n", __FUNCTION__);
4899+ in->errStatus = FALSE;
4900+ if (in->clearErrorFunc != NULL) {
4901+ in->clearErrorFunc(in->errorData);
4902+ }
4903+ }
4904+}
4905+
4906+
4907+/*
4908 *-----------------------------------------------------------------------------
4909 *
4910 * RpcInLoop --
4911@@ -1569,6 +1598,12 @@ RpcInLoop(void *clientData) // IN
4912 if (repLen) {
4913 char *s = ByteDump(reply, repLen);
4914 Debug("RpcIn: received %d bytes, content:\"%s\"\n", (int) repLen, s);
4915+
4916+ /* If reply is not a "reset", the channel is functioning. */
4917+ if (in->errStatus && strcmp(s, "reset") != 0) {
4918+ RpcInClearErrorStatus(in);
4919+ }
4920+
4921 if (!RpcInExecRpc(in, reply, repLen, &errmsg)) {
4922 goto error;
4923 }
4924@@ -1584,6 +1619,11 @@ RpcInLoop(void *clientData) // IN
4925 lastPrintMilli = now;
4926 }
4927
4928+ /* RpcIn connection is working - receiving. */
4929+ if (in->errStatus) {
4930+ RpcInClearErrorStatus(in);
4931+ }
4932+
4933 /*
4934 * Nothing to execute
4935 */
4936@@ -1792,18 +1832,21 @@ error:
4937
4938 #if defined(VMTOOLS_USE_GLIB)
4939 Bool
4940-RpcIn_start(RpcIn *in, // IN
4941- unsigned int delay, // IN
4942- RpcIn_ErrorFunc *errorFunc, // IN
4943- void *errorData) // IN
4944+RpcIn_start(RpcIn *in, // IN
4945+ unsigned int delay, // IN
4946+ RpcIn_ErrorFunc *errorFunc, // IN
4947+ RpcIn_ClearErrorFunc *clearErrorFunc, // IN
4948+ void *errorData) // IN
4949+
4950 #else
4951 Bool
4952-RpcIn_start(RpcIn *in, // IN
4953- unsigned int delay, // IN
4954- RpcIn_Callback resetCallback, // IN
4955- void *resetClientData, // IN
4956- RpcIn_ErrorFunc *errorFunc, // IN
4957- void *errorData) // IN
4958+RpcIn_start(RpcIn *in, // IN
4959+ unsigned int delay, // IN
4960+ RpcIn_Callback resetCallback, // IN
4961+ void *resetClientData, // IN
4962+ RpcIn_ErrorFunc *errorFunc, // IN
4963+ RpcIn_ClearErrorFunc *clearErrorFunc, // IN
4964+ void *errorData) // IN
4965 #endif
4966 {
4967 ASSERT(in);
4968@@ -1811,6 +1854,7 @@ RpcIn_start(RpcIn *in, // IN
4969 in->delay = 0;
4970 in->maxDelay = delay;
4971 in->errorFunc = errorFunc;
4972+ in->clearErrorFunc = clearErrorFunc;
4973 in->errorData = errorData;
4974
4975 /* No initial result */
4976diff --git a/open-vm-tools/lib/sslDirect/sslDirect.c b/open-vm-tools/lib/sslDirect/sslDirect.c
4977index 583e112..774fb50 100644
4978--- a/open-vm-tools/lib/sslDirect/sslDirect.c
4979+++ b/open-vm-tools/lib/sslDirect/sslDirect.c
4980@@ -810,9 +810,63 @@ SSL_TryCompleteAccept(SSLSock ssl) // IN
4981 *
4982 * For the VMware Product Security Policy approved ciphers, see
4983 * https://wiki.eng.vmware.com/VSECR/vSDL/PSP/PSPRequirements#.C2.A0.C2.A0.5B3.3.E2.80.93M.5D_TLS_Cipher-Suites
4984+ *
4985+ * This list is tweaked to sort by GCM instead of by key size, as GCM adds
4986+ * much more value than a large AES key.
4987 */
4988 #define SSL_CIPHER_LIST \
4989- "!aNULL:kECDH+AES:ECDH+AES:RSA+AES:@STRENGTH"
4990+ "!aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES"
4991+
4992+
4993+/*
4994+ *-----------------------------------------------------------------------------
4995+ *
4996+ * SSLGetDefaultProtocolFlags --
4997+ *
4998+ * Configured default SSL_CTX options (protocol subset).
4999+ *
5000+ * Results:
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches