logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
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:

Mapp/controllers/api_controller.rb4++++
Mapp/controllers/application_controller.rb6++++++
Mapp/controllers/stream_entries_controller.rb15+++++++++------
Mapp/services/fetch_atom_service.rb3+++
Mapp/services/fetch_remote_account_service.rb2++
Mapp/services/fetch_remote_status_service.rb3+++
Mconfig/environments/production.rb2++
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