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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? http.pm

?? 美國(guó)CMU大學(xué)開(kāi)發(fā)的操作系統(tǒng)健壯性評(píng)測(cè)軟件
?? PM
字號(hào):
## $Id: http.pm,v 1.1 1999/07/21 19:12:36 kraven Exp $package LWP::Protocol::http;require LWP::Debug;require HTTP::Response;require HTTP::Status;require IO::Socket;require IO::Select;require LWP::Protocol;@ISA = qw(LWP::Protocol);use strict;my $CRLF         = "\015\012";     # how lines should be terminated;				   # "\r\n" is not correct on all systems, for				   # instance MacPerl defines it to "\012\015"sub _new_socket{    my($self, $host, $port, $timeout) = @_;    local($^W) = 0;  # IO::Socket::INET can be noisy    my $sock = IO::Socket::INET->new(PeerAddr => $host,				     PeerPort => $port,				     Proto    => 'tcp',				     Timeout  => $timeout,				    );    unless ($sock) {	# IO::Socket::INET leaves additional error messages in $@	$@ =~ s/^.*?: //;	die "Can't connect to $host:$port ($@)";    }    $sock;}sub _check_sock{    #my($self, $req, $sock) = @_;}sub _get_sock_info{    my($self, $res, $sock) = @_;    $res->header("Client-Peer" =>		 $sock->peerhost . ":" . $sock->peerport);}sub request{    my($self, $request, $proxy, $arg, $size, $timeout) = @_;    LWP::Debug::trace('()');    $size ||= 4096;    # check method    my $method = $request->method;    unless ($method =~ /^[A-Za-z0-9_!\#\$%&\'*+\-.^\`|~]+$/) {  # HTTP token	return new HTTP::Response &HTTP::Status::RC_BAD_REQUEST,				  'Library does not allow method ' .				  "$method for 'http:' URLs";    }    my $url = $request->url;    my($host, $port, $fullpath);    # Check if we're proxy'ing    if (defined $proxy) {	# $proxy is an URL to an HTTP server which will proxy this request	$host = $proxy->host;	$port = $proxy->port;	$fullpath = $url->as_string;    }    else {	$host = $url->host;	$port = $url->port;	$fullpath = $url->full_path;    }    # connect to remote site    my $socket = $self->_new_socket($host, $port, $timeout);    $self->_check_sock($request, $socket);	        my $sel = IO::Select->new($socket) if $timeout;    my $request_line = "$method $fullpath HTTP/1.0$CRLF";    my $h = $request->headers->clone;    my $cont_ref = $request->content_ref;    $cont_ref = $$cont_ref if ref($$cont_ref);    my $ctype = ref($cont_ref);    # If we're sending content we *have* to specify a content length    # otherwise the server won't know a messagebody is coming.    if ($ctype eq 'CODE') {	die 'No Content-Length header for request with dynamic content'	    unless defined($h->header('Content-Length')) ||		   $h->content_type =~ /^multipart\//;	# For HTTP/1.1 we could have used chunked transfer encoding...    } else {	$h->header('Content-Length' => length $$cont_ref)	        if defined($$cont_ref) && length($$cont_ref);    }        # HTTP/1.1 will require us to send the 'Host' header, so we might    # as well start now.    my $hhost = $url->netloc;    $hhost =~ s/^([^\@]*)\@//;  # get rid of potential "user:pass@"    $h->header('Host' => $hhost) unless defined $h->header('Host');    # add authorization header if we need them.  HTTP URLs do    # not really support specification of user and password, but    # we allow it.    if (defined($1) && not $h->header('Authorization')) {	$h->authorization_basic($url->user, $url->password);    }    my $buf = $request_line . $h->as_string($CRLF) . $CRLF;    my $n;  # used for return value from syswrite/sysread    die "write timeout" if $timeout && !$sel->can_write($timeout);    $n = $socket->syswrite($buf, length($buf));    die $! unless defined($n);    die "short write" unless $n == length($buf);    LWP::Debug::conns($buf);    if ($ctype eq 'CODE') {	while ( ($buf = &$cont_ref()), defined($buf) && length($buf)) {	    die "write timeout" if $timeout && !$sel->can_write($timeout);	    $n = $socket->syswrite($buf, length($buf));	    die $! unless defined($n);	    die "short write" unless $n == length($buf);	    LWP::Debug::conns($buf);	}    } elsif (defined($$cont_ref) && length($$cont_ref)) {	die "write timeout" if $timeout && !$sel->can_write($timeout);	$n = $socket->syswrite($$cont_ref, length($$cont_ref));	die $! unless defined($n);	die "short write" unless $n == length($$cont_ref);	LWP::Debug::conns($buf);    }        # read response line from server    LWP::Debug::debug('reading response');    my $response;    $buf = '';    # Inside this loop we will read the response line and all headers    # found in the response.    while (1) {	{	    die "read timeout" if $timeout && !$sel->can_read($timeout);	    $n = $socket->sysread($buf, $size, length($buf));	    die $! unless defined($n);	    die "unexpected EOF before status line seen" unless $n;	    LWP::Debug::conns($buf);	}	if ($buf =~ s/^(HTTP\/\d+\.\d+)[ \t]+(\d+)[ \t]*([^\012]*)\012//) {	    # HTTP/1.0 response or better	    my($ver,$code,$msg) = ($1, $2, $3);	    $msg =~ s/\015$//;	    LWP::Debug::debug("$ver $code $msg");	    $response = HTTP::Response->new($code, $msg);	    $response->protocol($ver);	    # ensure that we have read all headers.  The headers will be	    # terminated by two blank lines	    until ($buf =~ /^\015?\012/ || $buf =~ /\015?\012\015?\012/) {		# must read more if we can...		LWP::Debug::debug("need more header data");		die "read timeout" if $timeout && !$sel->can_read($timeout);		$n = $socket->sysread($buf, $size, length($buf));		die $! unless defined($n);		die "unexpected EOF before all headers seen" unless $n;		#LWP::Debug::conns($buf);	    }	    # now we start parsing the headers.  The strategy is to	    # remove one line at a time from the beginning of the header	    # buffer ($res).	    my($key, $val);	    while ($buf =~ s/([^\012]*)\012//) {		my $line = $1;		# if we need to restore as content when illegal headers		# are found.		my $save = "$line\012"; 		$line =~ s/\015$//;		last unless length $line;		if ($line =~ /^([a-zA-Z0-9_\-]+)\s*:\s*(.*)/) {		    $response->push_header($key, $val) if $key;		    ($key, $val) = ($1, $2);		} elsif ($line =~ /^\s+(.*)/) {		    unless ($key) {			$response->header("Client-Warning" =>					 => "Illegal continuation header");			$buf = "$save$buf";			last;		    }		    $val .= " $1";		} else {		    $response->header("Client-Warning" =>				      "Illegal header '$line'");		    $buf = "$save$buf";		    last;		}	    }	    $response->push_header($key, $val) if $key;	    last;	} elsif ((length($buf) >= 5 and $buf !~ /^HTTP\//) or		 $buf =~ /\012/ ) {	    # HTTP/0.9 or worse	    LWP::Debug::debug("HTTP/0.9 assume OK");	    $response = HTTP::Response->new(&HTTP::Status::RC_OK, "OK");	    $response->protocol('HTTP/0.9');	    last;	} else {	    # need more data	    LWP::Debug::debug("need more status line data");	}    };    $response->request($request);    $self->_get_sock_info($response, $socket);    my $usebuf = length($buf) > 0;    $response = $self->collect($arg, $response, sub {        if ($usebuf) {	    $usebuf = 0;	    return \$buf;	}	die "read timeout" if $timeout && !$sel->can_read($timeout);	my $n = $socket->sysread($buf, $size);	die $! unless defined($n);	#LWP::Debug::conns($buf);	return \$buf;	} );    $socket->close;    $response;}1;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩二区三区| 成人午夜伦理影院| 精品精品欲导航| 黄色日韩三级电影| 国产精品―色哟哟| 97aⅴ精品视频一二三区| 亚洲午夜在线电影| 欧美日本在线看| 国产综合成人久久大片91| 国产欧美一区二区精品仙草咪| 国产成人鲁色资源国产91色综| 亚洲视频免费在线观看| 欧美日韩亚洲综合一区二区三区| 美女视频第一区二区三区免费观看网站| 精品国产免费久久| 97se亚洲国产综合自在线不卡| 日韩专区一卡二卡| 久久久91精品国产一区二区精品| 91蜜桃在线观看| 成人黄色片在线观看| 亚洲一区二区三区四区五区黄| 欧美一区二区三区免费大片 | 欧美丝袜第三区| 麻豆精品国产91久久久久久| 中文字幕免费不卡在线| 欧美色爱综合网| 国产99久久久国产精品潘金 | 成人免费一区二区三区视频| 欧美日韩国产一级| 国产成人在线看| 日韩高清一级片| 亚洲女人小视频在线观看| 欧美一区二区在线观看| 成人黄色777网| 久久精品国产一区二区| 日韩美女久久久| 26uuu国产在线精品一区二区| 在线观看网站黄不卡| 国产毛片精品视频| 天天综合网 天天综合色| 中文字幕在线免费不卡| 日韩亚洲国产中文字幕欧美| 蜜臀av一区二区在线免费观看| 精品视频色一区| 成人一区二区三区| 国产亚洲精久久久久久| 91.麻豆视频| 日本精品视频一区二区| 国产91丝袜在线播放0| 美腿丝袜在线亚洲一区| 亚洲成人资源在线| 亚洲女同ⅹxx女同tv| 国产欧美日产一区| 久久在线观看免费| 日韩精品最新网址| 6080国产精品一区二区| 欧美在线|欧美| 91丨porny丨首页| 成人激情av网| 成人小视频免费在线观看| 国产麻豆精品久久一二三| 青青草97国产精品免费观看无弹窗版 | 久久久国产一区二区三区四区小说| 欧美日韩视频在线一区二区| 在线精品亚洲一区二区不卡| 99re在线精品| 99久久伊人久久99| 欧美日韩精品一二三区| 色综合久久88色综合天天| eeuss鲁一区二区三区| 高清成人免费视频| 国产a视频精品免费观看| 国产综合色精品一区二区三区| 久久不见久久见免费视频1| 久久99精品久久久久婷婷| 久久99深爱久久99精品| 国产在线播放一区二区三区| 国产一区二区在线观看免费| 国产一区999| 成人黄动漫网站免费app| 波多野结衣中文字幕一区二区三区| 国产成人av自拍| av激情综合网| 在线视频你懂得一区| 欧美影片第一页| 91精品在线观看入口| 精品播放一区二区| 国产嫩草影院久久久久| 国产精品美女久久久久久久久久久 | 成人深夜在线观看| 91麻豆自制传媒国产之光| 在线观看一区二区视频| 欧美一级一区二区| 国产偷国产偷精品高清尤物| 亚洲欧美日韩在线| 亚洲一区二区三区在线| 久久精品国产第一区二区三区| 中文字幕一区在线| 欧美成人vr18sexvr| 欧美精品一区二区三区高清aⅴ | 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 色综合中文字幕| 欧美性做爰猛烈叫床潮| 欧美一级日韩一级| 国产精品黄色在线观看| 亚洲无人区一区| 国产一区999| 91国产视频在线观看| 日韩一区二区三区观看| 久久精品欧美一区二区三区麻豆| 亚洲柠檬福利资源导航| 美脚の诱脚舐め脚责91| 91在线观看污| 日韩一区二区视频在线观看| 国产精品嫩草影院com| 亚洲va欧美va人人爽| 韩国毛片一区二区三区| 91蜜桃网址入口| 91同城在线观看| 欧美一级爆毛片| 亚洲欧美另类图片小说| 男人操女人的视频在线观看欧美| 国产不卡视频一区二区三区| 在线精品视频一区二区三四| 欧美一区二区视频在线观看2020| 日韩免费电影网站| 18欧美亚洲精品| 美国三级日本三级久久99 | 日韩欧美国产成人一区二区| 26uuu精品一区二区| 亚洲午夜av在线| 成人久久视频在线观看| 日韩一区二区三区三四区视频在线观看| 国产视频一区在线播放| 亚洲一级不卡视频| 成人av免费网站| 久久美女艺术照精彩视频福利播放| 一区二区欧美精品| 99国产欧美另类久久久精品| 久久久精品2019中文字幕之3| 全国精品久久少妇| 欧美午夜精品一区二区三区| 自拍偷拍亚洲综合| 成人免费视频视频| 精品免费99久久| 久久精品国产亚洲a| 欧美群妇大交群中文字幕| 亚洲欧美日韩国产综合| 不卡一区中文字幕| 欧美激情综合在线| 国产乱码精品一品二品| 精品欧美一区二区久久| 麻豆国产91在线播放| 日韩一区二区三区免费看| 偷拍亚洲欧洲综合| 欧美日韩精品久久久| 亚洲成年人影院| 欧美日韩国产另类一区| 亚洲成av人片观看| 欧美日韩精品综合在线| 亚洲国产精品久久久男人的天堂| 欧美系列一区二区| 亚洲成人福利片| 91精品黄色片免费大全| 日本成人中文字幕| 日韩一区二区三区精品视频| 麻豆免费看一区二区三区| 欧美一区中文字幕| 七七婷婷婷婷精品国产| 日韩免费视频线观看| 国产一区二区在线影院| 国产喂奶挤奶一区二区三区| 成人黄色大片在线观看| 亚洲三级久久久| 欧美性大战xxxxx久久久| 肉肉av福利一精品导航| 精品久久一区二区| 丁香激情综合国产| 自拍偷拍亚洲欧美日韩| 欧美性猛交一区二区三区精品| 天堂久久久久va久久久久| 精品剧情v国产在线观看在线| 国产成人av自拍| 亚洲精品水蜜桃| 欧美一区二区三区播放老司机| 久久国产三级精品| 国产精品视频你懂的| 91视频www| 天堂影院一区二区| 国产网红主播福利一区二区| 91亚洲资源网| 日本特黄久久久高潮| 精品捆绑美女sm三区| 色综合咪咪久久| 日韩中文字幕亚洲一区二区va在线| 日韩精品一区二区三区视频| 成人动漫视频在线| 偷偷要91色婷婷| 国产精品欧美一区二区三区| 欧美三级视频在线|