From 39c0252e048e56aa4a8f0429b95ac236b0f7856c Mon Sep 17 00:00:00 2001 From: aamine Date: Thu, 13 Dec 2001 19:15:21 +0000 Subject: aamine * lib/net/pop.rb: new method Net::POP3.APOP * lib/net/http.rb: set default Content-Type to x-www-form-urlencoded (causes warning) * lib/net/protocol.rb: remove Net::NetPrivate module. * lib/net/smtp.rb: ditto. * lib/net/pop.rb: ditto. * lib/net/http.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/net/protocol.rb | 101 +++++++++++++++++++++++----------------------------- 1 file changed, 45 insertions(+), 56 deletions(-) (limited to 'lib/net/protocol.rb') diff --git a/lib/net/protocol.rb b/lib/net/protocol.rb index c67be1863f..5bc03ce7f9 100644 --- a/lib/net/protocol.rb +++ b/lib/net/protocol.rb @@ -1,6 +1,6 @@ =begin -= net/protocol.rb version 1.2.3 += net/protocol.rb Copyright (c) 1999-2001 Yukihiro Matsumoto @@ -13,6 +13,8 @@ Ruby Distribute License or GNU General Public License. NOTE: You can find Japanese version of this document in the doc/net directory of the standard ruby interpreter package. +$Id$ + =end require 'socket' @@ -21,17 +23,10 @@ require 'timeout' module Net - module NetPrivate - end - - def self.net_private( &block ) - ::Net::NetPrivate.module_eval( &block ) - end - - class Protocol Version = '1.2.3' + Revision = %q$Revision$.split(/\s+/)[1] class << self @@ -75,7 +70,7 @@ module Net protocol_param :port, 'nil' protocol_param :command_type, 'nil' - protocol_param :socket_type, '::Net::NetPrivate::Socket' + protocol_param :socket_type, '::Net::Socket' def initialize( addr, port = nil ) @@ -208,8 +203,6 @@ module Net Session = Protocol - net_private { - class Response def initialize( ctype, code, msg ) @@ -227,13 +220,11 @@ module Net end def error! - raise code_type.error_type.new( code + ' ' + Net.quote(msg), self ) + raise @code_type.error_type.new( code + ' ' + Net.quote(msg), self ) end end - } - class ProtocolError < StandardError; end class ProtoSyntaxError < ProtocolError; end @@ -265,16 +256,16 @@ module Net class Code def initialize( paren, err ) - @parents = paren + @parents = [self] + paren @err = err - - @parents.push self end - attr_reader :parents + def parents + @parents.dup + end def inspect - "#<#{type}>" + "#<#{type} #{sprintf '0x%x', __id__}>" end def error_type @@ -282,12 +273,12 @@ module Net end def ===( response ) - response.code_type.parents.reverse_each {|i| return true if i == self } + response.code_type.parents.each {|c| return true if c == self } false end def mkchild( err = nil ) - type.new( @parents + [self], err || @err ) + type.new( @parents, err || @err ) end end @@ -306,12 +297,10 @@ module Net - net_private { - class WriteAdapter def initialize( sock, mid ) - @sock = sock + @socket = sock @mid = mid end @@ -320,11 +309,11 @@ module Net end def write( str ) - @sock.__send__ @mid, str + @socket.__send__ @mid, str end def <<( str ) - @sock.__send__ @mid, str + @socket.__send__ @mid, str self end @@ -357,7 +346,7 @@ module Net ensure if user_break then @block = nil - return # stop break + return # stop breaking end end end @@ -457,7 +446,7 @@ module Net @socket = nil @sending = '' - @buffer = '' + @rbuf = '' connect otime D 'opened' @@ -498,7 +487,7 @@ module Net D 'close call for already closed socket' end @socket = nil - @buffer = '' + @rbuf = '' end def closed? @@ -524,7 +513,7 @@ module Net # - # read + # input # public @@ -536,8 +525,8 @@ module Net rsize = 0 begin - while rsize + @buffer.size < len do - rsize += rbuf_moveto( dest, @buffer.size ) + while rsize + @rbuf.size < len do + rsize += rbuf_moveto( dest, @rbuf.size ) rbuf_fill end rbuf_moveto dest, len - rsize @@ -555,7 +544,7 @@ module Net rsize = 0 begin while true do - rsize += rbuf_moveto( dest, @buffer.size ) + rsize += rbuf_moveto( dest, @rbuf.size ) rbuf_fill end rescue EOFError @@ -570,14 +559,14 @@ module Net dest = '' begin while true do - idx = @buffer.index( target ) + idx = @rbuf.index( target ) break if idx rbuf_fill end rbuf_moveto dest, idx + target.size rescue EOFError raise unless igneof - rbuf_moveto dest, @buffer.size + rbuf_moveto dest, @rbuf.size end dest end @@ -617,17 +606,15 @@ module Net # D_on "read #{i} items" end - private - - READ_SIZE = 1024 * 4 + BLOCK_SIZE = 1024 * 2 def rbuf_fill unless IO.select [@socket], nil, nil, @read_timeout then on_read_timeout end - @buffer << @socket.sysread( READ_SIZE ) + @rbuf << @socket.sysread(BLOCK_SIZE) end def on_read_timeout @@ -635,18 +622,14 @@ module Net end def rbuf_moveto( dest, len ) - bsi = @buffer.size - s = @buffer[ 0, len ] - dest << s - @buffer = @buffer[ len, bsi - len ] - - @debugout << % if @debugout + dest << (s = @rbuf.slice!(0, len)) + @debugout << %Q if @debugout len end # - # write interfece + # output # public @@ -666,7 +649,7 @@ module Net def write_bin( src, block ) writing { if block then - block.call ::Net::NetPrivate::WriteAdapter.new( self, :do_write ) + block.call WriteAdapter.new(self, :do_write) else src.each do |bin| do_write bin @@ -678,9 +661,9 @@ module Net def write_pendstr( src, block ) D_off "writing text from #{src.type}" - wsize = use_each_crlf_line { + wsize = using_each_crlf_line { if block then - block.call ::Net::NetPrivate::WriteAdapter.new( self, :wpend_in ) + block.call WriteAdapter.new(self, :wpend_in) else wpend_in src end @@ -690,10 +673,8 @@ module Net wsize end - private - def wpend_in( src ) line = nil pre = @writtensize @@ -705,13 +686,13 @@ module Net @writtensize - pre end - def use_each_crlf_line + def using_each_crlf_line writing { @wbuf = '' yield - if not @wbuf.empty? then # un-terminated last line + if not @wbuf.empty? then # unterminated last line if @wbuf[-1] == ?\r then @wbuf.chop! end @@ -824,8 +805,6 @@ module Net end - } - def Net.quote( str ) str = str.gsub( "\n", '\\n' ) @@ -834,4 +813,14 @@ module Net str end + + # for backward compatibility + module NetPrivate + Response = ::Net::Response + WriteAdapter = ::Net::WriteAdapter + ReadAdapter = ::Net::ReadAdapter + Command = ::Net::Command + Socket = ::Net::Socket + end + end # module Net -- cgit v1.2.3