]> git.decadent.org.uk Git - maypole.git/commitdiff
minor refactoring of redirect_request
authorDavid Baird <cpan.zerofive@googlemail.com>
Fri, 4 Nov 2005 16:08:13 +0000 (16:08 +0000)
committerDavid Baird <cpan.zerofive@googlemail.com>
Fri, 4 Nov 2005 16:08:13 +0000 (16:08 +0000)
git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@412 48953598-375a-da11-a14b-00016c27c3ee

lib/Apache/MVC.pm
lib/CGI/Maypole.pm

index 84454bc6cf3ae8c458907a2448876264261b50b7..3ee8541a3882a58cb9b2a9c10bf18aacf64afc2d 100644 (file)
@@ -86,16 +86,6 @@ sub get_request {
     $self->ar($ar);
 }
 
-=item get_protocol
-
-=cut
-
-sub get_protocol {
-  my $self = shift;
-  my $protocol = ( $self->ar->protocol =~ m/https/i ) ? 'https' : 'http' ;
-  return $protocol;
-}
-
 =item parse_location
 
 =cut
@@ -140,8 +130,9 @@ sub parse_args {
 =cut
 
 # FIXME: use headers_in to gather host and other information?
-sub redirect_request {
-  my $self = shift;
+sub redirect_request 
+{
+  my $r = shift;
   my $redirect_url = $_[0];
   my $status = "302";
   if ($_[1]) {
@@ -149,20 +140,29 @@ sub redirect_request {
     if ($args{url}) {
       $redirect_url = $args{url};
     } else {
-      my $path = $args{path} || $self->path;
-      my $host = $args{domain} || $self->ar->hostname;
-      my $protocol = $args{protocol} || 
-        ( $self->ar->protocol =~ m/https/i ) ? 'https' : 'http' ;
+      my $path = $args{path} || $r->path;
+      my $host = $args{domain} || $r->ar->hostname;
+      my $protocol = $args{protocol} || $r->get_protocol;
       $redirect_url = "${protocol}://${host}/${path}";
     }
     $status = $args{status} if ($args{status});
   }
 
-  $self->headers_out->set('Status' => $status);
-  $self->headers_out->set('Location' => $redirect_url);
+  $r->headers_out->set('Status' => $status);
+  $r->headers_out->set('Location' => $redirect_url);
   return OK;
 }
 
+=item get_protocol
+
+=cut
+
+sub get_protocol {
+  my $self = shift;
+  my $protocol = ( $self->ar->protocol =~ m/https/i ) ? 'https' : 'http' ;
+  return $protocol;
+}
+
 =item send_output
 
 =cut
index 27b74f261d4cf4bf20c1d1c01a0efe47c0d39dcc..9b2ee7988faaf69d7f8451d06436758219094468 100644 (file)
@@ -76,17 +76,6 @@ sub get_request
     shift->cgi( CGI::Simple->new );
 }
 
-=item get_protocol
-
-=cut
-
-sub get_protocol 
-{
-  my $self = shift;
-  my $protocol = ($self->cgi->https) ? 'https' : 'http';
-  return $protocol;
-}
-
 =item parse_location
 
 =cut
@@ -150,7 +139,7 @@ sub redirect_request
       my $path = $args{path} || $r->cgi->url(-absolute => 1, -query=>1);
       my $host = $args{domain};
       ($host = $r->cgi->url(-base => 1)) =~ s/^https?:\/\///i unless ($host);
-      my $protocol = $args{protocol} || ($r->cgi->https()) ? 'https' : 'http';
+      my $protocol = $args{protocol} || $r->get_protocol;
       $redirect_url = "${protocol}://${host}/${path}";
     }
     $status = $args{status} if ($args{status});
@@ -162,6 +151,17 @@ sub redirect_request
   return;
 }
 
+=item get_protocol
+
+=cut
+
+sub get_protocol 
+{
+  my $self = shift;
+  my $protocol = ($self->cgi->https) ? 'https' : 'http';
+  return $protocol;
+}
+
 =item send_output
 
 =cut