}
-#if defined(_WIN32)
-/**
- * Callback TOOLS_CORE_SIG_GLOBALCONF_UPDATE signal. The signal is
- * triggered whenever a new global configuration is downloaded.
- *
- * @param[in] src The source object.
- * @param[in] ctx The ToolsAppCtx for passing config.
- * @param[in] state Service state.
- */
-
-static void
-ToolsCoreGlobalConfUpdateSignalCb(gpointer src,
- ToolsAppCtx *ctx,
- ToolsServiceState *state)
-{
- g_debug("%s: global config is updated. Reloading the config.", __FUNCTION__);
-
- ToolsCore_ReloadConfigEx(state, FALSE, TRUE);
-}
-#endif
-
-
/**
* IO freeze signal handler. Disables the conf file check task if I/O is
* frozen, re-enable it otherwise. See bug 529653.
g_info("%s: Successfully started tools hang detector",
__FUNCTION__);
}
+ }
+
#if defined(_WIN32)
- if (GlobalConfig_Start(&state->ctx)) {
- g_info("%s: Successfully started global config module.",
- __FUNCTION__);
- if (g_signal_lookup(TOOLS_CORE_SIG_GLOBALCONF_UPDATE,
- G_OBJECT_TYPE(state->ctx.serviceObj)) != 0) {
- g_signal_connect(state->ctx.serviceObj,
- TOOLS_CORE_SIG_GLOBALCONF_UPDATE,
- G_CALLBACK(ToolsCoreGlobalConfUpdateSignalCb),
- state);
- g_debug("%s: Registered the handler for the "
- "global config update signal.", __FUNCTION__);
- gGlobalConfEnabled = TRUE;
- } else {
- g_debug("%s: Failed to register the handler for the "
- "global config update signal", __FUNCTION__);
- }
- }
-#endif
+ if (GlobalConfig_Start(&state->ctx)) {
+ g_info("%s: Successfully started global config module.",
+ __FUNCTION__);
+ gGlobalConfEnabled = TRUE;
}
+#endif
g_main_loop_run(state->ctx.mainLoop);
#endif
*
* @param[in] state Service state.
* @param[in] reset Whether to reset the logging subsystem.
- * @param[in] force If TRUE, the config file will be loaded even if it
- * has not been modified since the last check.
*/
void
-ToolsCore_ReloadConfigEx(ToolsServiceState *state,
- gboolean reset,
- gboolean force)
+ToolsCore_ReloadConfig(ToolsServiceState *state,
+ gboolean reset)
{
gboolean first = state->ctx.config == NULL;
gboolean loaded;
- if (force) {
- /*
- * Set the configMtime to 0 so that the config file from the file system
- * is reloaded. Else, the config is loaded only if it's been modified
- * since the last check.
- */
- state->configMtime = 0;
+#if defined(_WIN32)
+ gboolean globalConfLoaded = FALSE;
+
+ if (gGlobalConfEnabled) {
+ globalConfLoaded = GlobalConfig_LoadConfig(&state->globalConfig,
+ &state->globalConfigMtime);
+ if (globalConfLoaded) {
+ /*
+ * Set the configMtime to 0 so that the config file from the file system
+ * is reloaded. Else, the config is loaded only if it's been modified
+ * since the last check.
+ */
+ state->configMtime = 0;
+ }
}
+#endif
loaded = VMTools_LoadConfig(state->configFile,
G_KEY_FILE_NONE,
&state->ctx.config,
&state->configMtime);
+
#if defined(_WIN32)
- if (gGlobalConfEnabled && (loaded || force)) {
- gboolean globalConfigUpdated = GlobalConfig_Update(state->ctx.config);
- loaded = loaded || globalConfigUpdated;
+ if (loaded || globalConfLoaded) {
+ gboolean configUpdated = VMTools_AddConfig(state->globalConfig,
+ state->ctx.config);
+ loaded = loaded || configUpdated;
}
#endif
}
-/**
- * Reloads the config file and re-configure the logging subsystem if the
- * log file was updated. If the config file is being loaded for the first
- * time, try to upgrade it to the new version if an old version is
- * detected.
- *
- * @param[in] state Service state.
- * @param[in] reset Whether to reset the logging subsystem.
- */
-
-void
-ToolsCore_ReloadConfig(ToolsServiceState *state,
- gboolean reset)
-{
- ToolsCore_ReloadConfigEx(state, reset, FALSE);
-}
-
-
#if defined(_WIN32)
/**