From 3d9b8847d21d886886baae483304288139669795 Mon Sep 17 00:00:00 2001
From: abcang <abcang1015@gmail.com>
Date: Thu, 28 Sep 2017 22:04:32 +0900
Subject: [PATCH] Flush body when POST requests (#5128)

---
 app/services/send_interaction_service.rb    | 2 +-
 app/services/subscribe_service.rb           | 2 +-
 app/services/unsubscribe_service.rb         | 2 +-
 app/workers/activitypub/delivery_worker.rb  | 2 +-
 app/workers/pubsubhubbub/delivery_worker.rb | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/services/send_interaction_service.rb b/app/services/send_interaction_service.rb
index c11813abc..af205c9c9 100644
--- a/app/services/send_interaction_service.rb
+++ b/app/services/send_interaction_service.rb
@@ -12,7 +12,7 @@ class SendInteractionService < BaseService
 
     return if !target_account.ostatus? || block_notification?
 
-    delivery = build_request.perform
+    delivery = build_request.perform.flush
 
     raise Mastodon::UnexpectedResponseError, delivery unless delivery.code > 199 && delivery.code < 300
   end
diff --git a/app/services/subscribe_service.rb b/app/services/subscribe_service.rb
index bfa7ff8c8..2d8af0203 100644
--- a/app/services/subscribe_service.rb
+++ b/app/services/subscribe_service.rb
@@ -6,7 +6,7 @@ class SubscribeService < BaseService
 
     @account        = account
     @account.secret = SecureRandom.hex
-    @response       = build_request.perform
+    @response       = build_request.perform.flush
 
     if response_failed_permanently?
       # We're not allowed to subscribe. Fail and move on.
diff --git a/app/services/unsubscribe_service.rb b/app/services/unsubscribe_service.rb
index b99046712..d84a5a530 100644
--- a/app/services/unsubscribe_service.rb
+++ b/app/services/unsubscribe_service.rb
@@ -7,7 +7,7 @@ class UnsubscribeService < BaseService
     @account = account
 
     begin
-      @response = build_request.perform
+      @response = build_request.perform.flush
 
       Rails.logger.debug "PuSH unsubscribe for #{@account.acct} failed: #{@response.status}" unless @response.status.success?
     rescue HTTP::Error, OpenSSL::SSL::SSLError => e
diff --git a/app/workers/activitypub/delivery_worker.rb b/app/workers/activitypub/delivery_worker.rb
index a4e829343..059c32813 100644
--- a/app/workers/activitypub/delivery_worker.rb
+++ b/app/workers/activitypub/delivery_worker.rb
@@ -28,7 +28,7 @@ class ActivityPub::DeliveryWorker
   end
 
   def perform_request
-    @response = build_request.perform
+    @response = build_request.perform.flush
   end
 
   def response_successful?
diff --git a/app/workers/pubsubhubbub/delivery_worker.rb b/app/workers/pubsubhubbub/delivery_worker.rb
index 110b8bf16..c3506727b 100644
--- a/app/workers/pubsubhubbub/delivery_worker.rb
+++ b/app/workers/pubsubhubbub/delivery_worker.rb
@@ -37,7 +37,7 @@ class Pubsubhubbub::DeliveryWorker
   def callback_post_payload
     request = Request.new(:post, subscription.callback_url, body: payload)
     request.add_headers(headers)
-    request.perform
+    request.perform.flush
   end
 
   def blocked_domain?