]> cat aescling's git repositories - mastodon.git/commitdiff
OStatus2 and Goldfinger gems now have timeouts for requests
authorEugen Rochko <eugen@zeonfederated.com>
Mon, 19 Sep 2016 23:10:51 +0000 (01:10 +0200)
committerEugen Rochko <eugen@zeonfederated.com>
Mon, 19 Sep 2016 23:10:51 +0000 (01:10 +0200)
Gemfile.lock
app/models/account.rb
lib/tasks/mastodon.rake

index b3cf207be9dfea9a82a3ba84831dce2f3addfb78..f7b51fed7a6934083297cfc5909ca125ad46eec7 100644 (file)
@@ -106,7 +106,7 @@ GEM
       ruby-progressbar (~> 1.4)
     globalid (0.3.7)
       activesupport (>= 4.1.0)
-    goldfinger (1.0.2)
+    goldfinger (1.0.3)
       addressable (~> 2.4)
       http (~> 1.0)
       nokogiri (~> 1.6)
@@ -171,7 +171,7 @@ GEM
       pkg-config (~> 1.1.7)
     oj (2.17.3)
     orm_adapter (0.5.0)
-    ostatus2 (0.2)
+    ostatus2 (0.2.1)
       addressable (~> 2.4)
       http (~> 1.0)
       nokogiri (~> 1.6)
index 449075aa8a5cbab3e4facba4e049c7921380fc72..a7f31440f1d37704e5b0cae41c8f04fa22afdaa7 100644 (file)
@@ -82,7 +82,7 @@ class Account < ApplicationRecord
   end
 
   def subscription(webhook_url)
-    @subscription ||= OStatus2::Subscription.new(self.remote_url, secret: self.secret, token: self.verify_token, webhook: webhook_url, hub: self.hub_url)
+    OStatus2::Subscription.new(self.remote_url, secret: self.secret, token: self.verify_token, webhook: webhook_url, hub: self.hub_url)
   end
 
   def ping!(atom_url, hubs)
index 5bc056a5657f39046f4f7d65e86d3ff5e4d8d35a..bdfa2e458908fe9253baf20e9a4c432224ba8b75 100644 (file)
@@ -12,7 +12,11 @@ namespace :mastodon do
     desc 'Unsubscribes from PuSH updates of feeds nobody follows locally'
     task clear: :environment do
       Account.remote.without_followers.find_each do |a|
+        Rails.logger.debug "PuSH unsubscribing from #{a.acct}"
         a.subscription('').unsubscribe
+      rescue HTTP::Error, OpenSSL::SSL::SSLError
+        Rails.logger.debug "PuSH unsubscribing from #{a.acct} failed due to an HTTP or SSL error"
+      ensure
         a.update!(verify_token: '', secret: '', subscription_expires_at: nil)
       end
     end
@@ -20,6 +24,7 @@ namespace :mastodon do
     desc 'Re-subscribes to soon expiring PuSH subscriptions'
     task refresh: :environment do
       Account.expiring(1.day.from_now).find_each do |a|
+        Rails.logger.debug "PuSH re-subscribing to #{a.acct}"
         SubscribeService.new.(a)
       end
     end