summaryrefslogtreecommitdiff
path: root/lib/net/pop.rb
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-28 05:09:26 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-28 05:09:26 +0000
commit111b11703d196e093d8f33ce17c1d309fbd0fa9a (patch)
treeb21be95b279315f190de8713b1ceb4c97af8b70e /lib/net/pop.rb
parentc451c56b10be59e905667c93b167f05bb9e4f50b (diff)
* lib/net/pop.rb (auth): failed when account/password include "%". [ruby-talk:95933]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/net/pop.rb')
-rw-r--r--lib/net/pop.rb32
1 files changed, 26 insertions, 6 deletions
diff --git a/lib/net/pop.rb b/lib/net/pop.rb
index 278b949395..04c6544d24 100644
--- a/lib/net/pop.rb
+++ b/lib/net/pop.rb
@@ -196,11 +196,21 @@ module Net
# Class Parameters
#
- # The default port for POP3 connections, port 110
+ # The default port for POP3 connections, port 110.
def POP3.default_port
+ pop3_default_port()
+ end
+
+ # The default port for POP3 connections, port 110.
+ def POP3.pop3_default_port
110
end
+ # The default port for POP3s connections, port 995.
+ def POP3.pop3s_default_port
+ 995
+ end
+
def POP3.socket_type #:nodoc: obsolete
Net::InternetMessageIO
end
@@ -345,6 +355,8 @@ module Net
@mails = nil
@n_mails = nil
@n_bytes = nil
+
+ @use_ssl = false
end
# Does this instance use APOP authentication?
@@ -402,6 +414,12 @@ module Net
alias active? started? #:nodoc: obsolete
+ # Sets wheather we use SSL or not.
+ # You MUST require 'net/pops' before setting use_ssl=true.
+ def use_ssl?
+ false # redefined in net/pops
+ end
+
# Starts a POP3 session.
#
# When called with block, gives a POP3 object to the block and
@@ -425,9 +443,11 @@ module Net
end
def do_start( account, password )
- @socket = InternetMessageIO.new(timeout(@open_timeout) {
- TCPSocket.open(@address, @port)
- })
+ s = timeout(@open_timeout) { TCPSocket.open(@address, @port) }
+ if use_ssl?
+ s = OpenSSL::SSL::SSLSocket.open(s, @ssl_context)
+ end
+ @socket = InternetMessageIO.new(s)
logging "POP session started: #{@address}:#{@port} (#{@apop ? 'APOP' : 'POP'})"
@socket.read_timeout = @read_timeout
@socket.debug_output = @debug_output
@@ -748,8 +768,8 @@ module Net
def auth( account, password )
check_response_auth(critical {
- check_response_auth(get_response('USER ' + account))
- get_response('PASS ' + password)
+ check_response_auth(get_response('USER %s', account))
+ get_response('PASS %s', password)
})
end