DDC-Concordance

 view release on metacpan or  search on metacpan

ddc-cgi.perl  view on Meta::CPAN


  open(RC,"<$rcfile") or die("$prog: open failed for config file '$rcfile': $!");
  local $/=undef;
  my $rcstr = <RC>;
  close(RC) or die("$prog: close failed for config file '$rcfile': $!");

  ##-- remove comments
  $rcstr =~ s/^\#.*$//mg;

  ##-- decode
  my $rcdata = decode_json($rcstr)
    or die("$prog: could not decode config data from '$rcfile': $!");

  ##-- merge (clobber)
  %$cfg = (%$cfg,%$rcdata);

  return $cfg;
}



##======================================================================
## MAIN

##-- site configuration

lib/DDC/Filter.pm  view on Meta::CPAN

  return sub {
    ##-- read client data
    my $ns      = shift;
    my $sclient = DDC::Client->new(connect=>$filter->{connect});
    $sclient->open();

    my $chost = $ns->{sock}->peerhost.':'.$ns->{sock}->peerport;
    my $shost = $sclient->{sock}->peerhost.':'.$sclient->{sock}->peerport;
    $filter->logmsg('info', "connect from client $chost --> server $shost");

    my $cdata   = $filter->readData($ns->{sock});
    my $fcdata  = $filter->filterInput($cdata);
    $filter->logmsg('debug', "got query=($cdata)->($fcdata) from client $chost");
    $filter->logmsg('trace', "got query from client $chost");

    $sclient->send($fcdata);
    $filter->logmsg('trace', "passed on query from client $chost to upstream server $shost");

    my $sdata   = $sclient->readData();
    $filter->logmsg('trace', "got response from upstream server $shost");

    my $fsdata  = $filter->filterOutput($sdata);
    $filter->logmsg('debug', "got response=($sdata)->($fsdata) from upstream server $shost");

    $filter->sendfh($ns->{sock}, $fsdata);
    $filter->logmsg('trace', "passed response from upstream server $shost to client $chost");



( run in 0.476 second using v1.01-cache-2.11-cpan-454fe037f31 )