summaryrefslogtreecommitdiff
path: root/lib/net
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-12-07 10:04:25 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-12-07 10:04:25 +0000
commita20863ff41b0493da0d16597b693e88b54731c03 (patch)
tree372d570d1bca168621914790fdb617deec97580a /lib/net
parent4ed1344bd7a2527e54002e4ecb59833b99f30b43 (diff)
aamine
* 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/net')
-rw-r--r--lib/net/http.rb27
-rw-r--r--lib/net/pop.rb36
-rw-r--r--lib/net/protocol.rb11
-rw-r--r--lib/net/smtp.rb5
4 files changed, 35 insertions, 44 deletions
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):
-((<URL:http://www.ruby-lang.org/~rubikitch/RDP.cgi>))
+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):
-((<URL:http://www.ruby-lang.org/~rubikitch/RDP.cgi>))
+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):
-((<URL:http://www.ruby-lang.org/~rubikitch/RDP.cgi>))
+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):
-((<URL:http://www.ruby-lang.org/~rubikitch/RDP.cgi>))
+NOTE: You can find Japanese version of this document in
+the doc/net directory of the standard ruby interpreter package.
== What is This Module?