commit: fe77921e4733b330e69a9f2db8be5de9ecefc8af
parent: b0788854141a98da8fc4da1dbbfaf2a3239e3760
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Wed, 5 Oct 2016 13:26:44 +0200
Catching more exceptions that slipped through, removing AR logging from
production as it's very verbose and not very useful
Diffstat:
7 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb
@@ -18,6 +18,10 @@ class ApiController < ApplicationController
render json: { error: 'Remote data could not be fetched' }, status: 503
end
+ rescue_from OpenSSL::SSL::SSLError do
+ render json: { error: 'Remote SSL certificate could not be verified' }, status: 503
+ end
+
protected
def current_resource_owner
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
@@ -30,6 +30,12 @@ class ApplicationController < ActionController::Base
end
end
+ def gone
+ respond_to do |format|
+ format.any { head 410 }
+ end
+ end
+
def current_account
current_user.try(:account)
end
diff --git a/app/controllers/stream_entries_controller.rb b/app/controllers/stream_entries_controller.rb
@@ -8,13 +8,16 @@ class StreamEntriesController < ApplicationController
def show
@type = @stream_entry.activity_type.downcase
- if @stream_entry.activity_type == 'Status'
- @ancestors = @stream_entry.activity.ancestors
- @descendants = @stream_entry.activity.descendants
- end
-
respond_to do |format|
- format.html
+ format.html do
+ return gone if @stream_entry.activity.nil?
+
+ if @stream_entry.activity_type == 'Status'
+ @ancestors = @stream_entry.activity.ancestors
+ @descendants = @stream_entry.activity.descendants
+ end
+ end
+
format.atom
end
end
diff --git a/app/services/fetch_atom_service.rb b/app/services/fetch_atom_service.rb
@@ -12,6 +12,9 @@ class FetchAtomService < BaseService
else
return process_html(fetch(url))
end
+
+ rescue OpenSSL::SSL::SSLError => e
+ Rails.logger.debug "SSL error: #{e}"
end
private
diff --git a/app/services/fetch_remote_account_service.rb b/app/services/fetch_remote_account_service.rb
@@ -19,5 +19,7 @@ class FetchRemoteAccountService < BaseService
Rails.logger.debug "Going to webfinger #{username}@#{domain}"
return FollowRemoteAccountService.new.call("#{username}@#{domain}")
+ rescue Nokogiri::XML::XPath::SyntaxError
+ Rails.logger.debug "Invalid XML or missing namespace"
end
end
diff --git a/app/services/fetch_remote_status_service.rb b/app/services/fetch_remote_status_service.rb
@@ -31,5 +31,8 @@ class FetchRemoteStatusService < BaseService
Rails.logger.debug "Going to webfinger #{username}@#{domain}"
return FollowRemoteAccountService.new.call("#{username}@#{domain}")
+ rescue Nokogiri::XML::XPath::SyntaxError
+ Rails.logger.debug "Invalid XML or missing namespace"
+ end
end
end
diff --git a/config/environments/production.rb b/config/environments/production.rb
@@ -85,4 +85,6 @@ Rails.application.configure do
config.action_mailer.delivery_method = :smtp
config.react.variant = :production
+
+ config.active_record.logger = nil
end