diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/net/http.rb | 2 | ||||
-rw-r--r-- | lib/net/pop.rb | 31 |
3 files changed, 32 insertions, 7 deletions
@@ -1,3 +1,9 @@ +Thu Oct 12 18:56:28 2000 Minero Aoki <aamine@dp.u-netsurf.ne.jp> + + * lib/net/pop.rb: POP3#reset + + * lib/net/http.rb: a code for "Switch Protocol" was wrongly 100 + Thu Oct 12 01:23:38 2000 Wakou Aoyama <wakou@fsinet.or.jp> * lib/cgi.rb: bug fix: CGI::html(): PRETTY option didn't work. diff --git a/lib/net/http.rb b/lib/net/http.rb index 5d4d226cd2..4e96963da6 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -787,7 +787,7 @@ SRC HTTPCODE_TO_OBJ = { '100' => ContinueCode, - '100' => HTTPSwitchProtocol, + '101' => HTTPSwitchProtocol, '200' => HTTPOK, '201' => HTTPCreated, diff --git a/lib/net/pop.rb b/lib/net/pop.rb index a9d13ccb31..4eacb516d0 100644 --- a/lib/net/pop.rb +++ b/lib/net/pop.rb @@ -45,6 +45,9 @@ Net::Protocol an array of ((URL:#POPMail)). This array is renewed when session started. +: reset + reset the session. All "deleted mark" are removed. + == Net::APOP @@ -128,13 +131,22 @@ module Net def initialize( addr = nil, port = nil ) super - @mails = [].freeze + @mails = nil end attr :mails - def each - @mails.each {|m| yield m } + def each( &block ) + io_check + @mails.each &block + end + + def reset + io_check + @command.rset + @mails.each do |m| + m.instance_eval { @deleted = false } + end end @@ -144,15 +156,21 @@ module Net @command.auth( acnt, pwd ) @mails = [] - t = type.mail_type + mtype = type.mail_type @command.list.each_with_index do |size,idx| if size then - @mails.push t.new( idx, size, @command ) + @mails.push mtype.new( idx, size, @command ) end end @mails.freeze end + def io_check + if not @socket or @socket.closed? then + raise IOError, 'pop session is not opened yet' + end + end + end POP = POP3 @@ -197,13 +215,14 @@ module Net end def header( dest = '' ) - top( 0, dest ) + top 0, dest end def delete @command.dele( @num ) @deleted = true end + alias delete! delete def deleted? |