@@ -175,6 +175,25 @@ void protocol_http::send_internal_server_error(const code& reason,
175175 SEND (std::move (out), handle_complete, _1, error::internal_server_error);
176176}
177177
178+ // Closes channel.
179+ void protocol_http::send_redirect (const system::wallet::uri& uri,
180+ status status_3xx, const request& request) NOEXCEPT
181+ {
182+ BC_ASSERT (stranded ());
183+ BC_ASSERT (status_3xx != status::not_modified);
184+ BC_ASSERT (300 <= to_value (status_3xx) && to_value (status_3xx) <= 399 );
185+ std::string details{ " from=" };
186+ details += request.target ();
187+ const auto code = status_3xx;
188+ const auto media = to_media_type (request[field::accept]);
189+ response out{ code, request.version () };
190+ add_common_headers (out, request, true );
191+ out.set (field::location, uri.encoded ());
192+ out.body () = string_status (code, out.reason (), media, details);
193+ out.prepare_payload ();
194+ SEND (std::move (out), handle_complete, _1, error::success);
195+ }
196+
178197void protocol_http::send_bad_target (const code& reason,
179198 const request& request) NOEXCEPT
180199{
0 commit comments