|
Hi, this is my first code after 8 years, I hope it's ok . Basically it's only copy/paste :). Proxy auth is not implemented yet. t. |
diff -ru network-manager-openvpn-0.7~~svn20081015t024626/properties/auth-helpers.c network-manager-openvpn-0.7~~svn20081015t024626.patched/properties/auth-helpers.c
--- network-manager-openvpn-0.7~~svn20081015t024626/properties/auth-helpers.c 2008-10-02 21:41:09.000000000 +0200
+++ network-manager-openvpn-0.7~~svn20081015t024626.patched/properties/auth-helpers.c 2008-10-16 15:28:10.460824560 +0200
@@ -726,9 +726,14 @@
NM_OPENVPN_KEY_COMP_LZO,
NM_OPENVPN_KEY_TAP_DEV,
NM_OPENVPN_KEY_PROTO_TCP,
+ NM_OPENVPN_KEY_HTTP_PROXY,
+ NM_OPENVPN_KEY_HTTP_PROXY_PORT,
+ NM_OPENVPN_KEY_HTTP_PROXY_RETRY,
+ NM_OPENVPN_KEY_HTTP_PROXY_AUTH,
NM_OPENVPN_KEY_CIPHER,
NM_OPENVPN_KEY_TA_DIR,
NM_OPENVPN_KEY_TA,
+ NM_OPENVPN_KEY_VERBOSE,
NULL
};
@@ -773,6 +778,52 @@
gtk_widget_set_sensitive (widget, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)));
}
+
+static void
+http_proxy_toggled_cb (GtkWidget *check, gpointer user_data)
+{
+ GladeXML *xml = (GladeXML *) user_data;
+ GtkWidget *widget;
+
+ widget = glade_xml_get_widget (xml, "http_proxy_entry");
+ gtk_widget_set_sensitive (widget, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)));
+
+ widget = glade_xml_get_widget (xml, "http_proxy_port_entry");
+ gtk_widget_set_sensitive (widget, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)));
+
+ /*
+ http-proxy
+ depend:
+ tcp
+ options:
+ proxy retry (--http-proxy-retry)
+ proxy authentication
+ */
+ widget = glade_xml_get_widget (xml, "tcp_checkbutton");
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check))) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
+ gtk_widget_set_sensitive (widget, !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)));
+ /*proxy auth*/
+ /* not implemented yet */
+ /*
+ widget = glade_xml_get_widget (xml, "http_proxy_auth_checkbutton");
+ gtk_widget_set_sensitive (widget, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)));
+ */
+ /*http-proxy-retry*/
+ widget = glade_xml_get_widget (xml, "http_proxy_retry_checkbutton");
+ gtk_widget_set_sensitive (widget, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)));
+
+}
+
+static void
+verbose_toggled_cb (GtkWidget *check, gpointer user_data)
+{
+ GladeXML *xml = (GladeXML *) user_data;
+ GtkWidget *widget;
+
+ widget = glade_xml_get_widget (xml, "verbose_entry");
+ gtk_widget_set_sensitive (widget, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)));
+}
+
static const char *
nm_find_openvpn (void)
{
@@ -905,7 +956,7 @@
GtkWidget *dialog = NULL;
char *glade_file = NULL;
GtkWidget *widget;
- const char *value;
+ const char *value, *value2;
g_return_val_if_fail (hash != NULL, NULL);
@@ -925,6 +976,55 @@
xml, (GDestroyNotify) g_object_unref);
g_object_set_data (G_OBJECT (dialog), "connection-type", GINT_TO_POINTER (contype));
+ widget = glade_xml_get_widget (xml, "verbose_checkbutton");
+ g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (verbose_toggled_cb), xml);
+
+ value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_VERBOSE);
+ if (value && strlen (value)) {
+ widget = glade_xml_get_widget (xml, "verbose_checkbutton");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
+
+ widget = glade_xml_get_widget (xml, "verbose_entry");
+ gtk_entry_set_text (GTK_ENTRY (widget), value);
+ gtk_widget_set_sensitive (widget, TRUE);
+
+ } else {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
+
+ widget = glade_xml_get_widget (xml, "verbose_entry");
+ gtk_widget_set_sensitive (widget, FALSE);
+
+ }
+
+ widget = glade_xml_get_widget (xml, "http_proxy_checkbutton");
+ g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (http_proxy_toggled_cb), xml);
+
+ value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_HTTP_PROXY);
+ value2 = g_hash_table_lookup (hash, NM_OPENVPN_KEY_HTTP_PROXY_PORT);
+ if (value && strlen (value) && value2 && strlen (value2)) {
+ widget = glade_xml_get_widget (xml, "http_proxy_checkbutton");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
+
+ widget = glade_xml_get_widget (xml, "http_proxy_entry");
+ gtk_entry_set_text (GTK_ENTRY (widget), value);
+ gtk_widget_set_sensitive (widget, TRUE);
+
+ widget = glade_xml_get_widget (xml, "http_proxy_port_entry");
+ gtk_entry_set_text (GTK_ENTRY (widget), value2);
+ gtk_widget_set_sensitive (widget, TRUE);
+
+
+ } else {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
+
+ widget = glade_xml_get_widget (xml, "http_proxy_entry");
+ gtk_widget_set_sensitive (widget, FALSE);
+
+ widget = glade_xml_get_widget (xml, "http_proxy_port_entry");
+ gtk_widget_set_sensitive (widget, FALSE);
+
+ }
+
widget = glade_xml_get_widget (xml, "port_checkbutton");
g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (port_toggled_cb), xml);
@@ -1034,6 +1134,7 @@
GtkWidget *widget;
GladeXML *xml;
const char *contype = NULL;
+ const char *value, *value2;
g_return_val_if_fail (dialog != NULL, NULL);
if (error)
@@ -1053,6 +1154,57 @@
g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_PORT), g_strdup_printf ("%d", port));
}
+ /* PROXY SUPPORT */
+
+ widget = glade_xml_get_widget (xml, "http_proxy_checkbutton");
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
+
+ widget = glade_xml_get_widget (xml, "http_proxy_entry");
+ value = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
+ widget = glade_xml_get_widget (xml, "http_proxy_port_entry");
+ value2 = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
+
+ if (value && strlen (value) && value2 && strlen (value2)) {
+ g_hash_table_insert (hash,
+ g_strdup (NM_OPENVPN_KEY_HTTP_PROXY),
+ g_strdup (value));
+
+ g_hash_table_insert (hash,
+ g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_PORT),
+ g_strdup (value2));
+
+ } else {
+ g_hash_table_insert (hash,
+ g_strdup (NM_OPENVPN_KEY_HTTP_PROXY),
+ g_strdup ("no"));
+ }
+
+ widget = glade_xml_get_widget (xml, "http_proxy_retry_checkbutton");
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
+ g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_RETRY), g_strdup ("yes"));
+ }
+
+ /* not implemented yet */
+ /*
+ widget = glade_xml_get_widget (xml, "http_proxy_auth_checkbutton");
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
+ g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_AUTH), g_strdup ("yes"));
+ }
+ */
+ }
+ /* VERBOSE SUPPORT */
+ widget = glade_xml_get_widget (xml, "verbose_checkbutton");
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) {
+
+ widget = glade_xml_get_widget (xml, "verbose_entry");
+ value = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
+ if (value && strlen (value)) {
+ g_hash_table_insert (hash,
+ g_strdup (NM_OPENVPN_KEY_VERBOSE),
+ g_strdup (value));
+ }
+ }
+
widget = glade_xml_get_widget (xml, "lzo_checkbutton");
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_COMP_LZO), g_strdup ("yes"));
diff -ru network-manager-openvpn-0.7~~svn20081015t024626/properties/import-export.c network-manager-openvpn-0.7~~svn20081015t024626.patched/properties/import-export.c
--- network-manager-openvpn-0.7~~svn20081015t024626/properties/import-export.c 2008-08-19 13:59:36.000000000 +0200
+++ network-manager-openvpn-0.7~~svn20081015t024626.patched/properties/import-export.c 2008-10-16 14:27:06.827079001 +0200
@@ -55,6 +55,11 @@
#define SECRET_TAG "secret"
#define AUTH_USER_PASS_TAG "auth-user-pass"
#define TLS_AUTH_TAG "tls-auth"
+#define PROXY_TAG "http-proxy"
+#define PROXY_RETRY_TAG "http-retry-proxy"
+#define PORT_TAG "port"
+#define VERBOSE_TAG "verb"
+
static gboolean
handle_path_item (const char *line,
@@ -221,6 +226,79 @@
continue;
}
+ if (!strncmp (*line, PROXY_RETRY_TAG, strlen (PROXY_RETRY_TAG))) {
+ g_hash_table_insert (s_vpn->data,
+ g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_RETRY),
+ g_strdup ("yes"));
+ continue;
+ }
+
+
+ if (!strncmp (*line, PROXY_TAG, strlen (PROXY_TAG))) {
+ items = get_args (*line + strlen (PROXY_TAG));
+ if (!items)
+ continue;
+
+ if (g_strv_length (items) >= 1) {
+ g_hash_table_insert (s_vpn->data,
+ g_strdup (NM_OPENVPN_KEY_HTTP_PROXY),
+ g_strdup (items[0]));
+ if (g_strv_length (items) >= 2) {
+ glong port;
+
+ errno = 0;
+ port = strtol (items[1], NULL, 10);
+ if ((errno == 0) && (port > 0) && (port < 65536)) {
+ g_hash_table_insert (s_vpn->data,
+ g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_PORT),
+ // g_strdup (items[1]));
+ g_strdup_printf ("%d", (guint32) port));
+ if (g_strv_length (items) >= 3) {
+ g_hash_table_insert (s_vpn->data,
+ g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_AUTH),
+ g_strdup ("yes"));
+ /*save http proxy usename/password*/
+ }
+ } else
+ g_warning ("%s: invalid http proxy port in option '%s'", __func__, *line);
+ }
+ }
+
+ g_strfreev (items);
+ continue;
+ }
+
+ if (!strncmp (*line, PORT_TAG, strlen (PORT_TAG))) {
+ items = get_args (*line + strlen (PORT_TAG));
+ if (!items)
+ continue;
+
+ if (g_strv_length (items)) {
+ g_hash_table_insert (s_vpn->data,
+ g_strdup (NM_OPENVPN_KEY_PORT),
+ g_strdup (items[0]));
+ }
+ g_strfreev (items);
+ continue;
+
+ }
+
+ if (!strncmp (*line, VERBOSE_TAG, strlen (VERBOSE_TAG))) {
+ items = get_args (*line + strlen (VERBOSE_TAG));
+ if (!items)
+ continue;
+
+ if (g_strv_length (items)) {
+ g_hash_table_insert (s_vpn->data,
+ g_strdup (NM_OPENVPN_KEY_VERBOSE),
+ g_strdup (items[0]));
+ }
+ g_strfreev (items);
+ continue;
+
+ }
+
+
if (!strncmp (*line, REMOTE_TAG, strlen (REMOTE_TAG))) {
items = get_args (*line + strlen (REMOTE_TAG));
if (!items)
diff -ru network-manager-openvpn-0.7~~svn20081015t024626/properties/nm-openvpn-dialog.glade network-manager-openvpn-0.7~~svn20081015t024626.patched/properties/nm-openvpn-dialog.glade
--- network-manager-openvpn-0.7~~svn20081015t024626/properties/nm-openvpn-dialog.glade 2008-10-02 21:41:09.000000000 +0200
+++ network-manager-openvpn-0.7~~svn20081015t024626.patched/properties/nm-openvpn-dialog.glade 2008-10-16 13:22:10.928876435 +0200
@@ -893,6 +893,170 @@
<property name="expand">False</property>
</packing>
</child>
+ <child>
+ <widget class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="http_proxy_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Use _http proxy:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="http_proxy_entry">
+ <property name="width_request">110</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">â??</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label31">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">http_proxy_port_entry</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label31">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">http_proxy_port_entry</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="http_proxy_port_entry">
+ <property name="width_request">40</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">4</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">â??</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="http_proxy_retry_checkbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Use _http proxy retry</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">True</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="http_proxy_auth_checkbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Use http proxy _authentication</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
<child>
<widget class="GtkCheckButton" id="lzo_checkbutton">
<property name="visible">True</property>
@@ -935,6 +1099,58 @@
<property name="position">3</property>
</packing>
</child>
+ <child>
+ <widget class="GtkHBox" id="hbox4">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="verbose_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Be verbose:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="verbose_entry">
+ <property name="width_request">110</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">â??</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
</widget>
</child>
<child>
diff -ru network-manager-openvpn-0.7~~svn20081015t024626/src/nm-openvpn-service.c network-manager-openvpn-0.7~~svn20081015t024626.patched/src/nm-openvpn-service.c
--- network-manager-openvpn-0.7~~svn20081015t024626/src/nm-openvpn-service.c 2008-10-02 21:41:09.000000000 +0200
+++ network-manager-openvpn-0.7~~svn20081015t024626.patched/src/nm-openvpn-service.c 2008-10-16 14:20:41.721106873 +0200
@@ -103,6 +103,11 @@
{ NM_OPENVPN_KEY_PASSWORD, G_TYPE_STRING, 0, 0, FALSE },
{ NM_OPENVPN_KEY_CERTPASS, G_TYPE_STRING, 0, 0, FALSE },
{ NM_OPENVPN_KEY_NOSECRET, G_TYPE_STRING, 0, 0, FALSE },
+ { NM_OPENVPN_KEY_HTTP_PROXY, G_TYPE_STRING, 0, 0, FALSE },
+ { NM_OPENVPN_KEY_HTTP_PROXY_PORT, G_TYPE_STRING, 0, 65535, FALSE },
+ { NM_OPENVPN_KEY_HTTP_PROXY_RETRY, G_TYPE_BOOLEAN, 0, 0, FALSE },
+ { NM_OPENVPN_KEY_HTTP_PROXY_AUTH, G_TYPE_BOOLEAN, 0, 0, FALSE },
+ { NM_OPENVPN_KEY_VERBOSE, G_TYPE_STRING, 0, 255, FALSE },
{ NULL, G_TYPE_NONE, FALSE }
};
@@ -549,7 +554,7 @@
GError **error)
{
NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin);
- const char *openvpn_binary, *connection_type, *tmp;
+ const char *openvpn_binary, *connection_type, *tmp, *tmp2;
GPtrArray *args;
GSource *openvpn_watch;
GPid pid;
@@ -584,6 +589,19 @@
add_openvpn_arg (args, tmp);
}
+ tmp = g_hash_table_lookup (properties, NM_OPENVPN_KEY_HTTP_PROXY);
+ tmp2 = g_hash_table_lookup (properties, NM_OPENVPN_KEY_HTTP_PROXY_PORT);
+ if (tmp && strlen (tmp) && tmp2 && strlen (tmp2)) {
+ add_openvpn_arg (args, "--http-proxy");
+ add_openvpn_arg (args, tmp);
+ add_openvpn_arg (args, tmp2);
+ }
+
+ tmp = g_hash_table_lookup (properties, NM_OPENVPN_KEY_HTTP_PROXY_RETRY);
+ if (tmp && strlen (tmp)){
+ add_openvpn_arg (args, "--http-proxy-retry");
+ }
+
tmp = g_hash_table_lookup (properties, NM_OPENVPN_KEY_COMP_LZO);
if (tmp && !strcmp (tmp, "yes"))
add_openvpn_arg (args, "--comp-lzo");
@@ -645,6 +663,12 @@
/* Syslog */
add_openvpn_arg (args, "--syslog");
add_openvpn_arg (args, "nm-openvpn");
+
+ tmp = g_hash_table_lookup (properties, NM_OPENVPN_KEY_VERBOSE);
+ if (tmp && strlen (tmp)) {
+ add_openvpn_arg (args, "--verb");
+ add_openvpn_arg (args, tmp);
+ }
/* Punch script security in the face; this option was added to OpenVPN 2.1-rc9
* and defaults to disallowing any scripts, a behavior change from previous
diff -ru network-manager-openvpn-0.7~~svn20081015t024626/src/nm-openvpn-service.h network-manager-openvpn-0.7~~svn20081015t024626.patched/src/nm-openvpn-service.h
--- network-manager-openvpn-0.7~~svn20081015t024626/src/nm-openvpn-service.h 2008-09-08 21:55:33.000000000 +0200
+++ network-manager-openvpn-0.7~~svn20081015t024626.patched/src/nm-openvpn-service.h 2008-10-16 14:18:09.048910405 +0200
@@ -55,6 +55,11 @@
#define NM_OPENVPN_KEY_TA "ta"
#define NM_OPENVPN_KEY_TA_DIR "ta-dir"
#define NM_OPENVPN_KEY_USERNAME "username"
+#define NM_OPENVPN_KEY_HTTP_PROXY "http-proxy"
+#define NM_OPENVPN_KEY_HTTP_PROXY_PORT "http-proxy-port"
+#define NM_OPENVPN_KEY_HTTP_PROXY_RETRY "http-proxy-retry"
+#define NM_OPENVPN_KEY_HTTP_PROXY_AUTH "http-proxy-auth"
+#define NM_OPENVPN_KEY_VERBOSE "verb"
#define NM_OPENVPN_KEY_PASSWORD "password"
#define NM_OPENVPN_KEY_CERTPASS "cert-pass"