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),
* 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;
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;
status = HGFS_ERROR_PROTOCOL;
}
+ free(targetName);
+
HgfsServerCompleteRequest(status, replyPayloadSize, input);
}
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,
};
/*
- * 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);
-
-
/*
*-----------------------------------------------------------------------------
*
VixEventProc *callbackProc,
void *clientData);
-VixHandle VixVM_OpenUrlInGuest(VixHandle vmHandle,
- const char *url,
- int windowState,
- VixHandle propertyListHandle,
- VixEventProc *callbackProc,
- void *clientData);
-
-
/*
* Guest File functions
*/
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
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
*/
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*/
};
*/
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
}
void *eventQueue,
char **result);
-static VixError VixToolsOpenUrl(VixCommandRequestHeader *requestMsg);
-
static VixError VixToolsCheckUserAccount(VixCommandRequestHeader *requestMsg);
static VixError VixToolsProcessHgfsPacket(VixCommandHgfsSendPacket *requestMsg,
}
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;
}
} // 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
-
-
/*
*-----------------------------------------------------------------------------
*
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:
// 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:
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: