core: add statefile support for WWAN devices

This commit is contained in:
Dan Williams 2009-12-22 23:51:08 -08:00
parent c80b729e77
commit 843c251d26
4 changed files with 15 additions and 4 deletions

View file

@ -329,6 +329,7 @@ static gboolean
parse_state_file (const char *filename,
gboolean *net_enabled,
gboolean *wifi_enabled,
gboolean *wwan_enabled,
GError **error)
{
GKeyFile *state_file;
@ -337,6 +338,7 @@ parse_state_file (const char *filename,
g_return_val_if_fail (net_enabled != NULL, FALSE);
g_return_val_if_fail (wifi_enabled != NULL, FALSE);
g_return_val_if_fail (wwan_enabled != NULL, FALSE);
state_file = g_key_file_new ();
if (!state_file) {
@ -374,6 +376,7 @@ parse_state_file (const char *filename,
/* Write out the initial state to the state file */
g_key_file_set_boolean (state_file, "main", "NetworkingEnabled", *net_enabled);
g_key_file_set_boolean (state_file, "main", "WirelessEnabled", *wifi_enabled);
g_key_file_set_boolean (state_file, "main", "WWANEnabled", *wwan_enabled);
data = g_key_file_to_data (state_file, &len, NULL);
if (data)
@ -426,7 +429,7 @@ main (int argc, char *argv[])
char *pidfile = NULL, *user_pidfile = NULL;
char *config = NULL, *plugins = NULL;
char *state_file = NM_DEFAULT_SYSTEM_STATE_FILE;
gboolean wifi_enabled = TRUE, net_enabled = TRUE;
gboolean wifi_enabled = TRUE, net_enabled = TRUE, wwan_enabled = TRUE;
gboolean success;
NMPolicy *policy = NULL;
NMVPNManager *vpn_manager = NULL;
@ -509,7 +512,7 @@ main (int argc, char *argv[])
g_clear_error (&error);
/* Parse the state file */
if (!parse_state_file (state_file, &net_enabled, &wifi_enabled, &error)) {
if (!parse_state_file (state_file, &net_enabled, &wifi_enabled, &wwan_enabled, &error)) {
g_warning ("State file %s parsing failed: (%d) %s.",
state_file,
error ? error->code : -1,
@ -583,7 +586,13 @@ main (int argc, char *argv[])
goto done;
}
manager = nm_manager_get (config, plugins, state_file, net_enabled, wifi_enabled, &error);
manager = nm_manager_get (config,
plugins,
state_file,
net_enabled,
wifi_enabled,
wwan_enabled,
&error);
if (manager == NULL) {
nm_error ("Failed to initialize the network manager: %s",
error && error->message ? error->message : "(unknown)");

View file

@ -909,7 +909,7 @@ check_companion_cb (gpointer user_data)
if (priv->device_added_cb != 0)
return FALSE;
manager = nm_manager_get (NULL, NULL, NULL, FALSE, FALSE, NULL);
manager = nm_manager_get (NULL, NULL, NULL, FALSE, FALSE, FALSE, NULL);
priv->device_added_cb = g_signal_connect (manager, "device-added",
G_CALLBACK (device_added_cb), self);

View file

@ -2742,6 +2742,7 @@ nm_manager_get (const char *config_file,
const char *state_file,
gboolean initial_net_enabled,
gboolean initial_wifi_enabled,
gboolean initial_wwan_enabled,
GError **error)
{
static NMManager *singleton = NULL;

View file

@ -79,6 +79,7 @@ NMManager *nm_manager_get (const char *config_file,
const char *state_file,
gboolean initial_net_enabled,
gboolean initial_wifi_enabled,
gboolean initial_wwan_enabled,
GError **error);
void nm_manager_start (NMManager *manager);