From: VMware, Inc <> Date: Tue, 26 Apr 2011 20:53:42 +0000 (-0700) Subject: Internal branch sync. Included in this change: X-Git-Tag: 2011.04.25-402641~47 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=004c98fb4c3db6d7fec04fde05feaaa85964386c;p=thirdparty%2Fopen-vm-tools.git Internal branch sync. Included in this change: . Remove memcmp call from eth_public.h, to work around an issue found with newer GCC versions not including string.h. . changes in shared code that don't affect open-vm-tools functionality. Signed-off-by: Marcelo Vanzin --- diff --git a/open-vm-tools/lib/foundryMsg/foundryMsg.c b/open-vm-tools/lib/foundryMsg/foundryMsg.c index cc96bff7b..5ff2a6609 100644 --- a/open-vm-tools/lib/foundryMsg/foundryMsg.c +++ b/open-vm-tools/lib/foundryMsg/foundryMsg.c @@ -160,8 +160,7 @@ static const VixCommandInfo vixCommandInfoTable[] = { VIX_DEFINE_COMMAND_INFO(VIX_COMMAND_OPEN_VM, VIX_COMMAND_CATEGORY_PRIVILEGED), VIX_DEFINE_UNUSED_COMMAND, - VIX_DEFINE_COMMAND_INFO(VIX_COMMAND_OPEN_URL, - VIX_COMMAND_CATEGORY_ALWAYS_ALLOWED), + VIX_DEFINE_UNUSED_COMMAND, /* GET_HANDLE_STATE is needed for the initial handshake */ VIX_DEFINE_COMMAND_INFO(VIX_COMMAND_GET_HANDLE_STATE, VIX_COMMAND_CATEGORY_ALWAYS_ALLOWED), diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c index ddc2e56ad..989204a5e 100644 --- a/open-vm-tools/lib/hgfsServer/hgfsServer.c +++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c @@ -4163,7 +4163,7 @@ HgfsServerStatFs(const char *pathName, // IN: Path we're interested in * delimiter on copy. Allow 0 length drives so that hidden feature "" can * work. */ - if (pathLength < 0 || pathLength >= sizeof p.mountPoint) { + if (pathLength >= sizeof p.mountPoint) { LOG(4, ("%s: could not get the volume name\n", __FUNCTION__)); return FALSE; @@ -5358,8 +5358,8 @@ HgfsQueryVolume(HgfsSessionInfo *session, // IN: session info uint64 *totalBytes) // OUT: capacity in bytes { HgfsInternalStatus status = HGFS_ERROR_SUCCESS; - uint64 outFreeBytes; - uint64 outTotalBytes; + uint64 outFreeBytes = 0; + uint64 outTotalBytes = 0; char *utf8Name = NULL; size_t utf8NameLen; HgfsNameStatus nameStatus; @@ -6802,6 +6802,8 @@ HgfsServerGetattr(HgfsInputParam *input) // IN: Input params status = HGFS_ERROR_PROTOCOL; } + free(targetName); + HgfsServerCompleteRequest(status, replyPayloadSize, input); } diff --git a/open-vm-tools/lib/include/vix.h b/open-vm-tools/lib/include/vix.h index abca1dfc5..d4eee0fbe 100644 --- a/open-vm-tools/lib/include/vix.h +++ b/open-vm-tools/lib/include/vix.h @@ -562,7 +562,10 @@ void Vix_FreeBuffer(void *p); typedef int VixHostOptions; enum { - VIX_HOSTOPTION_USE_EVENT_PUMP = 0x0008, + /* + * The following option was removed in version 1.11. + VIX_HOSTOPTION_USE_EVENT_PUMP = 0x0008, + */ VIX_HOSTOPTION_VERIFY_SSL_CERT = 0x4000, }; @@ -651,17 +654,22 @@ VixHandle VixHost_OpenVM(VixHandle hostHandle, /* - * Event pump + * Following functions were removed in version 1.11. + * + typedef int VixPumpEventsOptions; + enum { + VIX_PUMPEVENTOPTION_NONE = 0, + }; + void Vix_PumpEvents(VixHandle hostHandle, VixPumpEventsOptions options); + + VixHandle VixVM_OpenUrlInGuest(VixHandle vmHandle, + const char *url, + int windowState, + VixHandle propertyListHandle, + VixEventProc *callbackProc, + void *clientData); */ -typedef int VixPumpEventsOptions; -enum { - VIX_PUMPEVENTOPTION_NONE = 0, -}; - -void Vix_PumpEvents(VixHandle hostHandle, VixPumpEventsOptions options); - - /* *----------------------------------------------------------------------------- * @@ -897,14 +905,6 @@ VixHandle VixVM_RunScriptInGuest(VixHandle vmHandle, VixEventProc *callbackProc, void *clientData); -VixHandle VixVM_OpenUrlInGuest(VixHandle vmHandle, - const char *url, - int windowState, - VixHandle propertyListHandle, - VixEventProc *callbackProc, - void *clientData); - - /* * Guest File functions */ diff --git a/open-vm-tools/lib/include/vixCommands.h b/open-vm-tools/lib/include/vixCommands.h index cc7b29954..8ad120c2a 100644 --- a/open-vm-tools/lib/include/vixCommands.h +++ b/open-vm-tools/lib/include/vixCommands.h @@ -1321,22 +1321,6 @@ struct VixMsgSetSharedFolderRequest { VixMsgSetSharedFolderRequest; -/* - * ********************************************************** - * Open a URL in the guest. - */ -typedef -#include "vmware_pack_begin.h" -struct VixMsgOpenUrlRequest { - VixCommandRequestHeader header; - - int32 windowState; - uint64 urlLength; -} -#include "vmware_pack_end.h" -VixMsgOpenUrlRequest; - - /* * ********************************************************** * Capture the screen of a VM @@ -2150,7 +2134,7 @@ enum { VIX_COMMAND_RUN_SCRIPT_IN_GUEST = 46, VIX_COMMAND_OPEN_VM = 47, /* DEPRECATED VIX_COMMAND_GET_DISK_PROPERTIES = 48, */ - VIX_COMMAND_OPEN_URL = 49, + /* DEPRECATED VIX_COMMAND_OPEN_URL = 49, */ VIX_COMMAND_GET_HANDLE_STATE = 50, /* DEPRECATED VIX_COMMAND_SET_HANDLE_STATE = 51, */ VIX_COMMAND_CREATE_WORKING_COPY = 55, // DELETE this when we switch remote foundry to VIM @@ -2370,7 +2354,7 @@ enum { */ enum VixToolsFeatures { VIX_TOOLSFEATURE_SUPPORT_GET_HANDLE_STATE = 0x0001, - VIX_TOOLSFEATURE_SUPPORT_OPEN_URL = 0x0002, + /* VIX_TOOLSFEATURE_SUPPORT_OPEN_URL = 0x0002, Removed in version 1.11*/ }; diff --git a/open-vm-tools/modules/shared/vmxnet/eth_public.h b/open-vm-tools/modules/shared/vmxnet/eth_public.h index a02ef9843..0619375cb 100644 --- a/open-vm-tools/modules/shared/vmxnet/eth_public.h +++ b/open-vm-tools/modules/shared/vmxnet/eth_public.h @@ -307,9 +307,14 @@ extern Eth_Address netEthBroadcastAddr; */ static INLINE Bool -Eth_IsAddrMatch(const Eth_Address addr1, const Eth_Address addr2) +Eth_IsAddrMatch(const Eth_Address addr1, const Eth_Address addr2) { +#ifdef __GNUC__ + /* string.h may not exist for kernel modules, so cannot use memcmp() */ + return !__builtin_memcmp(addr1, addr2, ETH_ADDR_LENGTH); +#else return !memcmp(addr1, addr2, ETH_ADDR_LENGTH); +#endif } diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c index 6614845ba..b3b9c7610 100644 --- a/open-vm-tools/services/plugins/vix/vixTools.c +++ b/open-vm-tools/services/plugins/vix/vixTools.c @@ -440,8 +440,6 @@ static VixError VixToolsRunScript(VixCommandRequestHeader *requestMsg, void *eventQueue, char **result); -static VixError VixToolsOpenUrl(VixCommandRequestHeader *requestMsg); - static VixError VixToolsCheckUserAccount(VixCommandRequestHeader *requestMsg); static VixError VixToolsProcessHgfsPacket(VixCommandHgfsSendPacket *requestMsg, @@ -2089,8 +2087,7 @@ VixTools_GetToolsPropertiesImpl(GKeyFile *confDictRef, // IN } err = VixPropertyList_SetInteger(&propList, VIX_PROPERTY_GUEST_TOOLS_API_OPTIONS, - VIX_TOOLSFEATURE_SUPPORT_GET_HANDLE_STATE - | VIX_TOOLSFEATURE_SUPPORT_OPEN_URL); + VIX_TOOLSFEATURE_SUPPORT_GET_HANDLE_STATE); if (VIX_OK != err) { goto abort; } @@ -3136,71 +3133,6 @@ abort: } // VixToolsObjectExists -/* - *----------------------------------------------------------------------------- - * - * VixToolsOpenUrl -- - * - * Open a URL on the guest. - * - * Return value: - * VixError - * - * Side effects: - * None - * - *----------------------------------------------------------------------------- - */ - -VixError -VixToolsOpenUrl(VixCommandRequestHeader *requestMsg) // IN -{ - VixError err = VIX_OK; - const char *url = NULL; - char *windowState = "default"; - Bool impersonatingVMWareUser = FALSE; - void *userToken = NULL; - VixMsgOpenUrlRequest *openUrlRequest; - VMAutomationRequestParser parser; - - err = VMAutomationRequestParserInit(&parser, - requestMsg, sizeof *openUrlRequest); - if (VIX_OK != err) { - goto abort; - } - - openUrlRequest = (VixMsgOpenUrlRequest *) requestMsg; - - err = VMAutomationRequestParserGetString(&parser, - openUrlRequest->urlLength, - &url); - if (VIX_OK != err) { - goto abort; - } - - err = VixToolsImpersonateUser(requestMsg, &userToken); - if (VIX_OK != err) { - goto abort; - } - impersonatingVMWareUser = TRUE; - - /* Actually open the URL. */ - if (!GuestApp_OpenUrl(url, strcmp(windowState, "maximize") == 0)) { - err = VIX_E_FAIL; - Debug("Failed to open the url \"%s\"\n", url); - goto abort; - } - -abort: - if (impersonatingVMWareUser) { - VixToolsUnimpersonateUser(userToken); - } - VixToolsLogoutUser(userToken); - - return err; -} // VixToolsOpenUrl - - /* *----------------------------------------------------------------------------- * @@ -8575,7 +8507,6 @@ VixToolsCheckIfVixCommandEnabled(int opcode, // IN case VIX_COMMAND_DIRECTORY_EXISTS: case VIX_COMMAND_GET_FILE_INFO: case VIX_COMMAND_LIST_FILESYSTEMS: - case VIX_COMMAND_OPEN_URL: case VIX_COMMAND_READ_VARIABLE: case VIX_COMMAND_WRITE_VARIABLE: case VIX_COMMAND_GET_GUEST_NETWORKING_CONFIG: @@ -8787,11 +8718,6 @@ VixTools_ProcessVixCommand(VixCommandRequestHeader *requestMsg, // IN // resultValue is static. Do not free it. break; - //////////////////////////////////// - case VIX_COMMAND_OPEN_URL: - err = VixToolsOpenUrl(requestMsg); - break; - //////////////////////////////////// case VIX_COMMAND_CREATE_TEMPORARY_FILE: case VIX_COMMAND_CREATE_TEMPORARY_FILE_EX: @@ -9019,7 +8945,6 @@ VixToolsRewriteError(uint32 opCode, // IN case VIX_COMMAND_MOVE_GUEST_FILE: case VIX_COMMAND_RUN_SCRIPT_IN_GUEST: case VIX_COMMAND_RUN_PROGRAM: - case VIX_COMMAND_OPEN_URL: case VIX_COMMAND_CREATE_TEMPORARY_FILE: case VIX_COMMAND_READ_VARIABLE: case VIX_COMMAND_WRITE_VARIABLE: