#endif
} else if (pluginData.vmxConnectRequested) {
/*
- * Closing pluginData.vmxListenSock cancels pending VmxConnectCb() call,
- * second call of AsyncSocket_ListenVMCI() results in a new vsocket
- * listening port number.
+ * GuestStoreAccessDisable() closes pluginData.vmxListensock, which
+ * cancels any pending VmxConnectCb() call.
+ * GuestStoreAccessDisable() also calls StopVmxToGuestConnTimeout().
*/
g_info("Perform tools reset without VMX connection "
"but VMX connect request was made.\n");
- GuestStoreAccessDisable(); // Calls StopVmxToGuestConnTimeout()
- if (pluginData.guestStoreAccessEnabled &&
- !CheckAndUpdateFeatureDisabled()) {
- GuestStoreAccessEnable();
- }
+ GuestStoreAccessDisable();
}
}
* Handle TOOLSOPTION_ENABLE_GUESTSTORE_ACCESS Set_Option callback.
*
* Results:
- * TRUE on success.
+ * TRUE if action is taken on the signal.
*
* Side-effects:
* None
if (strcmp(value, "1") == 0 &&
!pluginData.guestStoreAccessEnabled) {
- if (CheckAndUpdateFeatureDisabled()) {
+ if (pluginData.featureDisabled) { // Use cached state here
g_info("GuestStore access is deactivated on guest side.\n");
} else {
GuestStoreAccessEnable();
/*********************************************************
- * Copyright (C) 2008-2021 VMware, Inc. All rights reserved.
+ * Copyright (C) 2008-2022 VMware, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
#endif
/*
- * guestStoreClient library is needed for both Gueststore based tools upgrade
+ * guestStoreClient library is needed for both GuestStore-based tools upgrade
* and also for GlobalConfig module.
*/
#if defined(_WIN32) || defined(GLOBALCONFIG_SUPPORTED)
}
#endif
-/*
- * guestStoreClient library is needed for both Gueststore based tools upgrade
- * and also for GlobalConfig module.
- */
#if defined(_WIN32) || defined(GLOBALCONFIG_SUPPORTED)
+ /*
+ * guestStoreClient library is needed for both GuestStore-based tools
+ * upgrade and also for GlobalConfig module.
+ */
if (state->mainService && GuestStoreClient_DeInit()) {
g_info("%s: De-initialized GuestStore client.\n", __FUNCTION__);
}
ToolsCoreReportVersionData(state);
}
-/*
- * guestStoreClient library is needed for both Gueststore based tools upgrade
- * and also for GlobalConfig module.
- */
+#if defined(_WIN32)
+ /*
+ * Call ToolsNotify_Start() to create the global VMToolsNeedReboot event
+ * before loading plugins so that plugins can open the event in their init
+ * routines.
+ */
+ if (state->mainService && ToolsNotify_Start(&state->ctx)) {
+ g_info("%s: Successfully started tools notifications.\n", __FUNCTION__);
+ }
+#endif
+
#if defined(_WIN32) || defined(GLOBALCONFIG_SUPPORTED)
+ /*
+ * guestStoreClient library is needed for both GuestStore-based tools
+ * upgrade and also for GlobalConfig module.
+ */
if (state->mainService && GuestStoreClient_Init()) {
g_info("%s: Initialized GuestStore client.\n", __FUNCTION__);
}
*/
if (state->mainService) {
if (ToolsCoreHangDetector_Start(&state->ctx)) {
- g_info("%s: Successfully started tools hang detector",
+ g_info("%s: Successfully started tools hang detector.\n",
__FUNCTION__);
}
-#if defined(_WIN32)
- if (ToolsNotify_Start(&state->ctx)) {
- g_info("%s: Successfully started tools notifications",
- __FUNCTION__);
- }
-#endif
}
#if defined(GLOBALCONFIG_SUPPORTED)
if (GlobalConfig_Start(&state->ctx)) {
- g_info("%s: Successfully started global config module.",
+ g_info("%s: Successfully started global config module.\n",
__FUNCTION__);
gGlobalConfStarted = TRUE;
}