diff --git a/ChangeLog b/ChangeLog index 059362303b..b45aeac344 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Fri Dec 7 19:12:14 2001 Minero Aoki + + * lib/net/smtp.rb: SMTP.new requires at least one arg. + + * lib/net/pop.rb: POP.new requires at least one arg. + + * lib/net/pop.rb: uses "raise *Error.new" instead of simple raise. + + * lib/net/http.rb: HTTP.new requires at least one arg. + + * lib/net/http.rb: changes implicit start algolithm. + Fri Dec 7 15:49:39 2001 Usaku Nakamura * ext/extmk.rb.in: ignore adding -Wl,-R to DLDFLAGS when the directory diff --git a/lib/net/http.rb b/lib/net/http.rb index 455c3987ff..730ea8eafc 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -11,9 +11,8 @@ This program is free software. You can re-distribute and/or modify this program under the same terms as Ruby itself, Ruby Distribute License or GNU General Public License. -NOTE: You can get Japanese version of this document from -Ruby Documentation Project (RDP): -(()) +NOTE: You can find Japanese version of this document in +the doc/net directory of the standard ruby interpreter package. == What is this module? @@ -639,7 +638,14 @@ module Net define_http_method_interface :Post, true, true define_http_method_interface :Put, false, true - def request( req, body = nil ) + def request( req, body = nil, &block ) + unless active? then + start { + req['connection'] = 'close' + return request(req, body, &block) + } + end + connecting( req ) { req.__send__( :exec, @socket, @curr_http_version, edit_path(req.path), body ) @@ -660,14 +666,7 @@ module Net def connecting( req ) - unless active? then - implicit = true - req['connection'] ||= 'close' - end - - if not @socket then - start - elsif @socket.closed? then + if @socket.closed? then re_connect end if not req.body_exist? or @seems_1_0_server then @@ -692,10 +691,6 @@ module Net D 'Conn close' @socket.close end - - if implicit then - finish - end end def keep_alive?( req, res ) diff --git a/lib/net/pop.rb b/lib/net/pop.rb index e55da89c10..925dfce147 100644 --- a/lib/net/pop.rb +++ b/lib/net/pop.rb @@ -10,9 +10,8 @@ This program is free software. You can re-distribute and/or modify this program under the same terms as Ruby itself, Ruby Distribute License or GNU General Public License. -NOTE: You can get Japanese version of this document from -Ruby Documentation Project (RDP): -(()) +NOTE: You can find Japanese version of this document in +the doc/net directory of the standard ruby interpreter package. == What is This Module? @@ -422,14 +421,15 @@ module Net "#<#{type} #{@num}#{@deleted ? ' deleted' : ''}>" end - def all( dest = '' ) - if block_given? then - dest = NetPrivate::ReadAdapter.new( Proc.new ) + def pop( dest = '', &block ) + if block then + dest = NetPrivate::ReadAdapter.new( block ) end @command.retr( @num, dest ) end - alias pop all - alias mail all + + alias all pop + alias mail pop def top( lines, dest = '' ) @command.top( @num, lines, dest ) @@ -440,7 +440,7 @@ module Net end def delete - @command.dele( @num ) + @command.dele @num @deleted = true end @@ -470,9 +470,9 @@ module Net } end - def auth( acnt, pass ) + def auth( account, pass ) critical { - @socket.writeline 'USER ' + acnt + @socket.writeline 'USER ' + account check_reply_auth @socket.writeline 'PASS ' + pass @@ -537,21 +537,19 @@ module Net def check_reply_auth begin - cod = check_reply( SuccessCode ) - rescue ProtocolError - raise ProtoAuthError, 'Fail to POP authentication' + return check_reply( SuccessCode ) + rescue ProtocolError => err + raise ProtoAuthError.new( 'Fail to POP authentication', err.response ) end - - return cod end def get_reply str = @socket.readline if /\A\+/ === str then - return Response.new( SuccessCode, str[0,3], str[3, str.size - 3].strip ) + Response.new( SuccessCode, str[0,3], str[3, str.size - 3].strip ) else - return Response.new( ErrorCode, str[0,4], str[4, str.size - 4].strip ) + Response.new( ErrorCode, str[0,4], str[4, str.size - 4].strip ) end end @@ -564,7 +562,7 @@ module Net rep = super( sock ) m = /<.+>/.match( rep.msg ) or - raise ProtoAuthError, "not APOP server: cannot login" + raise ProtoAuthError.new( "not APOP server: cannot login", nil ) @stamp = m[0] end diff --git a/lib/net/protocol.rb b/lib/net/protocol.rb index ac2753ad79..600dc04b58 100644 --- a/lib/net/protocol.rb +++ b/lib/net/protocol.rb @@ -10,9 +10,8 @@ This program is free software. You can re-distribute and/or modify this program under the same terms as Ruby itself, Ruby Distribute License or GNU General Public License. -NOTE: You can get Japanese version of this document from -Ruby Documentation Project (RDP): -(()) +NOTE: You can find Japanese version of this document in +the doc/net directory of the standard ruby interpreter package. =end @@ -80,7 +79,7 @@ module Net def initialize( addr, port = nil ) - @address = addr || 'localhost' + @address = addr @port = port || type.port @command = nil @@ -213,9 +212,9 @@ module Net class Response - def initialize( ctype, cno, msg ) + def initialize( ctype, code, msg ) @code_type = ctype - @code = cno + @code = code @message = msg super() end diff --git a/lib/net/smtp.rb b/lib/net/smtp.rb index 2ae42c6551..5331ee17e7 100644 --- a/lib/net/smtp.rb +++ b/lib/net/smtp.rb @@ -10,9 +10,8 @@ This program is free software. You can re-distribute and/or modify this program under the same terms as Ruby itself, Ruby Distribute License or GNU General Public License. -NOTE: You can get Japanese version of this document from -Ruby Documentation Project (RDP): -(()) +NOTE: You can find Japanese version of this document in +the doc/net directory of the standard ruby interpreter package. == What is This Module?