From 0ee4621e7828a205189368aa9b8a515574d9c030 Mon Sep 17 00:00:00 2001 From: "wurblzap%gmail.com" <> Date: Sun, 20 Aug 2006 00:20:23 +0000 Subject: Bug 224577: Bugzilla could use a web services interface. Patch by Marc Schumann ; r=mkanat; a=myk --- Bugzilla/WebService.pm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 Bugzilla/WebService.pm (limited to 'Bugzilla/WebService.pm') diff --git a/Bugzilla/WebService.pm b/Bugzilla/WebService.pm new file mode 100755 index 000000000..9e100c12a --- /dev/null +++ b/Bugzilla/WebService.pm @@ -0,0 +1,47 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# Contributor(s): Marc Schumann + +package Bugzilla::WebService; + +use strict; +use Bugzilla::WebService::Constants; + +sub fail_unimplemented { + my $this = shift; + + die SOAP::Fault + ->faultcode(ERROR_UNIMPLEMENTED) + ->faultstring('Service Unimplemented'); +} + +package Bugzilla::WebService::XMLRPC::Transport::HTTP::CGI; + +use strict; +eval 'use base qw(XMLRPC::Transport::HTTP::CGI)'; + +sub make_response { + my $self = shift; + + $self->SUPER::make_response(@_); + + # XMLRPC::Transport::HTTP::CGI doesn't know about Bugzilla carrying around + # its cookies in Bugzilla::CGI, so we need to copy them over. + foreach (@{Bugzilla->cgi->{'Bugzilla_cookie_list'}}) { + $self->response->headers->push_header('Set-Cookie', $_); + } +} + +1; -- cgit v1.2.3-24-g4f1b