Loading ...
Sorry, an error occurred while loading the content.

SOAP::Lite port for mod_perl 2.0

Expand Messages
  • kyriacos71
    Is there any patch or newer version to work on mod_perl2 (2.0 not 1.99_x)? After upgrading to released mod_perl 2.0 due to namespace change several changes
    Message 1 of 4 , Jun 13 11:23 AM
    • 0 Attachment
      Is there any patch or newer version to work on mod_perl2 (2.0 not
      1.99_x)? After upgrading to released mod_perl 2.0 due to namespace
      change several changes should be applied to use Apache2::* core modules
      and constants as Apache2::Const::*.
      If such a patch exist can somebody provide it. In case that his is not
      available, when is expected to be?

      Thanks in Advance.

      Kyriacos Kyriacou
    • Andre Merzky
      I would be interested in that as well... Cheers, Andre. ... -- +-----------------------------------------------------------------+ ...
      Message 2 of 4 , Jun 13 1:44 PM
      • 0 Attachment
        I would be interested in that as well...

        Cheers, Andre.


        Quoting [kyriacos71] (Jun 13 2005):
        >
        > Is there any patch or newer version to work on mod_perl2 (2.0 not
        > 1.99_x)? After upgrading to released mod_perl 2.0 due to namespace
        > change several changes should be applied to use Apache2::* core modules
        > and constants as Apache2::Const::*.
        > If such a patch exist can somebody provide it. In case that his is not
        > available, when is expected to be?
        >
        > Thanks in Advance.
        >
        > Kyriacos Kyriacou

        --
        +-----------------------------------------------------------------+
        | Andre Merzky | phon: +31 - 20 - 598 - 7759 |
        | Vrije Universiteit Amsterdam (VU) | fax : +31 - 20 - 598 - 7653 |
        | Dept. of Computer Science | mail: merzky@... |
        | De Boelelaan 1083a | www: http://www.merzky.net |
        | 1081 HV Amsterdam, Netherlands | |
        +-----------------------------------------------------------------+
      • kyriacos71
        I have manage to create a patch for SOAP::Transport::HTTP that is the only module need patching in order to run on mod_perl 2.x. This apllies to latest
        Message 3 of 4 , Jun 14 11:52 PM
        • 0 Attachment
          I have manage to create a patch for SOAP::Transport::HTTP that is the
          only module need patching in order to run on mod_perl 2.x. This
          apllies to latest distribution of SOAP::Lite (SOAP-Lite-0.65_6) and
          accrding to my checks after applying it is working on all version of
          mod_perl (1.xx, 1.99, 2.xx)

          Here is the path:
          ----------------begin of patch -----------------------
          --- /usr/src/SOAP-Lite-0.65_6_org/lib/SOAP/Transport/HTTP.pm 2005-
          03-30 11:58:34.000000000 +0300
          +++ /usr/src/SOAP-Lite-0.65_6/lib/SOAP/Transport/HTTP.pm 2005-
          06-15 01:19:22.819470272 +0300
          @@ -505,23 +505,34 @@
          $self = $class->SUPER::new(@_);
          SOAP::Trace::objects('()');
          }
          - die "Could not find or load mod_perl"
          - unless (eval "require mod_perl");
          - die "Could not detect your version of mod_perl"
          - if (!defined($mod_perl::VERSION));
          - if ($mod_perl::VERSION < 1.99) {
          - require Apache;
          - require Apache::Constants;
          - Apache::Constants->import('OK');
          - $self->{'MOD_PERL_VERSION'} = 1;
          - } elsif ($mod_perl::VERSION < 3) {
          - require Apache::RequestRec;
          - require Apache::RequestIO;
          - require Apache::Const;
          - Apache::Const->import(-compile => 'OK');
          +
          + if( defined $ENV{MOD_PERL_API_VERSION} && $ENV
          {MOD_PERL_API_VERSION} >= 2) { # mod_perl 2.0
          + require Apache2::RequestRec;
          + require Apache2::RequestIO;
          + require Apache2::Const;
          + Apache2::Const->import(-compile => 'OK');
          $self->{'MOD_PERL_VERSION'} = 2;
          - } else {
          - die "Unsupported version of mod_perl";
          + $self->{OK} = &Apache2::Const::OK;
          + } else { # mod_perl 1.xx
          + die "Could not find or load mod_perl"
          + unless (eval "require mod_perl");
          + die "Could not detect your version of mod_perl"
          + if (!defined($mod_perl::VERSION));
          +
          + if ($mod_perl::VERSION < 1.99) {
          + require Apache;
          + require Apache::Constants;
          + Apache::Constants->import('OK');
          + $self->{'MOD_PERL_VERSION'} = 1;
          + $self->{OK} = &Apache::Constants::OK;
          + } else {
          + require Apache::RequestRec;
          + require Apache::RequestIO;
          + require Apache::Const;
          + Apache::Const->import(-compile => 'OK');
          + $self->{'MOD_PERL_VERSION'} = 1.99;
          + $self->{OK} = &Apache::OK;
          + }
          }
          return $self;
          }
          @@ -529,12 +540,20 @@
          sub handler {
          my $self = shift->new;
          my $r = shift;
          - $r = Apache->request if (!$r && $self->{'MOD_PERL_VERSION'} == 1);
          +
          + if(!$r) {
          + if( $self->{'MOD_PERL_VERSION'} < 2 ) { $r = Apache->request
          () }
          + else { $r = Apache2::RequestUtil->request() }
          + }
          +
          + my $cont_len;
          + if( $self->{'MOD_PERL_VERSION'} == 1 ) { $cont_len = $r->header_in
          ('Content-length') }
          + else { $cont_len = $r-
          >headers_in->get('Content-length') }

          $self->request(HTTP::Request->new(
          $r->method() => $r->uri,
          HTTP::Headers->new($r->headers_in),
          - do { my ($c,$buf); while ($r->read($buf,$r->header_in('Content-
          length'))) { $c.=$buf; } $c; }
          + do { my ($c,$buf); while ($r->read($buf, $cont_len)) {
          $c.=$buf; } $c; }
          ));
          $self->SUPER::handle;

          @@ -545,10 +564,15 @@
          # will emulate normal response, but with custom status code
          # which could also be 500.
          $r->status($self->response->code);
          - $self->response->headers->scan(sub { $r->header_out(@_) });
          - $r->send_http_header(join '; ', $self->response->content_type);
          + if ( $self->{'MOD_PERL_VERSION'} > 1 ) {
          + $self->response->headers->scan(sub { $r->headers_out->set
          (@_) });
          + $r->content_type(join '; ', $self->response->content_type);
          + } else {
          + $self->response->headers->scan(sub { $r->header_out(@_) });
          + $r->send_http_header(join '; ', $self->response->content_type);
          + }
          $r->print($self->response->content);
          - return $self->{'MOD_PERL_VERSION'} == 2 ? &Apache::OK :
          &Apache::Constants::OK;
          + return $self->{OK};
          }

          sub configure {
          -------- end of patch -----------------------------------

          Kyriacos C. Kyriacou
        • Andre Merzky
          Wow! Thanks for the patch!! Andre. ... -- +-----------------------------------------------------------------+ ...
          Message 4 of 4 , Jun 15 12:06 AM
          • 0 Attachment
            Wow! Thanks for the patch!!

            Andre.

            Quoting [kyriacos71] (Jun 15 2005):
            > Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
            > Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys
            > To: soaplite@yahoogroups.com
            > From: "kyriacos71" <kyriacosk@...>
            > Mailing-List: list soaplite@yahoogroups.com; contact soaplite-owner@yahoogroups.com
            > Date: Wed, 15 Jun 2005 06:52:50 -0000
            > Subject: [soaplite] Re: SOAP::Lite port for mod_perl 2.0
            >
            > I have manage to create a patch for SOAP::Transport::HTTP that is the
            > only module need patching in order to run on mod_perl 2.x. This
            > apllies to latest distribution of SOAP::Lite (SOAP-Lite-0.65_6) and
            > accrding to my checks after applying it is working on all version of
            > mod_perl (1.xx, 1.99, 2.xx)
            >
            > Here is the path:
            > ----------------begin of patch -----------------------
            > --- /usr/src/SOAP-Lite-0.65_6_org/lib/SOAP/Transport/HTTP.pm 2005-
            > 03-30 11:58:34.000000000 +0300
            > +++ /usr/src/SOAP-Lite-0.65_6/lib/SOAP/Transport/HTTP.pm 2005-
            > 06-15 01:19:22.819470272 +0300
            > @@ -505,23 +505,34 @@
            > $self = $class->SUPER::new(@_);
            > SOAP::Trace::objects('()');
            > }
            > - die "Could not find or load mod_perl"
            > - unless (eval "require mod_perl");
            > - die "Could not detect your version of mod_perl"
            > - if (!defined($mod_perl::VERSION));
            > - if ($mod_perl::VERSION < 1.99) {
            > - require Apache;
            > - require Apache::Constants;
            > - Apache::Constants->import('OK');
            > - $self->{'MOD_PERL_VERSION'} = 1;
            > - } elsif ($mod_perl::VERSION < 3) {
            > - require Apache::RequestRec;
            > - require Apache::RequestIO;
            > - require Apache::Const;
            > - Apache::Const->import(-compile => 'OK');
            > +
            > + if( defined $ENV{MOD_PERL_API_VERSION} && $ENV
            > {MOD_PERL_API_VERSION} >= 2) { # mod_perl 2.0
            > + require Apache2::RequestRec;
            > + require Apache2::RequestIO;
            > + require Apache2::Const;
            > + Apache2::Const->import(-compile => 'OK');
            > $self->{'MOD_PERL_VERSION'} = 2;
            > - } else {
            > - die "Unsupported version of mod_perl";
            > + $self->{OK} = &Apache2::Const::OK;
            > + } else { # mod_perl 1.xx
            > + die "Could not find or load mod_perl"
            > + unless (eval "require mod_perl");
            > + die "Could not detect your version of mod_perl"
            > + if (!defined($mod_perl::VERSION));
            > +
            > + if ($mod_perl::VERSION < 1.99) {
            > + require Apache;
            > + require Apache::Constants;
            > + Apache::Constants->import('OK');
            > + $self->{'MOD_PERL_VERSION'} = 1;
            > + $self->{OK} = &Apache::Constants::OK;
            > + } else {
            > + require Apache::RequestRec;
            > + require Apache::RequestIO;
            > + require Apache::Const;
            > + Apache::Const->import(-compile => 'OK');
            > + $self->{'MOD_PERL_VERSION'} = 1.99;
            > + $self->{OK} = &Apache::OK;
            > + }
            > }
            > return $self;
            > }
            > @@ -529,12 +540,20 @@
            > sub handler {
            > my $self = shift->new;
            > my $r = shift;
            > - $r = Apache->request if (!$r && $self->{'MOD_PERL_VERSION'} == 1);
            > +
            > + if(!$r) {
            > + if( $self->{'MOD_PERL_VERSION'} < 2 ) { $r = Apache->request
            > () }
            > + else { $r = Apache2::RequestUtil->request() }
            > + }
            > +
            > + my $cont_len;
            > + if( $self->{'MOD_PERL_VERSION'} == 1 ) { $cont_len = $r->header_in
            > ('Content-length') }
            > + else { $cont_len = $r-
            > >headers_in->get('Content-length') }
            >
            > $self->request(HTTP::Request->new(
            > $r->method() => $r->uri,
            > HTTP::Headers->new($r->headers_in),
            > - do { my ($c,$buf); while ($r->read($buf,$r->header_in('Content-
            > length'))) { $c.=$buf; } $c; }
            > + do { my ($c,$buf); while ($r->read($buf, $cont_len)) {
            > $c.=$buf; } $c; }
            > ));
            > $self->SUPER::handle;
            >
            > @@ -545,10 +564,15 @@
            > # will emulate normal response, but with custom status code
            > # which could also be 500.
            > $r->status($self->response->code);
            > - $self->response->headers->scan(sub { $r->header_out(@_) });
            > - $r->send_http_header(join '; ', $self->response->content_type);
            > + if ( $self->{'MOD_PERL_VERSION'} > 1 ) {
            > + $self->response->headers->scan(sub { $r->headers_out->set
            > (@_) });
            > + $r->content_type(join '; ', $self->response->content_type);
            > + } else {
            > + $self->response->headers->scan(sub { $r->header_out(@_) });
            > + $r->send_http_header(join '; ', $self->response->content_type);
            > + }
            > $r->print($self->response->content);
            > - return $self->{'MOD_PERL_VERSION'} == 2 ? &Apache::OK :
            > &Apache::Constants::OK;
            > + return $self->{OK};
            > }
            >
            > sub configure {
            > -------- end of patch -----------------------------------
            >
            > Kyriacos C. Kyriacou
            >
            >
            >
            >
            >
            > Yahoo! Groups Links
            >
            >
            >
            >
            >



            --
            +-----------------------------------------------------------------+
            | Andre Merzky | phon: +31 - 20 - 598 - 7759 |
            | Vrije Universiteit Amsterdam (VU) | fax : +31 - 20 - 598 - 7653 |
            | Dept. of Computer Science | mail: merzky@... |
            | De Boelelaan 1083a | www: http://www.merzky.net |
            | 1081 HV Amsterdam, Netherlands | |
            +-----------------------------------------------------------------+
          Your message has been successfully submitted and would be delivered to recipients shortly.