Last active
August 29, 2015 14:09
-
-
Save mastervolkov/dc808d31fd6b4cd7f709 to your computer and use it in GitHub Desktop.
Patch for network-manager-l2tp-0.9.8.5 for fix broken build. From https://git.gnome.org/browse/network-manager-pptp/commit/?id=d291de33c58d8394c97d9389a677ca75468a5599 and https://git.gnome.org/browse/network-manager-pptp/commit/?id=33615b8aa6f71a8e8765ee015948e9634003f887
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -urb NMORIG/network-manager-l2tp-0.9.8.5/auth-dialog/main.c NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/auth-dialog/main.c | |
--- NMORIG/network-manager-l2tp-0.9.8.5/auth-dialog/main.c 2013-10-28 05:21:20.000000000 +0400 | |
+++ NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/auth-dialog/main.c 2014-11-17 10:39:06.251843918 +0300 | |
@@ -30,47 +30,61 @@ | |
#include <glib/gi18n.h> | |
#include <gtk/gtk.h> | |
-#include <gnome-keyring.h> | |
-#include <gnome-keyring-memory.h> | |
+ | |
+#define SECRET_API_SUBJECT_TO_CHANGE | |
+#include <libsecret/secret.h> | |
#include <nm-setting-vpn.h> | |
#include <nm-vpn-plugin-utils.h> | |
+#include <nm-vpn-password-dialog.h> | |
#include "src/nm-l2tp-service.h" | |
-#include "vpn-password-dialog.h" | |
#define KEYRING_UUID_TAG "connection-uuid" | |
#define KEYRING_SN_TAG "setting-name" | |
#define KEYRING_SK_TAG "setting-key" | |
+static const SecretSchema network_manager_secret_schema = { | |
+ "org.freedesktop.NetworkManager.Connection", | |
+ SECRET_SCHEMA_DONT_MATCH_NAME, | |
+ { | |
+ { KEYRING_UUID_TAG, SECRET_SCHEMA_ATTRIBUTE_STRING }, | |
+ { KEYRING_SN_TAG, SECRET_SCHEMA_ATTRIBUTE_STRING }, | |
+ { KEYRING_SK_TAG, SECRET_SCHEMA_ATTRIBUTE_STRING }, | |
+ { NULL, 0 }, | |
+ } | |
+}; | |
+ | |
#define UI_KEYFILE_GROUP "VPN Plugin UI" | |
static char * | |
keyring_lookup_secret (const char *uuid, const char *secret_name) | |
{ | |
- GList *found_list = NULL; | |
- GnomeKeyringResult ret; | |
- GnomeKeyringFound *found; | |
+ GHashTable *attrs; | |
+ GList *list; | |
char *secret = NULL; | |
- ret = gnome_keyring_find_itemsv_sync (GNOME_KEYRING_ITEM_GENERIC_SECRET, | |
- &found_list, | |
- KEYRING_UUID_TAG, | |
- GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, | |
- uuid, | |
- KEYRING_SN_TAG, | |
- GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, | |
- NM_SETTING_VPN_SETTING_NAME, | |
- KEYRING_SK_TAG, | |
- GNOME_KEYRING_ATTRIBUTE_TYPE_STRING, | |
- secret_name, | |
+ attrs = secret_attributes_build (&network_manager_secret_schema, | |
+ KEYRING_UUID_TAG, uuid, | |
+ KEYRING_SN_TAG, NM_SETTING_VPN_SETTING_NAME, | |
+ KEYRING_SK_TAG, secret_name, | |
NULL); | |
- if (ret == GNOME_KEYRING_RESULT_OK && found_list) { | |
- found = g_list_nth_data (found_list, 0); | |
- secret = gnome_keyring_memory_strdup (found->secret); | |
+ | |
+ list = secret_service_search_sync (NULL, &network_manager_secret_schema, attrs, | |
+ SECRET_SEARCH_ALL | SECRET_SEARCH_UNLOCK | SECRET_SEARCH_LOAD_SECRETS, | |
+ NULL, NULL); | |
+ if (list && list->data) { | |
+ SecretItem *item = list->data; | |
+ SecretValue *value = secret_item_get_secret (item); | |
+ | |
+ if (value) { | |
+ secret = g_strdup (secret_value_get (value, NULL)); | |
+ secret_value_unref (value); | |
+ } | |
} | |
- gnome_keyring_found_list_free (found_list); | |
+ g_list_free_full (list, g_object_unref); | |
+ g_hash_table_unref (attrs); | |
return secret; | |
} | |
@@ -111,7 +125,7 @@ | |
char **out_pw, | |
NMSettingSecretFlags pw_flags) | |
{ | |
- VpnPasswordDialog *dialog; | |
+ NMAVpnPasswordDialog *dialog; | |
char *prompt, *pw = NULL; | |
const char *new_password = NULL; | |
@@ -124,14 +138,14 @@ | |
if ( !(pw_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED) | |
&& !(pw_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED)) { | |
if (in_pw) | |
- pw = gnome_keyring_memory_strdup (in_pw); | |
+ pw = g_strdup (in_pw); | |
else | |
pw = keyring_lookup_secret (vpn_uuid, NM_L2TP_KEY_PASSWORD); | |
} | |
/* Don't ask if the passwords is unused */ | |
if (pw_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED) { | |
- gnome_keyring_memory_free (pw); | |
+ g_free (pw); | |
return TRUE; | |
} | |
@@ -167,21 +181,21 @@ | |
} | |
- dialog = (VpnPasswordDialog *) vpn_password_dialog_new (_("Authenticate VPN"), prompt, NULL); | |
+ dialog = (NMAVpnPasswordDialog *) nma_vpn_password_dialog_new (_("Authenticate VPN"), prompt, NULL); | |
- vpn_password_dialog_set_show_password_secondary (dialog, FALSE); | |
+ nma_vpn_password_dialog_set_show_password_secondary (dialog, FALSE); | |
/* pre-fill dialog with the password */ | |
if (pw && !(pw_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED)) | |
- vpn_password_dialog_set_password (dialog, pw); | |
+ nma_vpn_password_dialog_set_password (dialog, pw); | |
gtk_widget_show (GTK_WIDGET (dialog)); | |
- if (vpn_password_dialog_run_and_block (dialog)) { | |
+ if (nma_vpn_password_dialog_run_and_block (dialog)) { | |
- new_password = vpn_password_dialog_get_password (dialog); | |
+ new_password = nma_vpn_password_dialog_get_password (dialog); | |
if (new_password) | |
- *out_pw = gnome_keyring_memory_strdup (new_password); | |
+ *out_pw = g_strdup (new_password); | |
} | |
gtk_widget_hide (GTK_WIDGET (dialog)); | |
@@ -277,7 +291,7 @@ | |
printf ("%s\n%s\n", NM_L2TP_KEY_PASSWORD, password); | |
printf ("\n\n"); | |
- gnome_keyring_memory_free (password); | |
+ g_free (password); | |
/* for good measure, flush stdout since Kansas is going Bye-Bye */ | |
fflush (stdout); | |
Только в NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/auth-dialog: Makefile | |
diff -urb NMORIG/network-manager-l2tp-0.9.8.5/auth-dialog/Makefile.am NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/auth-dialog/Makefile.am | |
--- NMORIG/network-manager-l2tp-0.9.8.5/auth-dialog/Makefile.am 2013-10-28 05:21:20.000000000 +0400 | |
+++ NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/auth-dialog/Makefile.am 2014-11-17 10:09:07.837521352 +0300 | |
@@ -6,7 +6,8 @@ | |
$(NM_CFLAGS) \ | |
$(GLIB_CFLAGS) \ | |
$(GTK_CFLAGS) \ | |
- $(GNOMEKEYRING_CFLAGS) \ | |
+ $(NMGTK_CFLAGS) \ | |
+ $(LIBSECRET_CFLAGS) \ | |
-DICONDIR=\""$(datadir)/pixmaps"\" \ | |
-DUIDIR=\""$(uidir)"\" \ | |
-DBINDIR=\""$(bindir)"\" \ | |
@@ -14,13 +15,12 @@ | |
-DVERSION=\"$(VERSION)\" | |
nm_l2tp_auth_dialog_SOURCES = \ | |
- main.c \ | |
- vpn-password-dialog.c \ | |
- vpn-password-dialog.h | |
+ main.c | |
nm_l2tp_auth_dialog_LDADD = \ | |
$(NM_LIBS) \ | |
$(GTK_LIBS) \ | |
- $(GNOMEKEYRING_LIBS) | |
+ $(NMGTK_LIBS) \ | |
+ $(LIBSECRET_LIBS) | |
CLEANFILES = *~ | |
diff -urb NMORIG/network-manager-l2tp-0.9.8.5/auth-dialog/vpn-password-dialog.c NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/auth-dialog/vpn-password-dialog.c | |
--- NMORIG/network-manager-l2tp-0.9.8.5/auth-dialog/vpn-password-dialog.c 2013-10-28 05:21:20.000000000 +0400 | |
+++ NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/auth-dialog/vpn-password-dialog.c 2014-11-17 10:44:03.611546729 +0300 | |
@@ -1,445 +0,0 @@ | |
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | |
-/* vpn-password-dialog.c - A use password prompting dialog widget. | |
- * | |
- * The Gnome Library is free software; you can redistribute it and/or | |
- * modify it under the terms of the GNU Library General Public License as | |
- * published by the ree Software Foundation; either version 2 of the | |
- * License, or (at your option) any later version. | |
- * | |
- * The Gnome Library is distributed in the hope that it will be useful, | |
- * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
- * Library General Public License for more details. | |
- * | |
- * You should have received a copy of the GNU General Public License along | |
- * with this program; if not, write to the Free Software Foundation, Inc., | |
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
- * | |
- * Copyright (C) 1999, 2000 Eazel, Inc. | |
- * Copyright (C) 2011 Red Hat, Inc. | |
- * | |
- * Authors: Ramiro Estrugo <ramiro@eazel.com> | |
- * Dan Williams <dcbw@redhat.com> | |
- */ | |
- | |
-#include <config.h> | |
-#include <gnome-keyring-memory.h> | |
-#include <glib/gi18n.h> | |
-#include <gtk/gtk.h> | |
- | |
-#include "vpn-password-dialog.h" | |
- | |
-G_DEFINE_TYPE (VpnPasswordDialog, vpn_password_dialog, GTK_TYPE_DIALOG) | |
- | |
-#define VPN_PASSWORD_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ | |
- VPN_TYPE_PASSWORD_DIALOG, \ | |
- VpnPasswordDialogPrivate)) | |
- | |
-typedef struct { | |
- /* Attributes */ | |
- gboolean show_password; | |
- gboolean show_password_secondary; | |
- | |
- /* Internal widgetry and flags */ | |
- GtkWidget *password_entry; | |
- GtkWidget *password_entry_secondary; | |
- GtkWidget *show_passwords_checkbox; | |
- | |
- GtkWidget *grid_alignment; | |
- GtkWidget *grid; | |
- GtkSizeGroup *group; | |
- | |
- char *primary_password_label; | |
- char *secondary_password_label; | |
-} VpnPasswordDialogPrivate; | |
- | |
-/* VpnPasswordDialogClass methods */ | |
-static void vpn_password_dialog_class_init (VpnPasswordDialogClass *password_dialog_class); | |
-static void vpn_password_dialog_init (VpnPasswordDialog *password_dialog); | |
- | |
-/* GtkDialog callbacks */ | |
-static void dialog_show_callback (GtkWidget *widget, gpointer callback_data); | |
-static void dialog_close_callback (GtkWidget *widget, gpointer callback_data); | |
- | |
-static void | |
-finalize (GObject *object) | |
-{ | |
- VpnPasswordDialogPrivate *priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (object); | |
- | |
- g_object_unref (priv->password_entry); | |
- g_object_unref (priv->password_entry_secondary); | |
- g_object_unref (priv->group); | |
- | |
- g_free (priv->primary_password_label); | |
- g_free (priv->secondary_password_label); | |
- | |
- G_OBJECT_CLASS (vpn_password_dialog_parent_class)->finalize (object); | |
-} | |
- | |
-static void | |
-vpn_password_dialog_class_init (VpnPasswordDialogClass *klass) | |
-{ | |
- GObjectClass *object_class = G_OBJECT_CLASS (klass); | |
- | |
- g_type_class_add_private (object_class, sizeof (VpnPasswordDialogPrivate)); | |
- | |
- object_class->finalize = finalize; | |
-} | |
- | |
-static void | |
-vpn_password_dialog_init (VpnPasswordDialog *dialog) | |
-{ | |
- VpnPasswordDialogPrivate *priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- | |
- priv->show_password = TRUE; | |
- priv->primary_password_label = g_strdup ( _("_Password:") ); | |
- priv->show_password_secondary = TRUE; | |
- priv->secondary_password_label = g_strdup ( _("_Secondary Password:") ); | |
-} | |
- | |
-/* GtkDialog callbacks */ | |
-static void | |
-dialog_show_callback (GtkWidget *widget, gpointer callback_data) | |
-{ | |
- VpnPasswordDialog *dialog = VPN_PASSWORD_DIALOG (callback_data); | |
- VpnPasswordDialogPrivate *priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- | |
- if (gtk_widget_get_visible (priv->password_entry)) | |
- gtk_widget_grab_focus (priv->password_entry); | |
- else if (gtk_widget_get_visible (priv->password_entry_secondary)) | |
- gtk_widget_grab_focus (priv->password_entry_secondary); | |
-} | |
- | |
-static void | |
-dialog_close_callback (GtkWidget *widget, gpointer callback_data) | |
-{ | |
- gtk_widget_hide (widget); | |
-} | |
- | |
-static void | |
-add_row (GtkWidget *grid, int row, const char *label_text, GtkWidget *entry) | |
-{ | |
- GtkWidget *label; | |
- | |
- label = gtk_label_new_with_mnemonic (label_text); | |
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); | |
- | |
- gtk_grid_attach (GTK_GRID (grid), label, 0, row, 1, 1); | |
- gtk_grid_attach (GTK_GRID (grid), entry, 1, row, 1, 1); | |
- | |
- gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); | |
-} | |
- | |
-static void | |
-remove_child (GtkWidget *child, GtkWidget *grid) | |
-{ | |
- gtk_container_remove (GTK_CONTAINER (grid), child); | |
-} | |
- | |
-static void | |
-add_grid_rows (VpnPasswordDialog *dialog) | |
-{ | |
- VpnPasswordDialogPrivate *priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- int row; | |
- int offset = 0; | |
- | |
- gtk_alignment_set_padding (GTK_ALIGNMENT (priv->grid_alignment), 0, 0, offset, 0); | |
- | |
- /* This will not kill the entries, since they are ref:ed */ | |
- gtk_container_foreach (GTK_CONTAINER (priv->grid), (GtkCallback) remove_child, priv->grid); | |
- | |
- row = 0; | |
- if (priv->show_password) | |
- add_row (priv->grid, row++, priv->primary_password_label, priv->password_entry); | |
- if (priv->show_password_secondary) | |
- add_row (priv->grid, row++, priv->secondary_password_label, priv->password_entry_secondary); | |
- | |
- gtk_grid_attach (GTK_GRID (priv->grid), priv->show_passwords_checkbox, 1, row, 1, 1); | |
- | |
- gtk_widget_show_all (priv->grid); | |
-} | |
- | |
-static void | |
-show_passwords_toggled_cb (GtkWidget *widget, gpointer user_data) | |
-{ | |
- VpnPasswordDialog *dialog = VPN_PASSWORD_DIALOG (user_data); | |
- VpnPasswordDialogPrivate *priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- gboolean visible; | |
- | |
- visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); | |
- | |
- gtk_entry_set_visibility (GTK_ENTRY (priv->password_entry), visible); | |
- gtk_entry_set_visibility (GTK_ENTRY (priv->password_entry_secondary), visible); | |
-} | |
- | |
-/* Public VpnPasswordDialog methods */ | |
-GtkWidget * | |
-vpn_password_dialog_new (const char *title, | |
- const char *message, | |
- const char *password) | |
-{ | |
- GtkWidget *dialog; | |
- VpnPasswordDialogPrivate *priv; | |
- GtkLabel *message_label; | |
- GtkWidget *hbox; | |
- GtkWidget *vbox; | |
- GtkWidget *main_vbox; | |
- GtkWidget *dialog_icon; | |
- GtkBox *content, *action_area; | |
- | |
- dialog = gtk_widget_new (VPN_TYPE_PASSWORD_DIALOG, NULL); | |
- if (!dialog) | |
- return NULL; | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- | |
- gtk_window_set_title (GTK_WINDOW (dialog), title); | |
- gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); | |
- | |
- gtk_dialog_add_buttons (GTK_DIALOG (dialog), | |
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | |
- GTK_STOCK_OK, GTK_RESPONSE_OK, | |
- NULL); | |
- gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); | |
- | |
- content = GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))); | |
- action_area = GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (dialog))); | |
- | |
- /* Set up the dialog */ | |
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); | |
- gtk_box_set_spacing (content, 2); /* 2 * 5 + 2 = 12 */ | |
- gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); | |
- gtk_box_set_spacing (action_area, 6); | |
- | |
- gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); | |
- gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); | |
- | |
- g_signal_connect (dialog, "show", | |
- G_CALLBACK (dialog_show_callback), | |
- dialog); | |
- g_signal_connect (dialog, "close", | |
- G_CALLBACK (dialog_close_callback), | |
- dialog); | |
- | |
- /* The grid that holds the captions */ | |
- priv->grid_alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.0); | |
- | |
- priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); | |
- | |
- priv->grid = gtk_grid_new (); | |
- gtk_grid_set_column_spacing (GTK_GRID (priv->grid), 12); | |
- gtk_grid_set_row_spacing (GTK_GRID (priv->grid), 6); | |
- gtk_container_add (GTK_CONTAINER (priv->grid_alignment), priv->grid); | |
- | |
- priv->password_entry = gtk_entry_new (); | |
- priv->password_entry_secondary = gtk_entry_new (); | |
- | |
- priv->show_passwords_checkbox = gtk_check_button_new_with_mnemonic (_("Sh_ow passwords")); | |
- | |
- /* We want to hold on to these during the grid rearrangement */ | |
- g_object_ref_sink (priv->password_entry); | |
- g_object_ref_sink (priv->password_entry_secondary); | |
- g_object_ref_sink (priv->show_passwords_checkbox); | |
- | |
- gtk_entry_set_visibility (GTK_ENTRY (priv->password_entry), FALSE); | |
- gtk_entry_set_visibility (GTK_ENTRY (priv->password_entry_secondary), FALSE); | |
- | |
- g_signal_connect_swapped (priv->password_entry, "activate", | |
- G_CALLBACK (gtk_window_activate_default), | |
- dialog); | |
- g_signal_connect_swapped (priv->password_entry_secondary, "activate", | |
- G_CALLBACK (gtk_window_activate_default), | |
- dialog); | |
- | |
- g_signal_connect (priv->show_passwords_checkbox, "toggled", | |
- G_CALLBACK (show_passwords_toggled_cb), | |
- dialog); | |
- | |
- add_grid_rows (VPN_PASSWORD_DIALOG (dialog)); | |
- | |
- /* Adds some eye-candy to the dialog */ | |
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); | |
- gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); | |
- dialog_icon = gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION, GTK_ICON_SIZE_DIALOG); | |
- gtk_misc_set_alignment (GTK_MISC (dialog_icon), 0.5, 0.0); | |
- gtk_box_pack_start (GTK_BOX (hbox), dialog_icon, FALSE, FALSE, 0); | |
- | |
- /* Fills the vbox */ | |
- main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 18); | |
- | |
- if (message) { | |
- message_label = GTK_LABEL (gtk_label_new (message)); | |
- gtk_label_set_justify (message_label, GTK_JUSTIFY_LEFT); | |
- gtk_label_set_line_wrap (message_label, TRUE); | |
- gtk_label_set_max_width_chars (message_label, 35); | |
- gtk_size_group_add_widget (priv->group, GTK_WIDGET (message_label)); | |
- gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (message_label), FALSE, FALSE, 0); | |
- gtk_size_group_add_widget (priv->group, priv->grid_alignment); | |
- } | |
- | |
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); | |
- gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0); | |
- gtk_box_pack_start (GTK_BOX (vbox), priv->grid_alignment, FALSE, FALSE, 0); | |
- gtk_box_pack_start (GTK_BOX (hbox), main_vbox, FALSE, FALSE, 0); | |
- gtk_box_pack_start (content, hbox, FALSE, FALSE, 0); | |
- gtk_widget_show_all (GTK_WIDGET (content)); | |
- | |
- vpn_password_dialog_set_password (VPN_PASSWORD_DIALOG (dialog), password); | |
- | |
- return GTK_WIDGET (dialog); | |
-} | |
- | |
-gboolean | |
-vpn_password_dialog_run_and_block (VpnPasswordDialog *dialog) | |
-{ | |
- gint button_clicked; | |
- | |
- g_return_val_if_fail (dialog != NULL, FALSE); | |
- g_return_val_if_fail (VPN_IS_PASSWORD_DIALOG (dialog), FALSE); | |
- | |
- button_clicked = gtk_dialog_run (GTK_DIALOG (dialog)); | |
- gtk_widget_hide (GTK_WIDGET (dialog)); | |
- | |
- return button_clicked == GTK_RESPONSE_OK; | |
-} | |
- | |
-void | |
-vpn_password_dialog_set_password (VpnPasswordDialog *dialog, | |
- const char *password) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- gtk_entry_set_text (GTK_ENTRY (priv->password_entry), password ? password : ""); | |
-} | |
- | |
-void | |
-vpn_password_dialog_set_password_secondary (VpnPasswordDialog *dialog, | |
- const char *password_secondary) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- gtk_entry_set_text (GTK_ENTRY (priv->password_entry_secondary), | |
- password_secondary ? password_secondary : ""); | |
-} | |
- | |
-void | |
-vpn_password_dialog_set_show_password (VpnPasswordDialog *dialog, gboolean show) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_if_fail (dialog != NULL); | |
- g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- | |
- show = !!show; | |
- if (priv->show_password != show) { | |
- priv->show_password = show; | |
- add_grid_rows (dialog); | |
- } | |
-} | |
- | |
-void | |
-vpn_password_dialog_set_show_password_secondary (VpnPasswordDialog *dialog, | |
- gboolean show) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_if_fail (dialog != NULL); | |
- g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- | |
- show = !!show; | |
- if (priv->show_password_secondary != show) { | |
- priv->show_password_secondary = show; | |
- add_grid_rows (dialog); | |
- } | |
-} | |
- | |
-void | |
-vpn_password_dialog_focus_password (VpnPasswordDialog *dialog) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_if_fail (dialog != NULL); | |
- g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- if (priv->show_password) | |
- gtk_widget_grab_focus (priv->password_entry); | |
-} | |
- | |
-void | |
-vpn_password_dialog_focus_password_secondary (VpnPasswordDialog *dialog) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_if_fail (dialog != NULL); | |
- g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- if (priv->show_password_secondary) | |
- gtk_widget_grab_focus (priv->password_entry_secondary); | |
-} | |
- | |
-const char * | |
-vpn_password_dialog_get_password (VpnPasswordDialog *dialog) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_val_if_fail (VPN_IS_PASSWORD_DIALOG (dialog), NULL); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- return gtk_entry_get_text (GTK_ENTRY (priv->password_entry)); | |
-} | |
- | |
-const char * | |
-vpn_password_dialog_get_password_secondary (VpnPasswordDialog *dialog) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_val_if_fail (VPN_IS_PASSWORD_DIALOG (dialog), NULL); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- return gtk_entry_get_text (GTK_ENTRY (priv->password_entry_secondary)); | |
-} | |
- | |
-void vpn_password_dialog_set_password_label (VpnPasswordDialog *dialog, | |
- const char *label) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_if_fail (dialog != NULL); | |
- g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- | |
- g_free (priv->primary_password_label); | |
- priv->primary_password_label = g_strdup (label); | |
- | |
- if (priv->show_password) | |
- add_grid_rows (dialog); | |
-} | |
- | |
-void vpn_password_dialog_set_password_secondary_label (VpnPasswordDialog *dialog, | |
- const char *label) | |
-{ | |
- VpnPasswordDialogPrivate *priv; | |
- | |
- g_return_if_fail (dialog != NULL); | |
- g_return_if_fail (VPN_IS_PASSWORD_DIALOG (dialog)); | |
- | |
- priv = VPN_PASSWORD_DIALOG_GET_PRIVATE (dialog); | |
- | |
- g_free (priv->secondary_password_label); | |
- priv->secondary_password_label = g_strdup (label); | |
- | |
- if (priv->show_password_secondary) | |
- add_grid_rows (dialog); | |
-} | |
diff -urb NMORIG/network-manager-l2tp-0.9.8.5/configure.ac NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/configure.ac | |
--- NMORIG/network-manager-l2tp-0.9.8.5/configure.ac 2013-10-28 05:21:20.000000000 +0400 | |
+++ NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/configure.ac 2014-11-17 10:22:48.628788300 +0300 | |
@@ -84,9 +84,13 @@ | |
AC_SUBST(GTK_LIBS) | |
GTK_CFLAGS="$GTK_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4" | |
- PKG_CHECK_MODULES(GNOMEKEYRING, gnome-keyring-1) | |
- AC_SUBST(GNOMEKEYRING_CFLAGS) | |
- AC_SUBST(GNOMEKEYRING_LIBS) | |
+ PKG_CHECK_MODULES(NMGTK, libnm-gtk ) | |
+ AC_SUBST(NMGTK_CFLAGS) | |
+ AC_SUBST(NMGTK_LIBS) | |
+ | |
+ PKG_CHECK_MODULES(LIBSECRET, libsecret-unstable) | |
+ AC_SUBST(LIBSECRET_CFLAGS) | |
+ AC_SUBST(LIBSECRET_LIBS) | |
fi | |
NM_COMPILER_WARNINGS | |
diff -urb NMORIG/network-manager-l2tp-0.9.8.5/debian/control NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/debian/control | |
--- NMORIG/network-manager-l2tp-0.9.8.5/debian/control 2013-10-26 23:32:41.000000000 +0400 | |
+++ NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/debian/control 2014-11-17 10:23:57.124723933 +0300 | |
@@ -9,13 +9,15 @@ | |
network-manager-dev (>= 0.9.8), | |
libnm-util-dev (>= 0.9.8), | |
libnm-glib-dev (>= 0.9.8), | |
+ libnm-gtk-dev (>= 0.9.8), | |
libnm-glib-vpn-dev (>= 0.9.8), | |
ppp-dev (>= 2.4.5), | |
intltool, | |
libdbus-glib-1-dev (>= 0.74), | |
libgnome-keyring-dev, | |
libgtk-3-dev (>= 3.0), | |
- libglib2.0-dev | |
+ libglib2.0-dev, | |
+ libsecret-1-dev | |
Standards-Version: 3.9.4 | |
Vcs-Git: https://github.com/seriyps/NetworkManager-l2tp.git | |
Vcs-Browser: https://github.com/seriyps/NetworkManager-l2tp | |
@@ -23,7 +25,7 @@ | |
Package: network-manager-l2tp | |
Architecture: any | |
-Depends: ${shlibs:Depends}, ${misc:Depends}, ppp (>= 2.4.5), ppp (<< 2.4.6), xl2tpd, openswan | |
+Depends: ${shlibs:Depends}, ${misc:Depends}, ppp (>= 2.4.5), ppp (<< 2.4.7), xl2tpd, openswan | |
Recommends: network-manager-l2tp-gnome | plasma-widget-networkmanagement | |
Description: network management framework (L2TP plugin core) | |
NetworkManager is a system network service that manages your network devices | |
diff -urb NMORIG/network-manager-l2tp-0.9.8.5/src/nm-l2tp-service.c NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/src/nm-l2tp-service.c | |
--- NMORIG/network-manager-l2tp-0.9.8.5/src/nm-l2tp-service.c 2013-10-28 05:21:20.000000000 +0400 | |
+++ NMB/network-manager-l2tp-0.9.8.5_AUTH_FIX/src/nm-l2tp-service.c 2014-06-06 12:38:01.000000000 +0400 | |
@@ -648,11 +648,11 @@ | |
g_free(filename); | |
filename = g_strdup_printf ("/var/run/nm-ipsec-l2tp.%d/ipsec.conf", my_pid); | |
-// unlink(filename); | |
+ unlink(filename); | |
g_free(filename); | |
filename = g_strdup_printf ("/var/run/nm-ipsec-l2tp.%d/ipsec.secrets", my_pid); | |
-// unlink(filename); | |
+ unlink(filename); | |
g_free(filename); | |
filename = g_strdup_printf ("/var/run/nm-ipsec-l2tp.%d", my_pid); | |
@@ -853,6 +853,7 @@ | |
char session_name[128]; | |
GPtrArray *whack_argv; | |
+ g_message("ipsec prepare for shut down"); | |
if (!(ipsec_binary=nm_find_ipsec())) return; | |
sprintf(session_name, "nm-ipsec-l2tpd-%d", getpid()); | |
@@ -887,6 +888,7 @@ | |
char cmd1[4096],cmd11[4096],cmd2[4096]; | |
char session_name[128]; | |
guint sys=0; | |
+ guint sys_tmp=0; | |
FILE *fp; | |
if (!(ipsec_binary=nm_find_ipsec())) { | |
@@ -901,10 +903,18 @@ | |
sys += system("test -e /var/run/pluto/ipsec.info && . /var/run/pluto/ipsec.info;" | |
"PATH=/usr/local/sbin:/usr/sbin:/sbin; export PATH;" | |
- "[ \"x$defaultrouteaddr\" = \"x\" ] && ipsec setup restart"); | |
+ "if [ \"x$defaultrouteaddr\" = \"x\" ] ; then ipsec setup restart; fi"); | |
+ if ( sys != sys_tmp ) { | |
+ sys_tmp = sys; | |
+ g_warning("Possible error in IPSec setup: determine defaultrouteaddr or in \"ipsec setup restart\""); | |
+ } | |
sys += system("PATH=/usr/local/sbin:/usr/sbin:/sbin ipsec whack" | |
" --listen"); | |
+ if ( sys != sys_tmp ) { | |
+ sys_tmp = sys; | |
+ g_warning("Possible error in IPSec setup: ipsec whack --listen"); | |
+ } | |
sprintf(cmd1,"test -e /var/run/pluto/ipsec.info && . /var/run/pluto/ipsec.info;" | |
"PATH=/usr/local/sbin:/usr/sbin:/sbin ipsec addconn " | |
" ${defaultrouteaddr:+--defaultroute} $defaultrouteaddr" | |
@@ -956,12 +966,32 @@ | |
fclose(fp); | |
sys += system("PATH=\"/sbin:/usr/sbin:/usr/local/sbin:$PATH\" ipsec secrets"); | |
+ if ( sys != sys_tmp ) { | |
+ sys_tmp = sys; | |
+ g_warning("Possible error in IPSec setup: ipsec secrets"); | |
+ } | |
sys += system(cmd11); | |
+ if ( sys != sys_tmp ) { | |
+ sys_tmp = sys; | |
+ g_warning("Possible error in IPSec setup: %s",cmd11); | |
+ } | |
sys += system(cmd1); | |
+ if ( sys != sys_tmp ) { | |
+ sys_tmp = sys; | |
+ g_warning("Possible error in IPSec setup: %s",cmd11); | |
+ } | |
sys += system(cmd2); | |
+ if ( sys != sys_tmp ) { | |
+ sys_tmp = sys; | |
+ g_warning("Possible error in IPSec setup: %s",cmd11); | |
+ } | |
rename(tmp_secrets, "/etc/ipsec.secrets"); | |
sys += system("PATH=\"/sbin:/usr/sbin:/usr/local/sbin:$PATH\" ipsec secrets"); | |
+ if ( sys != sys_tmp ) { | |
+ sys_tmp = sys; | |
+ g_warning("Possible error in IPSec setup: ipsec secrets"); | |
+ } | |
if (sys != 0) | |
g_warning("Possible error in IPSec setup."); | |
@@ -1456,6 +1486,7 @@ | |
g_message(_("starting ipsec")); | |
if (!nm_l2tp_start_ipsec(NM_L2TP_PLUGIN (plugin), s_vpn, error)) | |
return FALSE; | |
+ priv->ipsec_up = TRUE; | |
} | |
if (!nm_l2tp_start_l2tpd_binary (NM_L2TP_PLUGIN (plugin), s_vpn, error)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment