![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package NetworkManager-novellvpn checked in at Fri May 16 14:46:03 CEST 2008. -------- --- NetworkManager-novellvpn/NetworkManager-novellvpn.changes 2008-04-11 05:26:29.000000000 +0200 +++ /mounts/work_src_done/STABLE/NetworkManager-novellvpn/NetworkManager-novellvpn.changes 2008-05-16 12:51:42.629443000 +0200 @@ -1,0 +2,5 @@ +Fri May 9 11:20:40 CEST 2008 - bili@suse.de + +- Add the vpn_id support for new NM(bnc#381769). + +------------------------------------------------------------------- New: ---- NetworkManager-novellvpn-support_id.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ NetworkManager-novellvpn.spec ++++++ --- /var/tmp/diff_new_pack.Nz8335/_old 2008-05-16 14:45:33.000000000 +0200 +++ /var/tmp/diff_new_pack.Nz8335/_new 2008-05-16 14:45:33.000000000 +0200 @@ -15,12 +15,13 @@ BuildRequires: NetworkManager-devel NetworkManager-gnome intltool libglade2-devel libgnomeui-devel libnl-devel perl-XML-Parser update-desktop-files Summary: VPN support for Turnpike. Version: 0.7.1 -Release: 1 +Release: 19 License: GPL v2 or later Group: Productivity/Networking/System Url: http://www.gnome.org/projects/NetworkManager Source0: %{name}-%{version}.tar.gz Source1: gnome-mime-application-x-novellvpn-settings.png +Patch0: %{name}-support_id.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: NetworkManager >= 0.7.0 Requires: %{name}-frontend @@ -70,6 +71,7 @@ %prep #' %setup -q +%patch0 -p1 %build CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \ @@ -120,6 +122,8 @@ %{_datadir}/icons/hicolor/48x48/apps/gnome-mime-application-x-novellvpn-settings.png %changelog +* Fri May 09 2008 bili@suse.de +- Add the vpn_id support for new NM(bnc#381769). * Fri Apr 11 2008 bili@suse.de - Refactoring novellvpn for NM 0.7.0. * Thu Mar 06 2008 maw@suse.de ++++++ NetworkManager-novellvpn-support_id.patch ++++++ Index: NetworkManager-novellvpn-0.7.1/auth-dialog/main.c =================================================================== --- NetworkManager-novellvpn-0.7.1.orig/auth-dialog/main.c +++ NetworkManager-novellvpn-0.7.1/auth-dialog/main.c @@ -36,19 +36,73 @@ #include "gnome-two-password-dialog.h" #include "../src/nm-novellvpn-service.h" +#include "nm-setting-vpn-properties.h" #define NO_CERTIFICATE_PASSWORD 1 #define NO_GROUP_PASSWORD 2 #define NO_USER_PASSWORD 4 +#define KEYRING_CID_TAG "connection-id" +#define KEYRING_SN_TAG "setting-name" +#define KEYRING_SK_TAG "setting-key" + char* VPN_Name = NULL; int enc_group_password = 0; extern int is_a_certificate_connection(); +// password related +typedef struct { + char *vpn_id; + char *vpn_name; + char *vpn_service; + + gboolean need_password; + char *password; + + gboolean need_group_password; + char *group_password; + +} PasswordsInfo; + +static char * +find_one_password (PasswordsInfo *info, gboolean *is_session) +{ + GList *found_list = NULL; + GnomeKeyringResult ret; + GnomeKeyringFound *found; + char *secret; + + ret = gnome_keyring_find_itemsv_sync (GNOME_KEYRING_ITEM_GENERIC_SECRET, + &found_list, + KEYRING_CID_TAG, + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + info->vpn_id, + KEYRING_SN_TAG, + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + NM_SETTING_VPN_PROPERTIES_SETTING_NAME, // "vpn-properties" + KEYRING_SK_TAG, + GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, + secret, + NULL); + if ((ret != GNOME_KEYRING_RESULT_OK) || (g_list_length (found_list) == 0)) + return NULL; + + found = (GnomeKeyringFound *) found_list->data; + + if (strcmp (found->keyring, "session") == 0) + *is_session = TRUE; + else + *is_session = FALSE; + + secret = found->secret ? g_strdup (found->secret) : NULL; + gnome_keyring_found_list_free (found_list); + + return secret; +} + + static GSList * -lookup_pass (const char *vpn_name, - const char *vpn_service, - gboolean *is_session) +lookup_pass (PasswordsInfo *info, gboolean *is_session) { GSList *passwords = NULL; GList *keyring_result = NULL; @@ -56,9 +110,9 @@ lookup_pass (const char *vpn_name, if (gnome_keyring_find_network_password_sync ( g_get_user_name (), /* user */ NULL, /* domain */ - vpn_name, /* server */ + info->vpn_name, /* server */ NULL, /* object */ - vpn_service, /* protocol */ + info->vpn_service, /* protocol */ NULL, /* authtype */ 0, /* port */ &keyring_result) != GNOME_KEYRING_RESULT_OK) @@ -107,11 +161,7 @@ lookup_pass (const char *vpn_name, return passwords; } -static void save_vpn_password (const char *vpn_name, - const char *vpn_service, - const char *keyring, - const char *password, - const char *group_password) +static void save_vpn_password (PasswordsInfo* info, const char *keyring) { guint32 item_id; GnomeKeyringResult keyring_result; @@ -120,12 +170,12 @@ static void save_vpn_password (const cha keyring, g_get_user_name (), NULL, - vpn_name, + info->vpn_name, "password", - vpn_service, + info->vpn_service, NULL, 0, - password, + info->password, &item_id); if (keyring_result != GNOME_KEYRING_RESULT_OK) { @@ -137,12 +187,12 @@ static void save_vpn_password (const cha keyring, g_get_user_name (), NULL, - vpn_name, + info->vpn_name, "group_password", - vpn_service, + info->vpn_service, NULL, 0, - group_password, + info->group_password, &item_id); if (keyring_result != GNOME_KEYRING_RESULT_OK) @@ -153,7 +203,8 @@ static void save_vpn_password (const cha } static GSList * -get_passwords (const char *vpn_name, const char *vpn_service, gboolean retry) +//get_passwords (const char *vpn_name, const char *vpn_service, gboolean retry) +get_passwords (PasswordsInfo *info, gboolean retry) { char *prompt = NULL; GtkWidget *dialog = NULL; @@ -163,12 +214,10 @@ get_passwords (const char *vpn_name, con GSList *result = NULL; // return the result of passwords list GnomeTwoPasswordDialogRemember remember = GNOME_TWO_PASSWORD_DIALOG_REMEMBER_NOTHING; - g_return_val_if_fail (vpn_name != NULL, NULL); + g_return_val_if_fail (info != NULL, NULL); /* lookup password from gnome-keyring */ - result = lookup_pass (vpn_name, - vpn_service, - &keyring_is_session); + result = lookup_pass (info, &keyring_is_session); if (NULL != result) { keyring_group_password = g_strdup ((char *) result->data); @@ -194,7 +243,7 @@ get_passwords (const char *vpn_name, con } prompt = g_strdup_printf (_("You need to authenticate to access the Novell's Virtual Private Network '%s'."), - vpn_name); + info->vpn_name); dialog = gnome_two_password_dialog_new (_("Authenticate Novell VPN"), prompt, NULL, NULL, FALSE); g_free (prompt); @@ -243,18 +292,10 @@ get_passwords (const char *vpn_name, con switch (gnome_two_password_dialog_get_remember (GNOME_TWO_PASSWORD_DIALOG (dialog))) { case GNOME_TWO_PASSWORD_DIALOG_REMEMBER_SESSION: - save_vpn_password (vpn_name, - vpn_service, - "session", - password, - group_password); + save_vpn_password (info, "session"); break; case GNOME_TWO_PASSWORD_DIALOG_REMEMBER_FOREVER: - save_vpn_password (vpn_name, - vpn_service, - NULL, - password, - group_password); + save_vpn_password (info, NULL); break; default: break; @@ -277,15 +318,18 @@ main (int argc, char *argv[]) GSList *passwords = NULL; static gboolean retry = FALSE; static gchar *vpn_name = NULL; + static gchar *vpn_id = NULL; static gchar *vpn_service = NULL; int return_value_of_std_check = 0; GOptionContext *context = NULL; GnomeProgram *program = NULL; int how_many_passwords = 0; + PasswordsInfo info; static GOptionEntry entries[] = { { "reprompt", 'r', 0, G_OPTION_ARG_NONE, &retry, "Reprompt for passwords", NULL}, + { "id", 'i', 0, G_OPTION_ARG_STRING, &vpn_id, "ID of VPN connection", NULL}, { "name", 'n', 0, G_OPTION_ARG_STRING, &vpn_name, "Name of VPN connection", NULL}, { "service", 's', 0, G_OPTION_ARG_STRING, &vpn_service, "VPN service type", NULL}, { NULL } @@ -307,8 +351,8 @@ main (int argc, char *argv[]) GNOME_PARAM_GOPTION_CONTEXT, context, GNOME_PARAM_NONE); - if (vpn_name == NULL || vpn_service == NULL) { - fprintf (stderr, "Have to supply both name and service\n"); + if (vpn_id == NULL || vpn_name == NULL || vpn_service == NULL) { + fprintf (stderr, "Have to supply ID, name and service\n"); goto out; } @@ -319,9 +363,15 @@ main (int argc, char *argv[]) goto out; } + memset (&info, 0, sizeof (PasswordsInfo)); + info.vpn_id = vpn_id; + info.vpn_name = vpn_name; + info.vpn_service = vpn_service; + VPN_Name = vpn_name; - passwords = get_passwords (vpn_name, vpn_service, retry); + //passwords = get_passwords (vpn_name, vpn_service, retry); + passwords = get_passwords (&info, retry); if (passwords == NULL) goto out; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de