summaryrefslogtreecommitdiff
path: root/open-vm-tools/ChangeLog
blob: ad04b12f02220abea7ff6ef1f8b0c5e7ff93c976 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
open-vm-tools-10.0.0 build 3000743

*	Common versioning

*	Quiesced snapshots

*	hgfs-fuse

*	Logging changes

*	AsyncSocket changes

*	Change ASSERT macros to VERIFY

*	Additional locking fixes and optimizations

*	Unicode type and macro cleanup

*	Change glib logging in RpcChannel to use Debug/Warning/Panic.

*	Clean up HGFS server unpack file name V3 arguments

*	Fix nested logging for VmxLogger with vsocket channel.

*	Compile mac-rdpvcbridge from cart-dev

*	Implement VMware Tools for ESXi 6.0 guests.

*	Get rid of ASSERT_ALWAYS_AVAILABLE

*	Get rid of ASSERT_LENGTH.

*	Move ASSERT_OR_IN_PANIC() from public/vm_assert.h to vmkernel.

*	Make lib/location product-agnostic

*	desktopEvents: Leave libICE rug firmly under libSM.

*	Remove SLPv2

*	Provide a kill-switch for using vsocket in RpcChannel.

*	Use binary search tree to map guest os string to guest os enum.

*	codeset: use icuDir instead of libDir

*	Remove NR_MPNS_PER_PAGE

*	Make FileIO_AtomicUpdate fail gracefully when File_FullPath fails.

*	Merge atomic FetchAndAdd64 with ReadAdd64.

*	Rename Atomic_FetchAdd, part 1.

*	AsyncSocket: Remove UDP socket support.

*	Introduce Id_IsSetUGid for detecting setuid/setgid binaries.

*	Update WS, player version numbers on *-main branch.

*	Integrate all VIX changes from hosted13-pd-rel to vmcore-main.

*	Rename Atomic_FetchAnd*, part 5.

*	Cache Tools conf path.

*	No more Atomic_Fetch.

*	Add configuring of the Windows core dump flags for the tools service

*	Temporary fix for PR 1111448.

*	Add surface logging to basicOps

*	Id_IsSetUGid fails to compile on Android.

*	Add devel backdoor command to run replays inside frobos tests.

*	Save registers earlier during Panic.

*	Prepare the HGFS Windows client to use VMCI transport header version 2

*	Get Mac OS system version from (Server|System)Version.plist

*	WebMKS plumbing: vmx side

*	Create new V2 of VMCI transport header

*	   Minor logging cleanup in vmware-vprobe

*	Notify VMX when Toolsd is going down

*	Remove ovftool temporary fix.

