summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--lib/net/http.rb17
-rw-r--r--lib/net/pop.rb2
-rw-r--r--lib/net/protocol.rb7
-rw-r--r--lib/net/smtp.rb4
5 files changed, 29 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 053c14096f..c786cc3ca6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Wed Jul 4 04:07:36 2001 Minero Aoki <aamine@loveruby.net>
+
+ * lib/net/http.rb (HTTP#request_by_name): bug fix.
+
+ * lib/net/http.rb: does not write Connection: by default.
+
+ * lib/net/protocol.rb: "start" for started protocol is an error.
+
+ * lib/net/protocol.rb: "finish" for finished protocol is an error.
+
Wed Jul 4 03:17:31 2001 Minero Aoki <aamine@loveruby.net>
* lib/net/http.rb: new method HTTP#request_by_name (test)
diff --git a/lib/net/http.rb b/lib/net/http.rb
index f0c7dbff6c..20c8d0107d 100644
--- a/lib/net/http.rb
+++ b/lib/net/http.rb
@@ -203,7 +203,7 @@ Yes, this is not thread-safe.
: finish
finishes HTTP session.
- If HTTP session had not started, do nothing and return false.
+ If HTTP session had not started, raises an IOError.
: proxy?
true if self is a HTTP proxy class
@@ -610,7 +610,7 @@ module Net
req.response
end
- def request_by_name( name, path, header, body = nil )
+ def request_by_name( name, path, header = nil, body = nil )
r = ::Net::NetPrivate::HTTPGenericRequest.new(
name, body ? true : false, true,
path, header )
@@ -622,17 +622,20 @@ module Net
def connecting( req )
- req['connection'] ||= 'keep-alive'
+ unless active? then
+ implicit = true
+ req['connection'] ||= 'close'
+ end
+
if not @socket then
start
- req['connection'] = 'close'
elsif @socket.closed? then
re_connect
end
if not req.body_exist? or @seems_1_0_server then
req['connection'] = 'close'
end
- req['host'] = addr_port
+ req['host'] = addr_port()
yield req
req.response.__send__ :terminate
@@ -651,6 +654,10 @@ 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 49751a1923..793532fffc 100644
--- a/lib/net/pop.rb
+++ b/lib/net/pop.rb
@@ -201,7 +201,7 @@ net/pop also supports APOP authentication. There's two way to use APOP:
: finish
finishes POP3 session.
- If POP3 session had not be started, does nothing and return false.
+ If POP3 session had not be started, raises an IOError.
: mails
an array of Net::POPMail objects.
diff --git a/lib/net/protocol.rb b/lib/net/protocol.rb
index d810ac2f9d..aba2256b6e 100644
--- a/lib/net/protocol.rb
+++ b/lib/net/protocol.rb
@@ -122,7 +122,7 @@ module Net
#
def start( *args )
- return false if active?
+ active? and raise IOError, 'protocol has been opened already'
if block_given? then
begin
@@ -134,6 +134,7 @@ module Net
else
_start args
end
+ nil
end
private
@@ -177,12 +178,12 @@ module Net
public
def finish
- return false unless active?
+ active? or raise IOError, 'already closed protocol'
do_finish if @command and not @command.critical?
disconnect
@active = false
- true
+ nil
end
private
diff --git a/lib/net/smtp.rb b/lib/net/smtp.rb
index c56d2c9e32..186ffa291a 100644
--- a/lib/net/smtp.rb
+++ b/lib/net/smtp.rb
@@ -108,8 +108,8 @@ send or reject SMTP session by this data.
: start( helo_domain = <local host name>, account = nil, password = nil, authtype = nil )
: start( helo_domain = <local host name>, account = nil, password = nil, authtype = nil ) {|smtp| .... }
opens TCP connection and starts SMTP session.
- If protocol had been started, do nothing and return false.
HELO_DOMAIN is a domain that you'll dispatch mails from.
+ If protocol had been started, raises IOError.
When this methods is called with block, give a SMTP object to block and
close session after block call finished.
@@ -141,7 +141,7 @@ send or reject SMTP session by this data.
: finish
finishes SMTP session.
- If SMTP session had not started, do nothing and return false.
+ If SMTP session had not started, raises an IOError.
: send_mail( mailsrc, from_addr, *to_addrs )
This method sends MAILSRC as mail. A SMTP object read strings