亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? soap-cgi.tcl

?? Linux下的MSN聊天程序源碼
?? TCL
?? 第 1 頁 / 共 2 頁
字號:
# SOAP-CGI.tcl - Copyright (C) 2001 Pat Thoyts <patthoyts@users.sf.net>## A CGI framework for SOAP and XML-RPC services from TclSOAP## -------------------------------------------------------------------------# This software is distributed in the hope that it will be useful, but# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY# or FITNESS FOR A PARTICULAR PURPOSE.  See the accompanying file `LICENSE'# for more details.# -------------------------------------------------------------------------#package provide SOAP::CGI 1.0namespace eval ::SOAP {    namespace eval CGI {	# -----------------------------------------------------------------	# Configuration Parameters	# -----------------------------------------------------------------	#   soapdir   - the directory searched for SOAP methods	#   xmlrpcdir - the directory searched for XML-RPC methods	#   logfile   - a file to update with usage data. 	#	#   This framework is such that the same tcl procedure can be called 	#   for both types of request. The result will be packaged correctly	#   So these variables can point to the _same_ directory.	#	# ** Note **	#   These directories will be relative to your httpd's cgi-bin	#   directory.	variable soapdir       "soap"	variable soapmapfile   "soapmap.dat"	variable xmlrpcdir     $soapdir	variable xmlrpcmapfile "xmlrpcmap.dat"	variable logfile       "rpc.log"		# -----------------------------------------------------------------	variable rcsid {	    $Id: SOAP-CGI.tcl 6394 2006-04-14 17:36:29Z tjikkun $	}	variable methodName  {}	variable debugging   0	variable debuginfo   {}	variable interactive 0		package require dom	package require SOAP	package require XMLRPC	package require SOAP::Utils        package require SOAP::http	catch {namespace import -force [namespace parent]::Utils::*}	namespace export log main    }}# -------------------------------------------------------------------------# Description:#   Maintain a basic call log so that we can monitor for errors and #   popularity.# Notes:#   This file will need to be writable by the httpd user. This is usually#   'nobody' on unix systems, so the logfile will need to be world writeable.#proc ::SOAP::CGI::log {protocol action result} {    variable logfile    catch {	if {[info exists logfile] && $logfile != {} && \		[file writable $logfile]} {	    set stamp [clock format [clock seconds] \		    -format {%Y%m%dT%H%M%S} -gmt true]	    set f [open $logfile "a+"]	    puts $f [list $stamp $protocol $action $result \		    $::env(REMOTE_ADDR) $::env(HTTP_USER_AGENT)]	    close $f	}    }}# -------------------------------------------------------------------------# Description:#   Write a complete html page to stdout, setting the content length correctly.# Notes:#   The string length is incremented by the number of newlines as HTTP content#   assumes CR-NL line endings.#proc ::SOAP::CGI::write {html {type text/html} {status {}}} {    variable debuginfo    # Do some debug info:    if {$debuginfo != {}} {	append html "\n<!-- Debugging Information-->"	foreach item $debuginfo {	    append html "\n<!-- $item -->"	}    }    # For errors, status should be "500 Reason Text"    if {$status != {}} {	puts "Status: $status"    }    puts "SOAPServer: TclSOAP/1.6"    puts "Content-Type: $type"    set len [string length $html]    puts "X-Content-Length: $len"    incr len [regexp -all "\n" $html]    puts "Content-Length: $len"    puts "\n$html"    catch {flush stdout}}# -------------------------------------------------------------------------# Description:#   Convert a SOAPAction HTTP header value into a script filename.#   This is used to identify the file to source for the implementation of#   a SOAP webservice by looking through a user defined map.#   Also used to load an equvalent map for XML-RPC based on the class name# Result:#   Returns the list for an array with filename, interp and classname elts.#proc ::SOAP::CGI::get_implementation_details {mapfile classname} {    if {[file exists $mapfile]} {	set f [open $mapfile r]	while {! [eof $f] } {	    gets $f line	    regsub "#.*" $line {} line                 ;# delete comments.	    regsub -all {[[:space:]]+} $line { } line  ;# fold whitespace	    set line [string trim $line]	    if {$line != {}} {		set line [split $line]		catch {unset elt}		set elt(classname) [lindex $line 0]		set elt(filename)  [string trim [lindex $line 1] "\""]		set elt(interp)    [lindex $line 2]		set map($elt(classname)) [array get elt]	    }	}	close $f    }        if {[catch {set map($classname)} r]} {	error "\"$classname\" not implemented by this endpoint."    }    return $r}proc ::SOAP::CGI::soap_implementation {SOAPAction} {    variable soapmapfile    variable soapdir    if {[catch {get_implementation_details $soapmapfile $SOAPAction} detail]} {	set xml [SOAP::fault "Client" \		"Invalid SOAPAction header: $detail" {}]	error $xml {} SOAP    }        array set impl $detail    if {$impl(filename) != {}} {	set impl(filename) [file join $soapdir $impl(filename)]    }    return [array get impl]}proc ::SOAP::CGI::xmlrpc_implementation {classname} {    variable xmlrpcmapfile    variable xmlrpcdir    if {[catch {get_implementation_details $xmlrpcmapfile $classname} r]} {	set xml [XMLRPC::fault 500 "Invalid classname: $r" {}]	error $xml {} XMLRPC    }    array set impl $r    if {$impl(filename) != {}} {	set impl(filename) [file join $xmlrpcdir $impl(filename)]    }    return [array get impl]}proc ::SOAP::CGI::createInterp {interp path} {    safe::setLogCmd [namespace current]::itrace    set slave [safe::interpCreate $interp]    safe::interpAddToAccessPath $slave $path    # override the safe restrictions so we can load our    # packages (actually the xml package files)    proc ::safe::CheckFileName {slave file} {	if {![file exists $file]} {error "file non-existent"}	if {![file readable $file]} {error "file not readable"}    }    return $slave}# -------------------------------------------------------------------------# Description:#   itrace prints it's arguments to stdout if we were called interactively.#proc ::SOAP::CGI::itrace args {    variable interactive    if {$interactive} {	puts $args    }}# Description:#   dtrace logs debug information for appending to the end of the SOAP/XMLRPC#   response in a comment. This is not allowed by the standards so is switched#   on by the use of the SOAPDebug header. You can enable this with:#     SOAP::configure -transport http -headers {SOAPDebug 1}#proc ::SOAP::CGI::dtrace args {    variable debuginfo    variable debugging    if {$debugging} {	lappend debuginfo $args    }}# -------------------------------------------------------------------------# Description:#   Handle UTF-8 and UTF-16 data and convert into unicode for DOM parsing#   as necessary.#proc ::SOAP::CGI::do_encoding {xml} {    if {[binary scan $xml ccc c0 c1 c2] == 3} {	if {$c0 == -1 && $c1 == -2} {	    dtrace "encoding: UTF-16 little endian"	    set xml [encoding convertfrom unicode $xml]	} elseif {$c0 == -2 && $c1 == -1} {	    dtrace "encoding: UTF-16 big endian"	    binary scan $xml S* xml	    set xml [encoding convertfrom unicode [binary format s* $xml]]	} elseif {$c0 == -17 && $c1 == -69 && $c2 == -65} {	    dtrace "encoding: UTF-8"	    set xml [encoding convertfrom utf-8 $xml]	}    }    return $xml}# -------------------------------------------------------------------------# Description:#   Handle incoming XML-RPC requests.#   We extract the name of the method and the arguments and search for#   the implementation in $::xmlrpcdir. This is then evaluated and the result#   is wrapped up and returned or a fault packet is generated.# Parameters:#   doc - a DOM tree constructed from the input request XML data.#proc ::SOAP::CGI::xmlrpc_call {doc {interp {}}} {    variable methodName    if {[catch {		set methodNode [selectNode $doc "/methodCall/methodName"]	set methodName [getElementValue $methodNode]	set methodNamespace {}	# Get the parameters.	set paramsNode [selectNode $doc "/methodCall/params"]	set argValues {}	if {$paramsNode != {}} {	    set argValues [decomposeXMLRPC $paramsNode]	}	catch {dom::DOMImplementation destroy $doc}	# Check for a permitted methodname. This is defined by being in the	# XMLRPC::export list for the given namespace. We must do this to	# prevent clients arbitrarily calling tcl commands.	#	if {[catch {	    interp eval $interp \		    set ${methodNamespace}::__xmlrpc_exports($methodName)	} fqdn]} {	    error "Invalid request: \		    method \"${methodNamespace}::${methodName}\" not found"\	}	# evaluate the method	set msg [interp eval $interp $fqdn $argValues]	# generate a reply packet	set reply [XMLRPC::reply \		[dom::DOMImplementation create] \		{urn:xmlrpc-cgi} "${methodName}Response" $msg]	set xml [dom::DOMImplementation serialize $reply]	regsub "<!DOCTYPE\[^>\]+>\n" $xml {} xml	catch {dom::DOMImplementation destroy $reply}    } msg]} {	set detail [list "errorCode" $::errorCode "stackTrace" $::errorInfo]	set xml [XMLRPC::fault 500 "$msg" $detail]	error $xml {} XMLRPC    }    # publish the answer    return $xml}# -------------------------------------------------------------------------# Description:#   Handle the Head section of a SOAP request. If there is a problem we #   shall throw an error.# Parameters:#   doc#   mandate - boolean: if true then throw an error for any mustUnderstand#proc ::SOAP::CGI::soap_header {doc {mandate 0}} {    dtrace "Handling SOAP Header"    set result {}    foreach elt [selectNode $doc "/Envelope/Header/*"] {	set eltName [dom::node cget $elt -nodeName]	set actor [getElementAttribute $elt actor]	dtrace "SOAP actor $eltName = $actor"	# If it's not for me, don't handle the header.	if {$actor == "" || [string match $actor \		"http://schemas.xmlsoap.org/soap/actor/next"]} {		    # Check for Mandatory Headers.	    set mustUnderstand [getElementAttribute $elt mustUnderstand]	    	    dtrace "SOAP mustUnderstand $eltName $mustUnderstand"	    # add to the list of suitable headers.	    lappend result [getElementName $elt] [getElementValue $elt]	    	    ## Until we know what to do with such headers, we will have to	    ## Fault.	    if {$mustUnderstand == 1 && $mandate == 1} {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品家庭影院| 亚洲无人区一区| 欧美日韩高清一区二区不卡| 国产一区二区在线视频| 一区二区三国产精华液| 久久久久久久久岛国免费| 欧美高清性hdvideosex| 91蝌蚪porny| 国产资源精品在线观看| 日韩电影免费在线| 一区二区三区**美女毛片| 国产精品久久夜| 2024国产精品视频| 欧美一区二区三区影视| 欧美日韩免费一区二区三区视频| 不卡在线视频中文字幕| 国产精品亚洲专一区二区三区 | 秋霞午夜av一区二区三区| 亚洲欧美偷拍三级| 国产精品毛片a∨一区二区三区 | 亚洲免费电影在线| 欧美精彩视频一区二区三区| 2020国产精品久久精品美国| 日韩欧美在线123| 欧美人妇做爰xxxⅹ性高电影| 色妹子一区二区| av亚洲精华国产精华精| 成人精品亚洲人成在线| 国产大陆a不卡| 国产精品一区二区你懂的| 久久99最新地址| 麻豆成人av在线| 精品一区二区三区免费| 捆绑调教一区二区三区| 蜜乳av一区二区三区| 日韩va欧美va亚洲va久久| 亚洲成a人v欧美综合天堂| 亚洲国产中文字幕| 五月天激情综合网| 日韩不卡在线观看日韩不卡视频| 午夜电影网亚洲视频| 日韩激情av在线| 免费日韩伦理电影| 精品一区二区三区在线视频| 国产一区999| 成人免费的视频| 99精品欧美一区| 日本韩国一区二区| 欧美日韩黄色一区二区| 91超碰这里只有精品国产| 欧美一二区视频| 久久综合视频网| 国产精品婷婷午夜在线观看| 亚洲视频一区二区在线观看| 亚洲综合精品自拍| 五月激情丁香一区二区三区| 日韩**一区毛片| 黄页网站大全一区二区| 粉嫩aⅴ一区二区三区四区五区| 成人h版在线观看| 在线欧美日韩国产| 91精品午夜视频| 精品国产sm最大网站免费看| 中文文精品字幕一区二区| 亚洲毛片av在线| 丝瓜av网站精品一区二区| 国产专区欧美精品| 成人免费高清视频| 欧美日韩小视频| 久久精品日产第一区二区三区高清版 | 欧美日韩午夜在线视频| 欧美va亚洲va| 亚洲欧洲日韩综合一区二区| 一区二区理论电影在线观看| 日本不卡不码高清免费观看| 国产99一区视频免费 | 欧美一级二级三级乱码| 国产精品久久一级| 日本不卡的三区四区五区| 成人污污视频在线观看| 欧美日韩激情一区二区| 久久精品人人做| 亚洲mv在线观看| 高清日韩电视剧大全免费| 欧美情侣在线播放| 国产精品私人影院| 免费成人av在线播放| 99久久99久久精品免费看蜜桃| 日韩视频一区二区在线观看| 国产精品久久福利| 久久精品国产网站| 欧美日韩卡一卡二| 国产精品女同一区二区三区| 蜜臀av一级做a爰片久久| 色婷婷精品大视频在线蜜桃视频| 精品理论电影在线观看| 亚洲福利一区二区三区| eeuss国产一区二区三区| 日韩三级视频中文字幕| 亚洲综合激情网| 不卡电影免费在线播放一区| 日韩欧美一区二区免费| 亚洲国产欧美日韩另类综合| 波多野结衣精品在线| 久久蜜臀精品av| 免费不卡在线视频| 色综合夜色一区| 国产精品福利电影一区二区三区四区| 老司机午夜精品| 91麻豆精品91久久久久久清纯 | 国产在线精品视频| 欧美一级电影网站| 丝袜诱惑亚洲看片| 欧美日韩精品福利| 夜夜操天天操亚洲| 91婷婷韩国欧美一区二区| 国产亚洲精品aa| 国产在线不卡一卡二卡三卡四卡| 欧美高清性hdvideosex| 亚洲6080在线| 欧美日韩一区二区三区在线| 亚洲综合免费观看高清完整版| 不卡av在线网| 中文在线一区二区| av色综合久久天堂av综合| 国产精品色哟哟网站| 国产精品自在在线| 久久看人人爽人人| 国产乱妇无码大片在线观看| 精品国产一区二区三区四区四| 日本va欧美va精品发布| 欧美久久一区二区| 奇米色777欧美一区二区| 欧美剧情电影在线观看完整版免费励志电影| 欧美人妇做爰xxxⅹ性高电影| 亚洲在线视频一区| 欧美日韩情趣电影| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美一区二区三区啪啪| 日韩综合一区二区| 日韩午夜在线观看| 国内国产精品久久| 国产日韩精品视频一区| av日韩在线网站| 亚洲综合图片区| 欧美日韩精品一区二区三区四区| 视频在线在亚洲| 欧美成人国产一区二区| 国产成人在线看| 亚洲丝袜制服诱惑| 欧美剧情电影在线观看完整版免费励志电影| 五月天中文字幕一区二区| 日韩欧美高清dvd碟片| 国产精品资源在线观看| 中文字幕字幕中文在线中不卡视频| 色94色欧美sute亚洲线路一ni| 亚洲成人免费观看| wwwwxxxxx欧美| 97精品国产露脸对白| 天天操天天色综合| 久久精品男人天堂av| 91美女蜜桃在线| 蜜桃精品视频在线| 国产精品网站在线播放| 欧美无砖专区一中文字| 精品一区二区在线免费观看| 1000精品久久久久久久久| 欧美丝袜丝nylons| 国产综合久久久久久鬼色| 亚洲人成亚洲人成在线观看图片 | 亚洲色大成网站www久久九九| 日本高清不卡一区| 蜜桃视频在线观看一区| 国产精品丝袜久久久久久app| 欧美日韩综合在线| 国产福利一区在线观看| 亚洲黄色尤物视频| 久久伊人中文字幕| 91福利在线导航| 狠狠久久亚洲欧美| 一二三四社区欧美黄| 精品日韩欧美在线| 欧美影院一区二区| 国产黄色精品视频| 亚洲国产精品久久久男人的天堂| 欧美精品一区二| 欧美日韩一本到| 成人国产视频在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 1024亚洲合集| 久久九九影视网| 日韩一区二区不卡| 91精品办公室少妇高潮对白| 国内欧美视频一区二区| 亚洲18色成人| 亚洲欧美国产毛片在线| 久久尤物电影视频在线观看| 欧美日本精品一区二区三区| 99精品视频一区二区| 国产成人精品亚洲午夜麻豆|