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

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

?? ftp.pm

?? 視頻監(jiān)控網(wǎng)絡(luò)部分的協(xié)議ddns,的模塊的實現(xiàn)代碼,請大家大膽指正.
?? PM
?? 第 1 頁 / 共 2 頁
字號:
## $Id: ftp.pm,v 1.36 2003/10/23 19:11:32 uid39246 Exp $# Implementation of the ftp protocol (RFC 959). We let the Net::FTP# package do all the dirty work.package LWP::Protocol::ftp;use Carp ();use HTTP::Status ();use HTTP::Negotiate ();use HTTP::Response ();use LWP::MediaTypes ();use File::Listing ();require LWP::Protocol;@ISA = qw(LWP::Protocol);use strict;eval {    package LWP::Protocol::MyFTP;    require Net::FTP;    Net::FTP->require_version(2.00);    use vars qw(@ISA);    @ISA=qw(Net::FTP);    sub new {	my $class = shift;	LWP::Debug::trace('()');	my $self = $class->SUPER::new(@_) || return undef;	my $mess = $self->message;  # welcome message	LWP::Debug::debug($mess);	$mess =~ s|\n.*||s; # only first line left	$mess =~ s|\s*ready\.?$||;	# Make the version number more HTTP like	$mess =~ s|\s*\(Version\s*|/| and $mess =~ s|\)$||;	${*$self}{myftp_server} = $mess;	#$response->header("Server", $mess);	$self;    }    sub http_server {	my $self = shift;	${*$self}{myftp_server};    }    sub home {	my $self = shift;	my $old = ${*$self}{myftp_home};	if (@_) {	    ${*$self}{myftp_home} = shift;	}	$old;    }    sub go_home {	LWP::Debug::trace('');	my $self = shift;	$self->cwd(${*$self}{myftp_home});    }    sub request_count {	my $self = shift;	++${*$self}{myftp_reqcount};    }    sub ping {	LWP::Debug::trace('');	my $self = shift;	return $self->go_home;    }};my $init_failed = $@;sub _connect {    my($self, $host, $port, $user, $account, $password, $timeout) = @_;    my $key;    my $conn_cache = $self->{ua}{conn_cache};    if ($conn_cache) {	$key = "$host:$port:$user";	$key .= ":$account" if defined($account);	if (my $ftp = $conn_cache->withdraw("ftp", $key)) {	    if ($ftp->ping) {		LWP::Debug::debug('Reusing old connection');		# save it again		$conn_cache->deposit("ftp", $key, $ftp);		return $ftp;	    }	}    }    # try to make a connection    my $ftp = LWP::Protocol::MyFTP->new($host,					Port => $port,					Timeout => $timeout,				       );    # XXX Should be some what to pass on 'Passive' (header??)    unless ($ftp) {	$@ =~ s/^Net::FTP: //;	return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR, $@);    }    LWP::Debug::debug("Logging in as $user (password $password)...");    unless ($ftp->login($user, $password, $account)) {	# Unauthorized.  Let's fake a RC_UNAUTHORIZED response	my $mess = scalar($ftp->message);	LWP::Debug::debug($mess);	$mess =~ s/\n$//;	my $res =  HTTP::Response->new(&HTTP::Status::RC_UNAUTHORIZED, $mess);	$res->header("Server", $ftp->http_server);	$res->header("WWW-Authenticate", qq(Basic Realm="FTP login"));	return $res;    }    LWP::Debug::debug($ftp->message);    my $home = $ftp->pwd;    LWP::Debug::debug("home: '$home'");    $ftp->home($home);    $conn_cache->deposit("ftp", $key, $ftp) if $conn_cache;    return $ftp;}sub request{    my($self, $request, $proxy, $arg, $size, $timeout) = @_;    $size = 4096 unless $size;    LWP::Debug::trace('()');    # check proxy    if (defined $proxy)    {	return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,				   'You can not proxy through the ftp');    }    my $url = $request->url;    if ($url->scheme ne 'ftp') {	my $scheme = $url->scheme;	return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR,		       "LWP::Protocol::ftp::request called for '$scheme'");    }    # check method    my $method = $request->method;    unless ($method eq 'GET' || $method eq 'HEAD' || $method eq 'PUT') {	return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,				   'Library does not allow method ' .				   "$method for 'ftp:' URLs");    }    if ($init_failed) {	return HTTP::Response->new(&HTTP::Status::RC_INTERNAL_SERVER_ERROR,				   $init_failed);    }    my $host     = $url->host;    my $port     = $url->port;    my $user     = $url->user;    my $password = $url->password;    # If a basic autorization header is present than we prefer these over    # the username/password specified in the URL.    {	my($u,$p) = $request->authorization_basic;	if (defined $u) {	    $user = $u;	    $password = $p;	}    }    # We allow the account to be specified in the "Account" header    my $account = $request->header('Account');    my $ftp = $self->_connect($host, $port, $user, $account, $password, $timeout);    return $ftp if ref($ftp) eq "HTTP::Response"; # ugh!    # Create an initial response object    my $response = HTTP::Response->new(&HTTP::Status::RC_OK, "OK");    $response->header(Server => $ftp->http_server);    $response->header('Client-Request-Num' => $ftp->request_count);    $response->request($request);    # Get & fix the path    my @path =  grep { length } $url->path_segments;    my $remote_file = pop(@path);    $remote_file = '' unless defined $remote_file;    my $type;    if (ref $remote_file) {	my @params;	($remote_file, @params) = @$remote_file;	for (@params) {	    $type = $_ if s/^type=//;	}    }    if ($type && $type eq 'a') {	$ftp->ascii;    }    else {	$ftp->binary;    }    for (@path) {	LWP::Debug::debug("CWD $_");	unless ($ftp->cwd($_)) {	    return HTTP::Response->new(&HTTP::Status::RC_NOT_FOUND,				       "Can't chdir to $_");	}    }    if ($method eq 'GET' || $method eq 'HEAD') {	LWP::Debug::debug("MDTM");	if (my $mod_time = $ftp->mdtm($remote_file)) {	    $response->last_modified($mod_time);	    if (my $ims = $request->if_modified_since) {		if ($mod_time <= $ims) {		    $response->code(&HTTP::Status::RC_NOT_MODIFIED);		    $response->message("Not modified");		    return $response;		}	    }	}	# We'll use this later to abort the transfer if necessary. 	# if $max_size is defined, we need to abort early. Otherwise, it's      # a normal transfer	my $max_size = undef;	# Set resume location, if the client requested it	if ($request->header('Range') && $ftp->supported('REST'))	{		my $range_info = $request->header('Range');		# Change bytes=2772992-6781209 to just 2772992		my ($start_byte,$end_byte) = $range_info =~ /.*=\s*(\d+)-(\d+)?/;		if ( defined $start_byte && !defined $end_byte ) {		  # open range -- only the start is specified		  $ftp->restart( $start_byte );		  # don't define $max_size, we don't want to abort early		}		elsif ( defined $start_byte && defined $end_byte &&			$start_byte >= 0 && $end_byte >= $start_byte ) {		  $ftp->restart( $start_byte );		  $max_size = $end_byte - $start_byte;		}		else {		  return HTTP::Response->new(&HTTP::Status::RC_BAD_REQUEST,		     'Incorrect syntax for Range request');		}	}	elsif ($request->header('Range') && !$ftp->supported('REST'))	{		return HTTP::Response->new(&HTTP::Status::RC_NOT_IMPLEMENTED,	         "Server does not support resume.");	}	my $data;  # the data handle	LWP::Debug::debug("retrieve file?");	if (length($remote_file) and $data = $ftp->retr($remote_file)) {	    my($type, @enc) = LWP::MediaTypes::guess_media_type($remote_file);	    $response->header('Content-Type',   $type) if $type;	    for (@enc) {		$response->push_header('Content-Encoding', $_);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品福利网| av不卡一区二区三区| 国产精品亚洲专一区二区三区| 国产成人免费视频一区| 91在线观看污| 在线综合视频播放| 国产日本一区二区| 亚洲成人综合在线| 国产成人av资源| 欧美丰满一区二区免费视频| 26uuu精品一区二区| 一区二区三区在线不卡| 国产麻豆精品95视频| 欧美日韩成人综合天天影院| 国产无人区一区二区三区| 亚洲午夜三级在线| 99精品桃花视频在线观看| 日韩三级视频在线观看| 亚洲午夜精品久久久久久久久| 成人av在线网站| 久久久久久综合| 久久精品国产99国产精品| 欧美在线三级电影| 中文字幕在线免费不卡| 国产精品1024| 久久久久久久久久久久电影| 蜜桃视频第一区免费观看| 欧美色国产精品| 亚洲一区在线播放| 精品视频一区二区三区免费| 一区二区三区中文字幕在线观看| 一本大道久久a久久精二百| 国产女人aaa级久久久级| 国产在线乱码一区二区三区| 日韩精品一区二区三区在线| 日本成人中文字幕在线视频| 日韩一区二区三区精品视频 | 久久久影视传媒| 国产老妇另类xxxxx| 久久久一区二区三区| 亚洲欧美日韩久久| av亚洲精华国产精华精华| 国产精品家庭影院| gogogo免费视频观看亚洲一| 亚洲色图视频免费播放| 日本精品裸体写真集在线观看| 一区二区三区精品视频| 91精品国产综合久久久久久| 久久av老司机精品网站导航| 国产亚洲女人久久久久毛片| 99久久久国产精品| 日本伊人色综合网| 欧美国产精品一区二区| 欧美亚洲尤物久久| 男男gaygay亚洲| 中文字幕精品一区二区精品绿巨人 | 亚洲欧洲色图综合| 99精品欧美一区二区三区小说| 夜夜操天天操亚洲| 欧美日本不卡视频| 91麻豆精品国产91久久久 | 精品污污网站免费看| 日韩一区精品字幕| 久久免费美女视频| 色先锋aa成人| 免费成人在线观看视频| 中文字幕成人在线观看| 欧美色视频在线| 成人精品视频.| 精品精品欲导航| 久草这里只有精品视频| 亚洲免费在线观看| 精品国产免费人成在线观看| 成人午夜视频网站| 蜜桃久久久久久久| 中文字幕一区二区三区在线播放| 欧美在线一区二区三区| 国产成人综合亚洲91猫咪| 一区二区欧美国产| 国产欧美一区二区精品秋霞影院| 色偷偷久久一区二区三区| 国内欧美视频一区二区| 亚洲成人激情社区| 国产精品黄色在线观看| 久久天堂av综合合色蜜桃网| 宅男在线国产精品| 日韩欧美色电影| 91偷拍与自偷拍精品| 精品亚洲免费视频| 日本成人在线看| 中文字幕一区二区三区在线不卡| 91精品国产全国免费观看| 91一区一区三区| 成人午夜激情片| 国产黄色精品视频| 国产美女精品人人做人人爽| 蜜桃av一区二区在线观看| 午夜精品一区二区三区三上悠亚| 亚洲精品亚洲人成人网| 亚洲精品大片www| 夜夜操天天操亚洲| 亚洲高清免费在线| 亚洲最新在线观看| 亚洲成av人片在线| 亚洲电影中文字幕在线观看| 亚洲成在线观看| 免费不卡在线观看| 国产精品亚洲专一区二区三区| 国产精品综合二区| 国产精品一区2区| 99久久国产综合精品女不卡| 色欧美88888久久久久久影院| youjizz国产精品| 在线免费观看一区| 日韩无一区二区| 中文字幕第一区综合| 亚洲一区免费观看| 伊人一区二区三区| 国产一区福利在线| 日本韩国一区二区| 日韩欧美视频在线| 国产精品乱人伦一区二区| 亚洲一区视频在线| 国产乱码精品一品二品| 国产一区二区三区电影在线观看| 色婷婷亚洲综合| 精品国产一区二区三区忘忧草 | 久久精品99国产精品日本| 国产成人av影院| 91麻豆精品国产91久久久更新时间 | 中文字幕一区二区三区在线不卡 | 26uuu久久天堂性欧美| 亚洲精品欧美二区三区中文字幕| 久久国内精品自在自线400部| 国产成人免费网站| 精品国产乱码久久久久久1区2区| 亚洲色图一区二区三区| 国产在线播放一区二区三区| 欧美色区777第一页| 国产精品久久久久一区二区三区| 全部av―极品视觉盛宴亚洲| 91一区二区在线| 欧美精品自拍偷拍动漫精品| 一区二区三区四区不卡在线 | 国产精品一区专区| 欧美大胆人体bbbb| 日韩精品电影在线观看| 欧美亚洲尤物久久| 一区二区免费看| 色妹子一区二区| 亚洲免费av网站| 成人美女视频在线观看18| 国产香蕉久久精品综合网| 久久国产欧美日韩精品| 欧美大度的电影原声| 午夜久久久久久久久久一区二区| 一本久久a久久精品亚洲| 国产精品一区二区在线看| 久久嫩草精品久久久精品一| 大桥未久av一区二区三区中文| 国产三级精品视频| 成人综合婷婷国产精品久久蜜臀 | 久久免费看少妇高潮| 国产中文一区二区三区| 国产欧美久久久精品影院| 国产黄色精品视频| 亚洲国产精品久久人人爱蜜臀| 91精品午夜视频| 国产美女娇喘av呻吟久久| 国产精品三级久久久久三级| 99国产欧美另类久久久精品| 日韩一区二区三区四区| 欧美日韩在线精品一区二区三区激情| 中文字幕成人在线观看| 色哟哟国产精品| 麻豆精品新av中文字幕| 久久免费的精品国产v∧| 国产91对白在线观看九色| 中文字幕中文字幕在线一区| 日本久久电影网| 激情深爱一区二区| 亚洲精品国产一区二区精华液 | 久久婷婷国产综合精品青草 | 一区精品在线播放| 欧美日韩aaa| 粉嫩高潮美女一区二区三区| 亚洲大片在线观看| 久久国产乱子精品免费女| 中文av一区二区| 91精品国产综合久久蜜臀| 成人深夜视频在线观看| 亚洲成年人网站在线观看| 久久久久久久久久久电影| 91麻豆国产福利精品| 国产一区 二区 三区一级| 日本欧美大码aⅴ在线播放| 亚洲视频你懂的| 精品国产污污免费网站入口 | 精品久久五月天| 91.com视频|