Commit 6a1e7941 authored by Robert Love's avatar Robert Love Committed by Robert Love
Browse files

2005-08-16 Robert Love <rml@novell.com>

        * src/backends/NetworkManagerSuSE.c: improve the SUSE-backend dial up
          support.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@848 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
parent ecf28067
2005-08-16 Robert Love <rml@novell.com>
* src/backends/NetworkManagerSuSE.c: improve the SUSE-backend dial up
support.
2005-08-16 Christopher Aillon <caillon@redhat.com>
* gnome/applet/applet.c: Split markup out of translatable strings
......
......@@ -1749,7 +1749,7 @@ static void nmwa_menu_add_dialup_menu (GtkWidget *menu, NMWirelessApplet *applet
char *name = elt->data;
const char *label;
label = g_strdup_printf (_("Connect via %s..."), name);
label = g_strdup_printf (_("Connect to %s..."), name);
dialup_item = GTK_MENU_ITEM (gtk_menu_item_new_with_label (label));
g_object_set_data (G_OBJECT (dialup_item), "dialup", name);
......
......@@ -716,6 +716,42 @@ gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
}
/*
* verify_and_return_provider - given a provider identifier, verify that it is able to dial without
* prompting and return the provider name. On failure, return NULL. Caller is responsible for
* free'ing the return.
*/
static char * verify_and_return_provider (const char *provider)
{
shvarFile *file;
char *name, *buf = NULL;
int ret;
name = g_strdup_printf ("/etc/sysconfig/network/providers/%s", provider);
file = svNewFile (name);
if (!file)
goto out_gfree;
buf = svGetValue (file, "ASKPASSWORD");
if (!buf)
goto out_close;
ret = strcmp (buf, "no");
free (buf);
if (ret)
goto out_close;
buf = svGetValue (file, "PROVIDER");
out_close:
svCloseFile (file);
out_gfree:
g_free (name);
return buf;
}
/*
* nm_system_get_dialup_config
*
......@@ -742,26 +778,42 @@ GSList * nm_system_get_dialup_config (void)
while ((dentry = g_dir_read_name (dir)))
{
NMDialUpConfig *config;
shvarFile *modem_file;
char *name, *buf, *provider_name;
/* we only want modems */
if (!g_str_has_prefix (dentry, "ifcfg-modem"))
continue;
/* open the configuration file */
name = g_strdup_printf ("/etc/sysconfig/network/%s", dentry);
modem_file = svNewFile (name);
if (!modem_file)
goto out_gfree;
/* get the name of the provider used for this entry */
buf = svGetValue (modem_file, "PROVIDER");
if (!buf)
goto out_close;
provider_name = verify_and_return_provider (buf);
if (!provider_name)
goto out_free;
config = g_malloc (sizeof (NMDialUpConfig));
config->name = g_strdup_printf ("Modem (#%d)", i++);
config->name = g_strdup_printf ("%s via Modem", provider_name);
config->data = g_strdup (dentry + 6); /* skip the "ifcfg-" prefix */
list = g_slist_append (list, config);
nm_info ("Found dial up configuration for %s: %s", config->name, (char *) config->data);
}
/* Hack: Go back and remove the "(#0)" if there is only one device */
if (i == 1)
{
NMDialUpConfig *config = (NMDialUpConfig *) list->data;
g_free (config->name);
config->name = g_strdup ("Modem");
free (provider_name);
out_free:
free (buf);
out_close:
svCloseFile (modem_file);
out_gfree:
g_free (name);
}
g_dir_close (dir);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment