Patch to manage multiple handler types in the same server

environments/ppa-mbqj77/deployments/1
Xavier Guimard 10 years ago
parent 723973bd9c
commit 63c3aaa9b6
  1. 17
      lemonldap-ng-handler/lib/Lemonldap/NG/Handler/API.pm
  2. 1
      lemonldap-ng-handler/lib/Lemonldap/NG/Handler/API/ApacheMP2.pm
  3. 1
      lemonldap-ng-handler/lib/Lemonldap/NG/Handler/API/CGI.pm
  4. 1
      lemonldap-ng-handler/lib/Lemonldap/NG/Handler/API/PSGI.pm

@ -30,11 +30,10 @@ BEGIN {
eval 'use constant MP => 0;';
}
if ( $ENV{GATEWAY_INTERFACE} ) { eval 'use constant GI => 1;'; }
else { eval 'use constant GI => 0;'; }
}
our $mode;
sub AUTOLOAD {
my $func = $AUTOLOAD;
$func =~ s/^.*:://;
@ -43,14 +42,14 @@ sub AUTOLOAD {
# - Apache (modperl 2),
# - Apache (modperl1),
# - Nginx
my $mode =
$mode ||=
( caller(6) and ( caller(6) )[0] eq 'Lemonldap::NG::Handler::PSGI' )
? 'PSGI'
: GI ? 'CGI'
: ( MP == 2 ) ? 'ApacheMP2'
: ( MP == 1 ) ? 'ApacheMP1'
: $main::{'nginx::'} ? 'Nginx'
: 'CGI';
: $ENV{GATEWAY_INTERFACE} ? 'CGI'
: ( MP == 2 ) ? 'ApacheMP2'
: ( MP == 1 ) ? 'ApacheMP1'
: $main::{'nginx::'} ? 'Nginx'
: 'CGI';
unless ( $INC{"Lemonldap/NG/Handler/API/$mode.pm"} ) {
eval
"use Lemonldap::NG::Handler::API::$mode (':httpCodes', ':functions');";

@ -56,6 +56,7 @@ sub setServerSignature {
sub newRequest {
my ( $class, $r ) = @_;
$request = $r;
$Lemonldap::NG::API::mode = 'ApacheMP2';
}
## @method void lmLog(string $msg, string $level)

@ -37,6 +37,7 @@ sub thread_share {
sub newRequest {
my ( $class, $r ) = @_;
$request = $r;
$Lemonldap::NG::API::mode = 'CGI';
}
## @method void lmLog(string $msg, string $level)

@ -25,6 +25,7 @@ sub thread_share {
sub newRequest {
my ( $class, $r ) = @_;
$request = $r;
$Lemonldap::NG::API::mode = 'PSGI';
}
## @method void lmLog(string $msg, string $level)

Loading…
Cancel
Save