Skip to content

Commit 9f6c840

Browse files
committed
Add send_bad_request().
1 parent a505365 commit 9f6c840

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

include/bitcoin/network/protocols/protocol_http.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class BCT_API protocol_http
7979
/// Senders.
8080
virtual void send_ok(const http::request& request={}) NOEXCEPT;
8181
virtual void send_bad_host(const http::request& request={}) NOEXCEPT;
82+
virtual void send_bad_request(const http::request& request={}) NOEXCEPT;
8283
virtual void send_not_found(const http::request& request={}) NOEXCEPT;
8384
virtual void send_not_acceptable(const http::request& request={}) NOEXCEPT;
8485
virtual void send_forbidden(const http::request& request={}) NOEXCEPT;

src/protocols/protocol_http.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,19 @@ void protocol_http::send_forbidden(const request& request) NOEXCEPT
245245
SEND(std::move(out), handle_complete, _1, error::forbidden);
246246
}
247247

248+
// Closes channel.
249+
void protocol_http::send_bad_request(const request& request) NOEXCEPT
250+
{
251+
BC_ASSERT(stranded());
252+
const auto code = status::bad_request;
253+
const auto media = to_media_type(request[field::accept]);
254+
response out{ code, request.version() };
255+
add_common_headers(out, request, true);
256+
out.body() = string_status(code, out.reason(), media);
257+
out.prepare_payload();
258+
SEND(std::move(out), handle_complete, _1, error::bad_request);
259+
}
260+
248261
// Closes channel.
249262
void protocol_http::send_bad_host(const request& request) NOEXCEPT
250263
{

0 commit comments

Comments
 (0)