Here is a patch to fix nm not saving the openvpn gateway port.
I just switched the type from uint to int.
Alternatively you could patch the applet to know how to write uints to gconf.

Rob


Index: openvpn/src/nm-openvpn-service.c
===================================================================
--- openvpn/src/nm-openvpn-service.c    (revision 3261)
+++ openvpn/src/nm-openvpn-service.c    (working copy)
@@ -91,7 +91,7 @@
         { NM_OPENVPN_KEY_TAP_DEV,         G_TYPE_BOOLEAN },
         { NM_OPENVPN_KEY_KEY,             G_TYPE_STRING },
         { NM_OPENVPN_KEY_LOCAL_IP,        G_TYPE_STRING },
-       { NM_OPENVPN_KEY_PORT,            G_TYPE_UINT },
+       { NM_OPENVPN_KEY_PORT,            G_TYPE_INT },
         { NM_OPENVPN_KEY_PROTO_TCP,       G_TYPE_BOOLEAN },
         { NM_OPENVPN_KEY_REMOTE,          G_TYPE_STRING },
         { NM_OPENVPN_KEY_REMOTE_IP,       G_TYPE_STRING },
@@ -419,7 +419,7 @@
         tmp = g_hash_table_lookup (properties, NM_OPENVPN_KEY_PORT);
         if (tmp)
                 /* The string here is leaked, big deal. */
-               g_ptr_array_add (openvpn_argv, g_strdup_printf ("%u", 
g_value_get_uint ((GValue *) tmp)));
+               g_ptr_array_add (openvpn_argv, g_strdup_printf ("%i", 
g_value_get_int ((GValue *) tmp)));
         else
                 /* Default to IANA assigned port 1194 */
                 g_ptr_array_add (openvpn_argv, (GValue *) "1194");

Index: openvpn/properties/nm-openvpn.c
===================================================================
--- openvpn/properties/nm-openvpn.c     (revision 3261)
+++ openvpn/properties/nm-openvpn.c     (working copy)
@@ -224,18 +224,6 @@
         return value;
  }

-static GValue *
-uint_to_gvalue (guint u)
-{
-       GValue *value;
-
-       value = g_slice_new0 (GValue);
-       g_value_init (value, G_TYPE_UINT);
-       g_value_set_uint (value, u);
-
-       return value;
-}
-
  static void
  impl_fill_connection (NetworkManagerVpnUI *self, NMConnection *connection)
  {
@@ -302,7 +290,7 @@

         g_hash_table_insert (properties, g_strdup(NM_OPENVPN_KEY_TAP_DEV), 
bool_to_gvalue (use_tap));
         g_hash_table_insert (properties, g_strdup(NM_OPENVPN_KEY_REMOTE), 
str_to_gvalue (remote));
-       g_hash_table_insert (properties, g_strdup(NM_OPENVPN_KEY_PORT), 
uint_to_gvalue ((guint) atoi (port)));
+       g_hash_table_insert (properties, g_strdup(NM_OPENVPN_KEY_PORT), 
int_to_gvalue (atoi (port)));
         g_hash_table_insert (properties, g_strdup(NM_OPENVPN_KEY_PROTO_TCP), 
bool_to_gvalue (use_tcp));
         g_hash_table_insert (properties, g_strdup(NM_OPENVPN_KEY_CA), 
str_to_gvalue (ca));
         g_hash_table_insert (properties, g_strdup(NM_OPENVPN_KEY_CERT), 
str_to_gvalue (cert));
@@ -373,7 +361,7 @@
         if (!strcmp (name, NM_OPENVPN_KEY_REMOTE))
                 gtk_entry_set_text (impl->w_remote, g_value_get_string 
(value));
         else if (!strcmp (name, NM_OPENVPN_KEY_PORT)) {
-               char *port = g_strdup_printf ("%u", g_value_get_uint (value));
+               char *port = g_strdup_printf ("%i", g_value_get_int (value));
                 gtk_entry_set_text (impl->w_port, port);
                 g_free (port);
         } else if (!strcmp (name, NM_OPENVPN_KEY_CA))
@@ -1337,7 +1325,7 @@
         FILE *f;
         const char *connection_type = "";
         const char *remote = "";
-       guint port = 1194;
+       int port = 1194;
         gboolean tap_dev = FALSE;
         gboolean proto_tcp = FALSE;
         const char *ca = "";
@@ -1369,7 +1357,7 @@

         val = (GValue *) g_hash_table_lookup (s_vpn_props->data, 
NM_OPENVPN_KEY_PORT);
         if (val)
-               port = g_value_get_uint (val);
+               port = g_value_get_int (val);

         val = (GValue *) g_hash_table_lookup (s_vpn_props->data, 
NM_OPENVPN_KEY_TAP_DEV);
         if (val)
@@ -1468,7 +1456,7 @@
                             "description=%s\n"
                             "connection-type=%s\n"
                             "remote=%s\n"
-                           "port=%u\n"
+                           "port=%i\n"
                             "dev=%s\n"
                             "proto=%s\n"
                             "ca=%s\n"


_______________________________________________
NetworkManager-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to