|
Viewing Issue Simple Details
[ Jump to Notes ]
|
[ View Advanced ]
[ Issue History ]
[ Print ]
|
|
ID |
Category |
Severity |
Reproducibility |
Date Submitted |
Last Update |
|
0001260 |
[PacketFence] captive portal |
major |
random |
2011-08-30 17:51 |
2011-09-21 22:16 |
|
|
Reporter |
obilodeau |
View Status |
public |
|
|
Assigned To |
obilodeau |
|
Priority |
normal |
Resolution |
fixed |
|
|
Status |
closed |
|
Product Version |
|
|
|
Summary |
0001260: redirect loop on the captive portal because VLAN [re-]assignment failed |
|
Description |
SNMP uses UDP. Sometimes VLAN changes fails to reach the network devices, especially on busy periods. Especially on busy controllers when there are a lot of deauthentication to do.
When it happens, nodes are stuck on the registration VLAN and if they hit the captive portal they get into a redirect loop.
Instead of that redirect loop, we could try again to deauth / vlan change the user that we think shouldn't be here. |
|
Additional Information |
|
| Tags |
No tags attached. |
|
|
fixed in git revision |
|
|
fixed in mtn revision |
9bdb3559a2639121b7d4ff9b330bcc18b37befd9 |
|
|
Attached Files |
vlan-assignment-retry-instead-of-redirect-loop-2.2.1.patch [^] (1,198 bytes) 2011-08-30 18:12 [Show Content] [Hide Content]#
# old_revision [69347a6378a28890628a182b3348b1e1524aacf8]
#
# patch "pf/cgi-bin/redir.cgi"
# from [3bfb83a97c50c2cac8de6de620568f558fea98f5]
# to [a5944d36fca3a7d30c7ae7fed3f2a495a16c7b67]
#
============================================================
--- pf/cgi-bin/redir.cgi 3bfb83a97c50c2cac8de6de620568f558fea98f5
+++ pf/cgi-bin/redir.cgi a5944d36fca3a7d30c7ae7fed3f2a495a16c7b67
@@ -140,10 +140,18 @@ if ($Config{'network'}{'mode'} =~ /arp/i
my $output = qx/$cmd/;
$logger->info("freed $mac");
}
-#TODO: I think the below here is what's causing redirect loops, need to confirm first then fix
-$logger->info("redirecting to ".$Config{'trapping'}{'redirecturl'});
-print $cgi->redirect($Config{'trapping'}{'redirecturl'});
+$logger->info(
+ "MAC $mac shouldn't reach here. " .
+ "Calling access re-evaluation through flip.pl. " .
+ "Make sure your network device configuration is correct."
+);
+my @args = ( $Config{'vlan'}{'adjustswitchportvlanscript'}, $mac );
+system(@args);
+pf::web::generate_error_page($cgi, $session,
+ "Your network should be enabled within a minute or two. If it is not reboot your computer."
+);
+
=head1 AUTHOR
Dominik Gehl <dgehl@inverse.ca>
vlan-assignment-retry-instead-of-redirect-loop-1.9.0.patch [^] (1,147 bytes) 2011-08-30 19:14 [Show Content] [Hide Content]#
# old_revision [3180b4c608be1a77f27741480c50acbfff125054]
#
# patch "pf/cgi-bin/redir.cgi"
# from [b28da2d1584e1f86a22d3671b7bc9f18a7073e93]
# to [1bee916b0e56fdaa6222587cf20223d0beed21a3]
#
============================================================
--- pf/cgi-bin/redir.cgi b28da2d1584e1f86a22d3671b7bc9f18a7073e93
+++ pf/cgi-bin/redir.cgi 1bee916b0e56fdaa6222587cf20223d0beed21a3
@@ -117,7 +117,15 @@ if ($Config{'network'}{'mode'} =~ /arp/i
my $output = qx/$cmd/;
$logger->info("freed $mac");
}
-#TODO: I think the below here is what's causing redirect loops, need to confirm first then fix
-$logger->info("redirecting to ".$Config{'trapping'}{'redirecturl'});
-print $cgi->redirect($Config{'trapping'}{'redirecturl'});
+$logger->info(
+ "MAC $mac shouldn't reach here. " .
+ "Calling access re-evaluation through flip.pl. " .
+ "Make sure your network device configuration is correct."
+);
+my @args = ( $Config{'vlan'}{'adjustswitchportvlanscript'}, $mac );
+system(@args);
+pf::web::generate_error_page($cgi, $session,
+ "Your network should be enabled within a minute or two. If it is not reboot your computer."
+);
+
|
|
|