diff -Nru network-manager-openvpn-1.1.93/debian/changelog network-manager-openvpn-1.1.93/debian/changelog --- network-manager-openvpn-1.1.93/debian/changelog 2016-04-13 00:53:35.000000000 +0000 +++ network-manager-openvpn-1.1.93/debian/changelog 2017-02-20 14:37:01.000000000 +0000 @@ -1,3 +1,10 @@ +network-manager-openvpn (1.1.93-1ubuntu2) xenial; urgency=medium + + * Add support for max-routes configuration. Cherry-picked from upstream Git. + (LP: #1617098) + + -- Adam Collard Mon, 20 Feb 2017 14:16:41 +0000 + network-manager-openvpn (1.1.93-1ubuntu1) xenial; urgency=medium * Allow the "udp6" and "tcp6" protocols to be passed through to OpenVPN. diff -Nru network-manager-openvpn-1.1.93/debian/patches/add-max-routes.patch network-manager-openvpn-1.1.93/debian/patches/add-max-routes.patch --- network-manager-openvpn-1.1.93/debian/patches/add-max-routes.patch 1970-01-01 00:00:00.000000000 +0000 +++ network-manager-openvpn-1.1.93/debian/patches/add-max-routes.patch 2017-02-20 14:12:15.000000000 +0000 @@ -0,0 +1,220 @@ +Index: network-manager-openvpn-1.1.93/properties/auth-helpers.c +=================================================================== +--- network-manager-openvpn-1.1.93.orig/properties/auth-helpers.c 2016-04-05 21:53:57.000000000 +0100 ++++ network-manager-openvpn-1.1.93/properties/auth-helpers.c 2017-02-20 14:12:11.993550144 +0000 +@@ -903,6 +903,7 @@ + NM_OPENVPN_KEY_PING, + NM_OPENVPN_KEY_PING_EXIT, + NM_OPENVPN_KEY_PING_RESTART, ++ NM_OPENVPN_KEY_MAX_ROUTES, + NULL + }; + +@@ -1891,6 +1892,18 @@ + gtk_widget_set_sensitive (widget, FALSE); + } + ++ /* max routes */ ++ widget = GTK_WIDGET (gtk_builder_get_object (builder, "max_routes_checkbutton")); ++ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { ++ int max_routes; ++ ++ widget = GTK_WIDGET (gtk_builder_get_object (builder, "max_routes_spinbutton")); ++ max_routes = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); ++ g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_MAX_ROUTES), g_strdup_printf ("%d", max_routes)); ++ } ++ ++ ++ + out: + g_free (ui_file); + return dialog; +@@ -2151,7 +2164,7 @@ + } + } + +- widget = GTK_WIDGET (gtk_builder_get_object (builder, "ping_checkbutton")); ++ widget = GTK_WIDGET (gtk_builder_get_object (builder, "ping_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int ping_val; + +@@ -2180,6 +2193,16 @@ + g_strdup_printf ("%d", ping_val)); + } + ++ /* max routes */ ++ widget = GTK_WIDGET (gtk_builder_get_object (builder, "max_routes_checkbutton")); ++ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { ++ int max_routes; ++ ++ widget = GTK_WIDGET (gtk_builder_get_object (builder, "max_routes_spinbutton")); ++ max_routes = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); ++ g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_MAX_ROUTES), g_strdup_printf ("%d", max_routes)); ++ } ++ + return hash; + } + +Index: network-manager-openvpn-1.1.93/properties/import-export.c +=================================================================== +--- network-manager-openvpn-1.1.93.orig/properties/import-export.c 2017-02-20 14:10:42.000000000 +0000 ++++ network-manager-openvpn-1.1.93/properties/import-export.c 2017-02-20 14:12:11.993550144 +0000 +@@ -938,6 +938,15 @@ + continue; + } + ++ if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_MAX_ROUTES)) { ++ if (!args_params_check_nargs_n (params, 1, &line_error)) ++ goto handle_line_error; ++ if (!args_params_parse_int64 (params, 1, 0, 100000000, &v_int64, &line_error)) ++ goto handle_line_error; ++ setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_MAX_ROUTES, v_int64); ++ continue; ++ } ++ + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_HTTP_PROXY_RETRY, NMV_OVPN_TAG_SOCKS_PROXY_RETRY)) { + if (!args_params_check_nargs_n (params, 0, &line_error)) + goto handle_line_error; +@@ -1752,6 +1761,8 @@ + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_RENEG_SEC, s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS); + ++ args_write_line_setting_value_int (f, NMV_OVPN_TAG_MAX_ROUTES, s_vpn, NM_OPENVPN_KEY_MAX_ROUTES); ++ + args_write_line_setting_value (f, NMV_OVPN_TAG_CIPHER, s_vpn, NM_OPENVPN_KEY_CIPHER); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_KEYSIZE, s_vpn, NM_OPENVPN_KEY_KEYSIZE); +Index: network-manager-openvpn-1.1.93/properties/nm-openvpn-dialog.ui +=================================================================== +--- network-manager-openvpn-1.1.93.orig/properties/nm-openvpn-dialog.ui 2016-04-05 21:53:57.000000000 +0100 ++++ network-manager-openvpn-1.1.93/properties/nm-openvpn-dialog.ui 2017-02-20 14:12:11.993550144 +0000 +@@ -53,6 +53,14 @@ + 1 + 10 + ++ ++ 1 ++ 65535 ++ 200 ++ 1 ++ 10 ++ ++ + + + +@@ -1558,6 +1566,53 @@ + + + ++ ++ True ++ False ++ 6 ++ ++ ++ Specify max routes: ++ False ++ True ++ True ++ False ++ Specify the maximum number of routes the server is allowed so specify. ++config: max-routes <n> ++ True ++ 0.5 ++ True ++ ++ ++ False ++ True ++ 0 ++ ++ ++ ++ ++ True ++ True ++ Specify the maximum number of routes the server is allowed so specify. ++config: max-routes<n> ++ adjustment9 ++ 1 ++ True ++ ++ ++ False ++ False ++ 1 ++ ++ ++ ++ ++ False ++ True ++ 12 ++ ++ ++ + + True + False +Index: network-manager-openvpn-1.1.93/shared/nm-openvpn-service-defines.h +=================================================================== +--- network-manager-openvpn-1.1.93.orig/shared/nm-openvpn-service-defines.h 2016-04-05 21:53:57.000000000 +0100 ++++ network-manager-openvpn-1.1.93/shared/nm-openvpn-service-defines.h 2017-02-20 14:12:11.993550144 +0000 +@@ -67,6 +67,7 @@ + #define NM_OPENVPN_KEY_TUN_IPV6 "tun-ipv6" + #define NM_OPENVPN_KEY_TLS_REMOTE "tls-remote" + #define NM_OPENVPN_KEY_REMOTE_CERT_TLS "remote-cert-tls" ++#define NM_OPENVPN_KEY_MAX_ROUTES "max-routes" + + #define NM_OPENVPN_KEY_PASSWORD "password" + #define NM_OPENVPN_KEY_CERTPASS "cert-pass" +Index: network-manager-openvpn-1.1.93/shared/utils.h +=================================================================== +--- network-manager-openvpn-1.1.93.orig/shared/utils.h 2016-04-05 21:53:57.000000000 +0100 ++++ network-manager-openvpn-1.1.93/shared/utils.h 2017-02-20 14:12:11.993550144 +0000 +@@ -44,6 +44,7 @@ + #define NMV_OVPN_TAG_KEY_DIRECTION "key-direction" + #define NMV_OVPN_TAG_KEY "key" + #define NMV_OVPN_TAG_KEYSIZE "keysize" ++#define NMV_OVPN_TAG_MAX_ROUTES "max-routes" + #define NMV_OVPN_TAG_MSSFIX "mssfix" + #define NMV_OVPN_TAG_NOBIND "nobind" + #define NMV_OVPN_TAG_NS_CERT_TYPE "ns-cert-type" +Index: network-manager-openvpn-1.1.93/src/nm-openvpn-service.c +=================================================================== +--- network-manager-openvpn-1.1.93.orig/src/nm-openvpn-service.c 2017-02-20 14:10:42.000000000 +0000 ++++ network-manager-openvpn-1.1.93/src/nm-openvpn-service.c 2017-02-20 14:12:11.993550144 +0000 +@@ -120,6 +120,7 @@ + { NM_OPENVPN_KEY_PING, G_TYPE_INT, 0, G_MAXINT, FALSE }, + { NM_OPENVPN_KEY_PING_EXIT, G_TYPE_INT, 0, G_MAXINT, FALSE }, + { NM_OPENVPN_KEY_PING_RESTART, G_TYPE_INT, 0, G_MAXINT, FALSE }, ++ { NM_OPENVPN_KEY_MAX_ROUTES, G_TYPE_INT, 0, 100000000, FALSE }, + { NM_OPENVPN_KEY_PROTO_TCP, G_TYPE_BOOLEAN, 0, 0, FALSE }, + { NM_OPENVPN_KEY_PORT, G_TYPE_INT, 1, 65535, FALSE }, + { NM_OPENVPN_KEY_PROXY_TYPE, G_TYPE_STRING, 0, 0, FALSE }, +@@ -1303,6 +1304,24 @@ + + add_openvpn_arg (args, "--nobind"); + ++ /* max routes allowed from openvpn server */ ++ tmp = nm_setting_vpn_get_data_item(s_vpn, NM_OPENVPN_KEY_MAX_ROUTES); ++ if (tmp) { ++ /* max-routes option is deprecated in 2.4 release ++ * https://github.com/OpenVPN/openvpn/commit/d0085293e709c8a722356cfa68ad74c962aef9a2 ++ */ ++ add_openvpn_arg (args, "--max-routes"); ++ if (!add_openvpn_arg_int (args, tmp)) { ++ g_set_error (error, ++ NM_VPN_PLUGIN_ERROR, ++ NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, ++ _("Invalid max-routes argument '%s'."), ++ tmp); ++ free_openvpn_args (args); ++ return FALSE; ++ } ++ } ++ + /* Device and device type, defaults to tun */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_DEV); + tmp2 = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_DEV_TYPE); diff -Nru network-manager-openvpn-1.1.93/debian/patches/series network-manager-openvpn-1.1.93/debian/patches/series --- network-manager-openvpn-1.1.93/debian/patches/series 2016-04-13 00:51:39.000000000 +0000 +++ network-manager-openvpn-1.1.93/debian/patches/series 2017-02-20 14:11:00.000000000 +0000 @@ -1,2 +1,3 @@ Use-user-nobody-group-nogroup-when-exporting-an-OpenVPN-c.patch Support-IPv6-Servers.patch +add-max-routes.patch