[interchange-cvs] interchange - racke modified lib/Vend/Server.pm
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Fri Mar 21 11:35:01 2003
User: racke
Date: 2003-03-21 16:34:04 GMT
Modified: lib/Vend Server.pm
Log:
complete revision of SOAP error handling
Revision Changes Path
2.29 +17 -11 interchange/lib/Vend/Server.pm
rev 2.29, prev_rev 2.28
Index: Server.pm
===================================================================
RCS file: /anon_cvs/repository/interchange/lib/Vend/Server.pm,v
retrieving revision 2.28
retrieving revision 2.29
diff -u -r2.28 -r2.29
--- Server.pm 8 Mar 2003 00:14:58 -0000 2.28
+++ Server.pm 21 Mar 2003 16:34:04 -0000 2.29
@@ -1,6 +1,6 @@
# Vend::Server - Listen for Interchange CGI requests as a background server
#
-# $Id: Server.pm,v 2.28 2003/03/08 00:14:58 racke Exp $
+# $Id: Server.pm,v 2.29 2003/03/21 16:34:04 racke Exp $
#
# Copyright (C) 1996-2002 Red Hat, Inc. <interchange@redhat.com>
#
@@ -25,7 +25,7 @@
package Vend::Server;
use vars qw($VERSION);
-$VERSION = substr(q$Revision: 2.28 $, 10);
+$VERSION = substr(q$Revision: 2.29 $, 10);
use POSIX qw(setsid strftime);
use Vend::Util;
@@ -746,7 +746,14 @@
}
my $ref;
- if($ref = $Global::Selector{$catname} || $Global::SelectorAlias{$catname}) {
+
+ if (exists $Global::Selector{$catname}) {
+ $ref = $Global::Selector{$catname};
+ } elsif (exists $Global::SelectorAlias{$catname}) {
+ $ref = $Global::SelectorAlias{$catname};
+ }
+
+ if($ref) {
#::logDebug("found catalog $catname");
$$env{SCRIPT_NAME} = $catname;
}
@@ -1729,24 +1736,23 @@
$Vend::OnlyInternalHTTP = $Global::OnlyInternalHTTP;
- $Vend::Cfg = http_soap(\*MESSAGE, \%env, \$entity);
- $Vend::Cat = $Vend::Cfg->{CatalogName};
+ if ($Vend::Cfg = http_soap(\*MESSAGE, \%env, \$entity)) {
+ $Vend::Cat = $Vend::Cfg->{CatalogName};
+ }
my $result;
my $error;
if(! $Vend::Cfg) {
#::logDebug("we have no catalog");
$result = Vend::SOAP::Transport::Server
- ->new( error => 'Catalog not found' )
- ->dispatch_to('', 'Vend::SOAP::Error')
- ->handle();
+ ->new()
+ ->make_fault('Client.NotFound','Service not found');
}
elsif(! $Vend::Cfg->{SOAP}) {
#::logDebug("we have no SOAP enable");
$result = Vend::SOAP::Transport::Server
- ->new( error => 'SOAP not enabled' )
- ->dispatch_to('', 'Vend::SOAP::Error')
- ->handle();
+ ->new()
+ ->make_fault('Client.NotAvailable','Service not available');
}
else {
#::logDebug("we have our SOAP enable, entity is $entity");