core: add monitor-connection-files=false and ReloadConnections

Add a "monitor-connection-files" config option, which can be set to
"false" to disable automatic reloading of connections on file change.

To go with this, add a new ReloadConnections method on
o.fd.NM.Settings that can be used to manually reload connections, and
add an nm-cli command to call it.
This commit is contained in:
Dan Winship
2013-05-23 19:05:40 -03:00
parent 4b74009b23
commit 1f81851017
21 changed files with 546 additions and 166 deletions

View File

@@ -205,7 +205,8 @@ usage (void)
#endif
" down [ id | uuid | path | apath ] <ID>\n\n"
" add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS IP_OPTIONS\n\n"
" delete [ id | uuid | path ] <ID>\n\n\n"
" delete [ id | uuid | path ] <ID>\n\n"
" reload\n\n\n"
));
}
@@ -284,6 +285,7 @@ static const char *real_con_commands[] = {
"down",
"add",
"delete",
"reload",
NULL
};
@@ -3221,6 +3223,32 @@ finish:
return nmc->return_value;
}
static NMCResultCode
do_connection_reload (NmCli *nmc, int argc, char **argv)
{
GError *error = NULL;
nmc->return_value = NMC_RESULT_SUCCESS;
nmc->should_wait = FALSE;
if (!nm_client_get_manager_running (nmc->client)) {
g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
return nmc->return_value;
}
if (!nm_remote_settings_reload_connections (nmc->system_settings, &error)) {
g_string_printf (nmc->return_text, _("Error: %s."), error->message);
if (error->code == NM_REMOTE_SETTINGS_ERROR_SERVICE_UNAVAILABLE)
nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
else
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
g_clear_error (&error);
}
return nmc->return_value;
}
static NMCResultCode
parse_cmd (NmCli *nmc, int argc, char **argv)
{
@@ -3263,6 +3291,9 @@ parse_cmd (NmCli *nmc, int argc, char **argv)
else if (matches(*argv, "delete") == 0) {
nmc->return_value = do_connection_delete (nmc, argc-1, argv+1);
}
else if (matches(*argv, "reload") == 0) {
nmc->return_value = do_connection_reload (nmc, argc-1, argv+1);
}
else if (nmc_arg_is_help (*argv)) {
usage ();
nmc->should_wait = FALSE;