mirror of
https://github.com/codeninjasllc/discourse.git
synced 2025-02-25 16:04:22 -05:00
Fix pop3 SSL state leaking over multisite
This commit is contained in:
parent
6d357c9c23
commit
e28ef099a4
3 changed files with 21 additions and 5 deletions
|
@ -73,10 +73,10 @@ module Jobs
|
||||||
end
|
end
|
||||||
|
|
||||||
def poll_pop3
|
def poll_pop3
|
||||||
Net::POP3.start(SiteSetting.pop3_polling_host,
|
connection = Net::POP3.new(SiteSetting.pop3_polling_host, SiteSetting.pop3_polling_port)
|
||||||
SiteSetting.pop3_polling_port,
|
connection.enable_ssl if SiteSetting.pop3_polling_ssl
|
||||||
SiteSetting.pop3_polling_username,
|
|
||||||
SiteSetting.pop3_polling_password) do |pop|
|
connection.start(SiteSetting.pop3_polling_username, SiteSetting.pop3_polling_password) do |pop|
|
||||||
unless pop.mails.empty?
|
unless pop.mails.empty?
|
||||||
pop.each do |mail|
|
pop.each do |mail|
|
||||||
handle_mail(mail)
|
handle_mail(mail)
|
||||||
|
|
|
@ -386,6 +386,7 @@ email:
|
||||||
reply_by_email_enabled: false
|
reply_by_email_enabled: false
|
||||||
reply_by_email_address: ''
|
reply_by_email_address: ''
|
||||||
pop3_polling_enabled: false
|
pop3_polling_enabled: false
|
||||||
|
pop3_polling_ssl: true
|
||||||
pop3_polling_period_mins: 5
|
pop3_polling_period_mins: 5
|
||||||
pop3_polling_host: ''
|
pop3_polling_host: ''
|
||||||
pop3_polling_port: 995
|
pop3_polling_port: 995
|
||||||
|
|
|
@ -32,13 +32,28 @@ describe Jobs::PollMailbox do
|
||||||
error = Net::POPAuthenticationError.new
|
error = Net::POPAuthenticationError.new
|
||||||
data = { limit_once_per: 1.hour, message_params: { error: error }}
|
data = { limit_once_per: 1.hour, message_params: { error: error }}
|
||||||
|
|
||||||
Net::POP3.expects(:start).raises(error)
|
Net::POP3.any_instance.expects(:start).raises(error)
|
||||||
|
|
||||||
Discourse.expects(:handle_exception)
|
Discourse.expects(:handle_exception)
|
||||||
|
|
||||||
poller.poll_pop3
|
poller.poll_pop3
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "calls enable_ssl when the setting is enabled" do
|
||||||
|
SiteSetting.pop3_polling_ssl = true
|
||||||
|
Net::POP3.any_instance.stubs(:start)
|
||||||
|
Net::POP3.any_instance.expects(:enable_ssl)
|
||||||
|
|
||||||
|
poller.poll_pop3
|
||||||
|
end
|
||||||
|
|
||||||
|
it "does not call enable_ssl when the setting is off" do
|
||||||
|
SiteSetting.pop3_polling_ssl = false
|
||||||
|
Net::POP3.any_instance.stubs(:start)
|
||||||
|
Net::POP3.any_instance.expects(:enable_ssl).never
|
||||||
|
|
||||||
|
poller.poll_pop3
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Testing mock for the email objects that you get
|
# Testing mock for the email objects that you get
|
||||||
|
|
Loading…
Reference in a new issue