File SOAP-Lite-0.712-HTTPS_DAEMON.patch of Package perl-SOAP-Lite

diff -ruN SOAP-Lite-0.712-orig/lib/SOAP/Transport/HTTP.pm SOAP-Lite-0.712/lib/SOAP/Transport/HTTP.pm
--- SOAP-Lite-0.712-orig/lib/SOAP/Transport/HTTP.pm	2010-06-03 17:33:26.000000000 +0200
+++ SOAP-Lite-0.712/lib/SOAP/Transport/HTTP.pm	2010-08-16 10:55:06.000000000 +0200
@@ -698,6 +698,60 @@
 
 # ======================================================================
 
+package SOAP::Transport::HTTPS::Daemon;
+
+use Carp ();
+use vars qw($AUTOLOAD @ISA);
+@ISA = qw(SOAP::Transport::HTTP::Server);
+
+sub DESTROY { SOAP::Trace::objects('()') }
+
+sub new { require HTTP::Daemon::SSL; 
+  my $self = shift;
+
+  unless (ref $self) {
+    my $class = ref($self) || $self;
+
+    my(@params, @methods);
+    while (@_) { $class->can($_[0]) ? push(@methods, shift() => shift) : push(@params, shift) }
+    $self = $class->SUPER::new;
+    $self->{_daemon} = HTTP::Daemon::SSL->new(@params) or Carp::croak "Can't create daemon: $!";
+    $self->myuri(URI->new($self->url)->canonical->as_string);
+    while (@methods) { my($method, $params) = splice(@methods,0,2);
+      $self->$method(ref $params eq 'ARRAY' ? @$params : $params) 
+    }
+    SOAP::Trace::objects('()');
+  }
+  return $self;
+}
+
+sub AUTOLOAD {
+  my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::') + 2);
+  return if $method eq 'DESTROY';
+
+  no strict 'refs';
+  *$AUTOLOAD = sub { shift->{_daemon}->$method(@_) };
+  goto &$AUTOLOAD;
+}
+
+sub handle {
+  my $self = shift->new;
+  while (my $c = $self->accept) {
+    while (my $r = $c->get_request) {
+      $self->request($r);
+      $self->SUPER::handle;
+      $c->send_response($self->response)
+    }
+    # replaced ->close, thanks to Sean Meisner <Sean.Meisner@VerizonWireless.com>
+    # shutdown() doesn't work on AIX. close() is used in this case. Thanks to Jos Clijmans <jos.clijmans@recyfin.be>
+    UNIVERSAL::isa($c, 'shutdown') ? $c->shutdown(2) : $c->close(); 
+    undef $c;
+  }
+}
+
+# ======================================================================
+
+
 package SOAP::Transport::HTTP::Apache;
 
 use vars qw(@ISA);