From 54ec1c4fe81672ca66f327ef6ae170f458cd79e5 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 15 Aug 2007 20:57:30 +0000 Subject: sorry. I made wrong tags. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_54@13009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_5/lib/soap/rpc/soaplet.rb | 162 ------------------------------------- 1 file changed, 162 deletions(-) delete mode 100644 ruby_1_8_5/lib/soap/rpc/soaplet.rb (limited to 'ruby_1_8_5/lib/soap/rpc/soaplet.rb') diff --git a/ruby_1_8_5/lib/soap/rpc/soaplet.rb b/ruby_1_8_5/lib/soap/rpc/soaplet.rb deleted file mode 100644 index 7cccdd3e31..0000000000 --- a/ruby_1_8_5/lib/soap/rpc/soaplet.rb +++ /dev/null @@ -1,162 +0,0 @@ -# SOAP4R - SOAP handler servlet for WEBrick -# Copyright (C) 2001-2005 NAKAMURA, Hiroshi . - -# This program is copyrighted free software by NAKAMURA, Hiroshi. You can -# redistribute it and/or modify it under the same terms of Ruby's license; -# either the dual license version in 2003, or any later version. - - -require 'webrick/httpservlet/abstract' -require 'webrick/httpstatus' -require 'soap/rpc/router' -require 'soap/streamHandler' -begin - require 'stringio' - require 'zlib' -rescue LoadError - warn("Loading stringio or zlib failed. No gzipped response supported.") if $DEBUG -end - - -warn("Overriding WEBrick::Log#debug") if $DEBUG -require 'webrick/log' -module WEBrick - class Log < BasicLog - alias __debug debug - def debug(msg = nil) - if block_given? and msg.nil? - __debug(yield) - else - __debug(msg) - end - end - end -end - - -module SOAP -module RPC - - -class SOAPlet < WEBrick::HTTPServlet::AbstractServlet -public - attr_reader :options - - def initialize(router = nil) - @router = router || ::SOAP::RPC::Router.new(self.class.name) - @options = {} - @config = {} - end - - # for backward compatibility - def app_scope_router - @router - end - - # for backward compatibility - def add_servant(obj, namespace) - @router.add_rpc_servant(obj, namespace) - end - - def allow_content_encoding_gzip=(allow) - @options[:allow_content_encoding_gzip] = allow - end - - ### - ## Servlet interfaces for WEBrick. - # - def get_instance(config, *options) - @config = config - self - end - - def require_path_info? - false - end - - def do_GET(req, res) - res.header['Allow'] = 'POST' - raise WEBrick::HTTPStatus::MethodNotAllowed, "GET request not allowed" - end - - def do_POST(req, res) - logger.debug { "SOAP request: " + req.body } if logger - begin - conn_data = ::SOAP::StreamHandler::ConnectionData.new - setup_req(conn_data, req) - @router.external_ces = @options[:external_ces] - conn_data = @router.route(conn_data) - setup_res(conn_data, req, res) - rescue Exception => e - conn_data = @router.create_fault_response(e) - res.status = WEBrick::HTTPStatus::RC_INTERNAL_SERVER_ERROR - res.body = conn_data.send_string - res['content-type'] = conn_data.send_contenttype || "text/xml" - end - if res.body.is_a?(IO) - res.chunked = true - logger.debug { "SOAP response: (chunked response not logged)" } if logger - else - logger.debug { "SOAP response: " + res.body } if logger - end - end - -private - - def logger - @config[:Logger] - end - - def setup_req(conn_data, req) - conn_data.receive_string = req.body - conn_data.receive_contenttype = req['content-type'] - conn_data.soapaction = parse_soapaction(req.meta_vars['HTTP_SOAPACTION']) - end - - def setup_res(conn_data, req, res) - res['content-type'] = conn_data.send_contenttype - if conn_data.is_fault - res.status = WEBrick::HTTPStatus::RC_INTERNAL_SERVER_ERROR - end - if outstring = encode_gzip(req, conn_data.send_string) - res['content-encoding'] = 'gzip' - res['content-length'] = outstring.size - res.body = outstring - else - res.body = conn_data.send_string - end - end - - def parse_soapaction(soapaction) - if !soapaction.nil? and !soapaction.empty? - if /^"(.+)"$/ =~ soapaction - return $1 - end - end - nil - end - - def encode_gzip(req, outstring) - unless encode_gzip?(req) - return nil - end - begin - ostream = StringIO.new - gz = Zlib::GzipWriter.new(ostream) - gz.write(outstring) - ostream.string - ensure - gz.close - end - end - - def encode_gzip?(req) - @options[:allow_content_encoding_gzip] and defined?(::Zlib) and - req['accept-encoding'] and - req['accept-encoding'].split(/,\s*/).include?('gzip') - end -end - - -end -end -- cgit v1.2.3