From 4cf90d07ac8070b83527937103ff7494501871c0 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Sat, 11 Jul 2015 18:59:09 -0700 Subject: [PATCH] The mppe-stateful directive doesn't have a require- prefix http://sourceforge.net/p/webadmin/bugs/4625/ --- pptp-client/pptp-client-lib.pl | 38 +++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/pptp-client/pptp-client-lib.pl b/pptp-client/pptp-client-lib.pl index b8d75d3b2..eac286971 100755 --- a/pptp-client/pptp-client-lib.pl +++ b/pptp-client/pptp-client-lib.pl @@ -140,8 +140,11 @@ foreach $c (@{$_[0]->{'opts'}}) { } @old_mppe = ( 'mppe-40', 'mppe-128', 'mppe-stateless' ); -@new_mppe = ( [ 'mppe', 0 ], [ 'mppe-40', 1 ], [ 'mppe-128', 1 ], - [ 'mppe-stateful', 0 ] ); +@new_mppe = ( [ 'mppe', 0, 'require-', 'no' ], + [ 'mppe-40', 1, 'require-', 'no' ], + [ 'mppe-128', 1, 'require-', 'no' ], + [ 'mppe-stateful', 0, '', 'no' ], + ); # mppe_options_form(&opts) # Show a form for editing MPPE-related PPP options @@ -156,8 +159,8 @@ if ($mppe_mode) { # Show new MPPE options local $o; foreach $o (@new_mppe) { - local $o0 = &find("require-".$o->[0], $opts); - local $o1 = &find("no".$o->[0], $opts); + local $o0 = &find($o->[2].$o->[0], $opts); + local $o1 = &find($o->[2].$o->[0], $opts); local $mode = $o0 ? 2 : $o1 ? 0 : 1; print " ",$text{'mppe_'.$o->[0]},"\n"; print "\n"; @@ -204,29 +207,30 @@ else { # parse_mppe_options(&config, file) sub parse_mppe_options { -local $o; if ($in{'mppe_mode'}) { # Parse new-style options - foreach $o (map { $_->[0] } @new_mppe) { - if ($in{$o} == 2) { - &save_ppp_option($_[0], $_[1], "require-$o", - { 'name' => "require-$o" }); - &save_ppp_option($_[0], $_[1], "no$o", undef); + foreach my $opt (@new_mppe) { + my $req = $opt->[2].$opt->[0]; + my $no = $opt->[3].$opt->[0]; + if ($in{$opt->[0]} == 2) { + &save_ppp_option($_[0], $_[1], $req, + { 'name' => $req }); + &save_ppp_option($_[0], $_[1], $no, undef); } - elsif ($in{$o} == 1) { - &save_ppp_option($_[0], $_[1], "require-$o", undef); - &save_ppp_option($_[0], $_[1], "no$o", undef); + elsif ($in{$opt->[0]} == 1) { + &save_ppp_option($_[0], $_[1], $req, undef); + &save_ppp_option($_[0], $_[1], $no, undef); } else { - &save_ppp_option($_[0], $_[1], "require-$o", undef); - &save_ppp_option($_[0], $_[1], "no$o", - { 'name' => "no$o" }); + &save_ppp_option($_[0], $_[1], $req, undef); + &save_ppp_option($_[0], $_[1], $no, + { 'name' => $no }); } } } else { # Parse old-style options - foreach $o (@old_mppe) { + foreach my $o (@old_mppe) { &save_ppp_option($_[0], $_[1], $o, $in{$o} ? { 'name' => $o } : undef); }