*	Add /proc/interrupts and /proc/irq/* to vm-support

*	Remove HGFS from FreeBSD builds and packaging

*	Split DR6_ONES into DR6_DEFAULT and DR6_ONES

*	Add utilMem to Frobos

*	Support Intel RTM Debug behavior in VT mode.

*	MSG: Skip errno localization on unknown platforms.

*	Replace CPU_MemBarrier with Atomic_MFence

*	Prevent low privileged user from writable access to tools conf data

*	Change shutdown notification RPC failure message to debug.

*	Eliminate some "legacy IPC baggage".

*	Fix tools_obj_linux64 build (license file mismatch)

*	Convert the HGFS uses of ASSERT_DEVEL into ASSERT or remove

*	arm64 support in vm_basic_{types,defs}.h

*	Add an error function hook to PollDefault

*	arm64 support in vm_[basic_]asm.h

*	asyncWebSocket: improve rmks warning message when WebSocket connection fails due to bad SSL cert.

*	Implement MXUser semaphores on Mac OS with lib dispatch semaphores

*	Replace 3-clause BSD license template with 2-clause BSD license

*	vm_basic_{types,asm}.h: cleanup architecture #ifdefs

*	Add a surface flag for 16-byte image alignment in mobs

*	Change config.version from String to Long.

*	Fix HGFS server change notification packet handling.

*	Cleanup "vm_basic_defs.h"

*	vm_atomic: add ARM64 atomic operations.

*	Enable the HGFS VMCI VMX and HGFS server use the V2 header

*	Implement Devel ScreenShot command

*	Fix the HGFS protocol opcode to differentiate headers

*	vmkBoot: refactor serial, arm64 serial & panic.

*	vm_atomic: fix arm64 ReadIfWriteEqual atomics.

*	arm: bug fixes for uint*set implementations.

*	Rework the tools heartbeat code in the VMX.

*	vm_atomic: eliminate non-ASCII chars in comment.

*	Remove the incorrect immediate constraint from 64-bit atomic ops

*	Refactor code under guestinfo/getlib.

*	Remove __builtin_*_address(N) compile checks.

*	boot: misc. vmkernel changes to allow arm64 boot.c compile.

*	debug: move debug to main/x86, arm64 stubs.

*	prda/specialstack: refactor to split out arch deps, arm64 support.

*	Cleanup guestinfo plugin header dependency.

*	Change WSAAddressToString to WSAAddressToStringA

*	  Handle EINVAL for preadv and pwritev.

*	Change GET_CURRENT_LOCATION definition.

*	Check if __GLIBC_PREREQ is defined before using it.

*	Add support for IOMMU guest addresses > 16TB.

*

*	Fix Atomic_Read on ARMv7.

*	Create a trivial view when both the texture and the view are R24G8 class.

*	vm_atomic: fix ARM 32/64-bit Atomic_Read.

*	OvhdMem refactor + pull from vmioplugin branch

*	cpuset/vm_basic_asm: use standard clr/ctz primitives.

*	vm_basic_asm: fix windows build breakage.

*	vSock: Rename "VMCI Sockets".

*	Disable nullDriver by default and add a config switch to enable it.

*	First submit of the VDTI PCI Device.

*	  Cleanup/Rationalize coreDump

*	vSock VMX: Introduce a separate sendCb field

*	Don't define g_info if it is available.

*	A virtual USB video device backend.	

*	A virtual video device backend.

*	Skip freezing remote mounts.

*	lib/file: Various fixes to FileIOP(read|write)vInternal and FileIO_(Readv|Writev).

*	Use int 31 instruction to trigger an assert in the VMKernel

*	vm_basic_asm: fix uint32set for arm64.

*	Clean up of APIs used by the HGFS server library

*	Clean up the HGFS server shares interface to the HGFS server part II

*	Ignore disk UUIDs from the paths to be frozen.

*	Clean up the HGFS server use of the policy share enumeraton APIs

*	fix HostinfoGetOSShortName to support Debian 7.x

*	remove unnecessary constraints for ABSOLUTELY_NOINLINE define

*	More clean up the HGFS server manager, policy manager APIs

*	Remove MPN32 related macros.

*	lib/uuid: Add CreateRandomEFI, and cleanup

*	Fix buffer overflow in perfMonLinux

*	AsyncSocket: hostname/IP string connection functions should attempt both IPv4 and IPv6 connections.

*	lib/lock: lock tracking tree optimization

*	Fast send on the asynNamedPipe if Write completes synchronously.

*	increase MAX_MPN to 38 bits

*	finish conversion of invalid_mpn64 and max_mpn64

*	Change Mul64x3264 family of functions to round instead of truncating

*	Add CACHELINE_SIZE to vm_basic_defs.h.	

*	Memory is accessed after being freed in function

*	Add some debug noise to RPCs received in guest.

*	Add SMAP support to MMU page walkers and MonTLB

*	lib/file: File_Rotate needs some protection

*	Hgfs VMCI: move packet max size to the correct location

*	Hgfs Server: remove transport only header file from the server.

*	Log errors in RandomBytesWin32.

*	Defer the RunScript cleanup when VIX commands are restricted.

*	Add support in resolution set to log multiple sessions in RDSH.

*	Make Clamped_SAdd32 more robust against compiler options

*	Compare the remote FS type strings the right way.

*	VIX plugin under vmusr should not register for TOOLS_CORE_SIG_IO_FREEZE.

*	Add runtime macros to check type of tools service.

*	vm_atomic: remove unfenced atomic operations.

*	vm_atomic: LOCK-like semantics for arm64 atomics.

*	refcount/vm_basic_asm: multi-architecture memory barriers.

*	Hgfs Server: Fix unpacking of protocol header unused fields

*	Enlarge MAX_IFACES to ensure vmtools could get a valid GOS IP throguh NetUtil_GetPrimaryIP().

*	Change BPN to be a 64 bit type.

*	lib/lock: MXUser_Control* -> typed functions [trivial?]

*	fix bad error

*	ARM64: Add more basic assembler support

*	Guest Tools: Add memNeeded for Windows and Linux and handle versioning

*	Fix incorrect LRU file accounting for memNeeded on Linux

*	Change the bit representation of BPN to make way for NVM.

*	tools perf mon: collect more stats from /proc/meminfo

*	Remove vmxwifi.sys and macWireless_defs.h

*	tools perf mon: refactor

*	tools data collection: Collect all of the new Linux data	

*	Guest stats: fix the time base

*	gos tables: Table must be sorted; reinsert "coreos-64" accordingly

*	guest performance data: no need to have a maximum RPC transfer size

*	guest perf stats: replumb GuestInfo_PerfMon

*	guest perf stats: GuestInfo_PerfMon builds the RPC data itself

*	guest perf data: collect the Linux data

*	guest perf data: return the new protocol

*	guest perf stats: ice the cake (add some polish)

*	guest perf stats: Linux goes to the new format

*	Hgfs Posix Server: fix the writes to not exceed max file size

*	Stick backdoor behavior after vSocket connection failure.

*	Hgfs Posix Server: fix Solaris tools obj builds for log statements

*	Fix memory leak in hgfs server.

*	Implement QuadBlit for DX11Renderer.

*	Add feature-specific RDE Dev Targets - folderRedirection, tsmmr, viewMP

*	MX_Lock should not use HLE on unpatched Haswell systems

*	Hgfs Posix Server: add some useful logging for symlink names

*	lib/file: Don't leak a filename in FileRotateByRenumber.

*	Hgfs Posix Server: add more useful logging to open

*	Hgfs Posix Server: fix open requests failing EAGAIN (EWOULDBLOCK)

*	Sometimes channel can be NULL, this will make vmtools panic.

*	lib: misc/sig support for arm64 (redux).

*	HostType: stop using sysctl

*	authPosix: use getspent when using shadow password, but not PAM

*	Added protocol selection to bora AsyncWebSocket.- Changed VNC Client offer 'vmware-vvc' protocol as an additional protocol.

*	Enable 3D with DX11Renderer and port over the existing PROTOTYPE RenderOps functions.

*	Create the support dir under /tmp instead of CWD.

*	Disable NullDriver backend only for forceQuiece case.

*	Hgfs Server: fix malformed symlink creation requests

*	Hgfs Server: fix check malformed read packets

*	Fix Ubuntu errors in the vm-support script.

*	Expose BDOOR_CMD_VCPU_MMIO_HONORS_PAT to guest.

*	Add optional websocket protocols parameter to AsyncSocket_ListenWebSocketUDS.  If NULL then default (legacy) protocols are used.

*	Allow the network script to bring each individual interface up/down.

*	deployPkg plugin: make deployPkg.cpp build as C or C++

*	GOSTable: Plumb vmkernel6 as a separate bit

*	add deployPkg files to open-vm-tools

*	Introduce mkfsPmem, libpmem for managing pmem resources via the kernel from user-space.

*	Allow to queue MCE requests form the kernel to the VMM.

*	HGFS: Remove R/R

*	Replace PUSHF/POPF with STAC/NOP when setting EFLAGS.AC

*	lib/file: hostd crashes in assertion failure due to file list

*	Tools: Create GuestInfo_GetPrimaryIP as a IPv6 compliant version of NetUtil_GetPrimaryIP

*	Remove memNeeded calculation from the guest tools

*	Move SIZE_xxBITS to common architecture file.

*	GOSTable: Windows 10 as a unique guest

*	Set _FILE_OFFSET_BITS=64 for Solaris

*	Plumbing to expose (whitelisted) vsi-based stats in guest

*	Assorted _FILE_OFFSET_BITS=64 / _LARGEFILE64_SOURCE fixups

*	Serial: [2/16] Serial8250 - refactor into generic and platform parts.

*	lib/log: Improve the level filtering implementation and documentation

*	lib/log: no need to "blip" the lock

*	lib/misc: header clean up

*	Add 16 bits atomics to vm_atomic.h.

*	Add 16 bits atomics for arm64

*	Clean up some file headers

*	Begin plumbing guest mks stats out to the host.

*	lib/log: improved documentation in log.h

*	Converting MPN to MPN32.

*	Reimplement guestproxycerttool.pl in C.

*	Atomic Boolean support

*	Add grabbitmqProxy plugin to open-vm-tools.

*	Windows 10: an all Windows 10 macro

*	Remove some vacuous FileIO usage

*	Introducing 64-bit MPN type.

*	mks: add shared-secret authentication for Blast websocket connections

*	Windows 10: add macros for all 32 and all 64 bit

*	Add guestproxycerttool (C-implementation) to open-vm-tools and OSPs.

*	cleanup app balloon in vmm, vmx, and parts of vmkernel

*	Honour panic.breakOnPanic on Posix.

*	hashTable: free function work like our other free functions

*	Introduce certificate hash verification in blast native clients.

*	Forward declare sslverifyparam in ssldirect.h

*	asyncWebsocket: move WebSocketHandshakeState into asyncWebSocket.c

*	RecordReplayRemoval: make RR go away from automation tools.

*	tools: improved memNeeded

*	guest stats: Use DynBufs

*	guest tools: a bit of consolidation

*	guest stats: rates in pages per second

*	Guest stats: Dynamically capture stats in Linux

*	guestStats: optimize memory allocation

*	guest stats: Linux deals with overflow

*	guest stats: consistent open file failure messages

*	GuestStat: improve function header

*	GuestStat: more function header cleanup

*	Stop publishing guest stats from VSI/GuestMemInfo structure.

*	Guest Stats: extensible reporting

*	Use new #define _DEFAULT_SOURCE to build open-vm-tools.

*	Publish Windows guest stats via V5 format

*	Guest stats: Only populate Linux legacy values that have been consumed

*	guest stats: Linux publish names as defines

*	Windows stat code cleanup

*	GuestStat: official registed the build in names

*	Adjust lock ranks for IO filters.

*	asyncWebSocket: remove hybi designator and consolidate code

*	asyncWebSocket: simplify protocol lists and framing

*	asyncSocket: simplify the interface for specifying websocket protocols

*	GuestStat: Name data is properly name string

*	lib/misc: Support Util_IsAbsolutePath on Solaris and FreeBSD

*	Hgfs Server: fix unpack of file name args for directory open

*	Minor updates to windows stat code

*	GuestStats: Better data validation and names

*	Debug log messages and minor fixes.

*	Add TLS caching for gettid calls on Linux

*	Add File_DeleteDirectoryContent.

*	Allow vm-support script execution only for root user.

*	GuestStats: rationalize the stat datum bits

*	No more MPN64 type.

*	Gettid TLS: fix coredumping

*	sigPosix scrub: more consistent self-signal behavior and remove unused code

*	Guest Stats: fix alphabetization

*	Publish stats for Windows pagefile size and used subset in KB

*	GuestOps: Set file ownership before setting file permissions.

*	GuestStats: no time units.

*	GuestSDK: remove vmtools.dll/so dependency

*	Use new generic way to collect guest stats and remove unused legacy guest stats.

*	Remove vmioplugin.

*	Use GOnce in pollGtk instead of a static mutex.

*	Update hgfsServer alias code.

*	Inline ASM for rotate left/right instruction

*	Add backdoor command to restrict vmmouse

*	Add Posix File to hgfsURI

*	lib/file: FileSleeper must really sleep

*	Fix unnecessary cast

*	Add LIKELY/UNLIKELY into MXUserRec

*	Fix argument order for InterlockedCompareExchange8

*	rmks/ssl: change SSL verification for View/Blast RMKS connections to reject mismatched thumbprint always

*	GuestStats: Linux active/inactive anon buffers

*	GuestStats: order the linux stats

*	GuestStats: Clean up include file

*	Hgfs Server: enhance logging for packet request ID

*	Allow RpcVMX_LogV to run without calling malloc.

*	Update the stat IDs list.

*	Don't mount alias target volumes while resolving HGFS file attributes

*	Remove the executable bit from various source files

*	add some improved cert debug noise

*	  Basic infrastructure support for guestIntegrity backdoor calls.

*	Implement MXUser semaphores on Mac OS with lib dispatch semaphores

*	Add a backdoor command for mksStats snapshots.

*	add vmhgfs-fuse to open-vm-tools

*	vm_basic_defs/gdb: use non-builtin offsetof for vmk gdb macros.

*	Implement MXUserEvent

*	Remove updateAgent code.

*	Change default sampling rate for guest stats to 20 seconds.

*	Include cstring to avoid 'memset not in scope' error.

*	Remove guestStats that are beyond 60u1 scope.

*	Fixes for use_after_free, double_free and double_close.

*	Use a global lock for protecting gLoggingStopped.

*	change default debugging level and location

*	adjust logging noise for vmtoolsd

*	clean up debug & warning messages in guestInfo plugin

*	clean up logging in vix plugin

*	recategorize powerOps logging messages

*	gather new default Tools logs with vm-support

*	add toolbox-cmd support for log`

open-vm-tools-9.10.2 build 2822639

*	Use new #define _DEFAULT_SOURCE to build OVT.
	
	glibc-2.20 has deprecated the _BSD_SOURCE and _SVID_SOURCE
	macros.  Starting with glibc-2.19 _DEFAULT_SOURCE is
 	recommended.  Keep the old macros because someone might
 	want to build open-vm-tools with an older glibc version.
	
	With glibc-2.20 VGAuthLog.c was picking the POSIX
 	definition for strerror_r that returns int type.
	That does not work with glibc-2.2, which has only one
 	definition with return type char *.  For better
 	compatibility with various glibc versions, use the
	_GNU_SOURCE definition of strerror_r that returns char *.
	
*	Fix a compilation error in toolboxcmd-shrink.c with gcc 5.0.1.

	Building open-vm-tools for Fedora 22 hit a compilation
 	error with gcc 5.0.1.

	Also remove some redundant code. ShrinkGetMountPoints()
	calls ShrinkGetWiperState() and handles the
 	WIPER_UNAVAILABLE and WIPER_DISABLED cases. The call to
 	ShrinkGetWiperState() is redundant because wiper state
	will always be WIPER_ENABLED.
	
*	Fix the compiler version check and include mul64.h.
	
	The compiler check was intended to be >= GCC 4.4, but it
	was insisting that the major and minor version numbers
	of GCC both be >= 4, so it was breaking on Fedora 22,
 	which has GCC 5.1.1, and for a user who was building with
 	GCC 4.3.
	
	For old compilers we need to provide mul64.h, so include
	it in open-vm-tools.
	
*	Retry sending vmbackup event with elevated privileges.
	
	A privilege check on the host side was implemented in
	ESXi 5.5. Due to this change, once guest/Toolsd sends
	iopl_elevation capability (RPC msg
	"tools.capability.iopl_elevation") to an ESXi 5.5 host,
	it requires guest to elevate the privileges before the
	guest sends vmbackup event. Linux Tools version 9.4.x
	sends this capability and enables this behavior on the
	host.  Tools version 9.10.0 does not send iopl_elevation
	capability and does not require privilege elevation.
	Therefore, in order to workaround the host behavior, we
	retry sending the vmbackup event after elevating the guest
	privileges. To avoid doubling the RPC messages from
 	Toolsd, we also cache the last failure result from the
	unprivileged attempt for the duration of current vmbackup
	operation.
	
*	vSock changes to prepare for FreeBSD
	
	Add support to header files for FreeBSD.  For now just
	add some stubs that return errors.
	 
*	add a -h option to vgauth

	vgauth is not normally run from a command line, but
	add a -h option to provide minimal documentation.
	
*	Bump Tools version to 9.10.2 for open-vm-tools release.
	
*	Workaround NFS open bug by retrying on ESTALE
	
	RFC 1341775 uncovered an NFS client open race which causes 
	open to fail with ESTALE if there is another host trying to
	atomically swap the file at the same time. This causes the file to
	be unlinked which might cause the thread trying to open it (for 
	acquiring lock) to fail with ESTALE. 

	Implement a very simple fix which retries for 3 seconds
	upon getting ESTALE. 
 
*	Fix the HGFS protocol opcode to differentiate headers
	
	For differentiating the older HgfsRequest and the new
	HgfsHeader structures sent in an HGFS packet, the old
	header opcode is set to 0xff using HGFS_V4_LEGACY_OPCODE.
	
	This should have been made a specific value of the HGFS
	opcode enum and named for what it really means, but the
	enum type could clash with the HGFS_V4_LEGACY_OPCODE by
	accident if enough values are added.
	
	There is a potential issue with the newer HgfsHeader
	object where it overlays the old HgfsRequest op field.
	The new header tries to break the field into the first
	byte and save the remaining 3 bytes for a different use.
 	However, this cannot be done as the current and shipping
 	HGFS server code uses the HgfsRequest and op field
	(4 bytes) to verify the value is 0xFF. If this is a match
 	then it is deemed that the packet has the new header. If
 	the client tried to use any of the new header's reserved2
 	fields (overlayed with part of the old header op field)
	then the HGFS server test for a new header would fail to
 	match.
	
	Fixed the HgfsHeader opcode fields to actually be the
	correct HgfsOp type.

	Removed the define for HGFS_V4_LEGACY_OPCODE and made it
	part of the opcode enum to ensure correct type checking.

	Added an assert on compile to ensure that the HGFS opcode
	values don't encroach on the invalid opcode used to
	determine the header type.

	Renamed the HGFS_V4_LEGACY_OPCODE to conform with the
	existing enum values and state exactly what its meaning
	is: HGFS_OP_NEW_HEADER.
	
	Now the 4 bytes cannot be used for anything but the
	protocol opcode new header value. This also corrects any
	strict typing by compilers for building open vm tools in
	newer guest operating systems.
	
*	Thaw filesystems when the snapshot commit message to VMX fails.  
	
	If it takes a long time to freeze filesystems, VMX may
	timeout the snapshot operation so the commit fails.
	After this happens, thaw the frozen filesystems.
	
*	open-vm-tools: fixes to build on FreeBSD 10
	
	Various fixes to make open-vm-tools build on FreeBSD:

	- disable vsock for OSes other than Linux
	- define CheckSanity only ifdef VMX86_DEBUG
	- make build of hgfsUriPosix depend on having gtkmm,
	  and enable on FreeBSD
	- xferlogs.c does not need wchar.h

	Instructions for building on FreeBSD:

	1. Install gcc48 with 'pkg install gcc'
	2. Install build dependencies:
	   glib libdnet libXinerama libXrandr gtk2 gtkmm24
	3. autoreconf -i --force
	4. env CC=gcc48 CFLAGS=-Wl,-rpath=/usr/local/lib/gcc48
	       CPPFLAGS="-I/usr/local/include/"
	       LIBS="-L/usr/local/lib" 
	       ./configure --without-kernel-modules
	       --without-xmlsecurity --without-icu
	       --disable-vgauth --disable-grabbitmqproxy
	       --disable-deploypkg
	5. make
	 
*	Don't build vmxnet driver for Linux >= 3.3

	The vmxnet driver does not build for Linux kernel
	versions >= 3.3.

*	Don't build HGFS kernel driver for Linux >= 3.17.0

	The HGFS kernel component is old and has many changes missing
	to support newer Linux kernel releases.  There will be a newer
	update coming which will include all of the changes necessary
	for newer Linux kernels to be supported.

	For now, we are limiting the building of the current HGFS
	kernel client to Linux kernels 3.17.0 and earlier for this
	release of open-vm-tools. This will allow the build of the
	open-vm-tools package to complete on newer kernel versions.