зеркало из https://github.com/mozilla/pjs.git
Fix fallout in the Input modules from the removal of implied properties
This commit is contained in:
Родитель
44e5e9bcfc
Коммит
6a3dab8272
|
@ -304,3 +304,7 @@ sub hash {
|
|||
# output Set-Cookie headers.) Eventually, output systems will have
|
||||
# out-of-band metadata too, such as Last-Modified dates and this
|
||||
# session data.
|
||||
|
||||
sub username {}
|
||||
sub password {}
|
||||
sub address {}
|
||||
|
|
|
@ -166,32 +166,9 @@ sub createArgument {
|
|||
sub implyMethod {
|
||||
my $self = shift;
|
||||
my($name, @data) = @_;
|
||||
if (@data > 1) {
|
||||
return $self->SUPER::implyMethod(@_);
|
||||
}
|
||||
if (@data) {
|
||||
return $self->propertySet($name, @data);
|
||||
return $self->SUPER::implyMethod(@_);
|
||||
} else {
|
||||
return $self->propertyGet($name);
|
||||
}
|
||||
}
|
||||
|
||||
sub propertyGet {
|
||||
my $self = shift;
|
||||
if ($self->SUPER::propertyExists(@_)) {
|
||||
return $self->SUPER::propertyGet(@_);
|
||||
} else {
|
||||
return $self->peekArgument(@_); # XXX assumes that return propagates wantarray context...
|
||||
# if not:
|
||||
# my @result = $self->getArgument(@_);
|
||||
# if (wantarray) {
|
||||
# return @result;
|
||||
# } else {
|
||||
# if (@result) {
|
||||
# return $result[0];
|
||||
# } else {
|
||||
# return undef;
|
||||
# }
|
||||
# }
|
||||
return $self->peekArgument($name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,15 +59,15 @@ sub splitArguments {
|
|||
PATH_INFO PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST
|
||||
REMOTE_ADDR AUTH_TYPE REMOTE_USER REMOTE_IDENT CONTENT_TYPE
|
||||
CONTENT_LENGTH)) {
|
||||
$self->propertySet($property, $ENV{$property});
|
||||
$self->{$property} = $ENV{$property};
|
||||
}
|
||||
foreach my $property (keys(%ENV)) {
|
||||
if ($property =~ /^HTTP_/o) {
|
||||
$self->propertySet($property, $ENV{$property});
|
||||
$self->{$property} = $ENV{$property};
|
||||
}
|
||||
}
|
||||
# hook in the metadata variables
|
||||
$self->metaData({}); # empty the list of meta data first
|
||||
$self->{metaData} = {}; # empty the list of meta data first
|
||||
$self->registerPropertyAsMetaData('UA', 'HTTP_USER_AGENT');
|
||||
$self->registerPropertyAsMetaData('referrer', 'HTTP_REFERER');
|
||||
$self->registerPropertyAsMetaData('host', 'REMOTE_HOST', 'REMOTE_ADDR');
|
||||
|
@ -77,7 +77,7 @@ sub splitArguments {
|
|||
$self->registerPropertyAsMetaData('acceptLanguage', 'HTTP_ACCEPT_LANGUAGE');
|
||||
# decode username and password data
|
||||
if (defined($ENV{'HTTP_AUTHORIZATION'})) {
|
||||
if ($self->HTTP_AUTHORIZATION =~ /^Basic +(.*)$/os) {
|
||||
if ($self->{HTTP_AUTHORIZATION} =~ /^Basic +(.*)$/os) {
|
||||
# HTTP Basic Authentication
|
||||
my($username, $password) = split(/:/, decode_base64($1), 2);
|
||||
$self->{username} = $username;
|
||||
|
@ -165,6 +165,16 @@ sub registerPropertyAsMetaData {
|
|||
}
|
||||
}
|
||||
|
||||
sub username {
|
||||
my $self = shift;
|
||||
return $self->{username};
|
||||
}
|
||||
|
||||
sub password {
|
||||
my $self = shift;
|
||||
return $self->{password};
|
||||
}
|
||||
|
||||
# cookies
|
||||
sub getSessionData {
|
||||
my $self = shift;
|
||||
|
|
Загрузка…
Ссылка в новой задаче