Skip to content

Commit

Permalink
clang-format
Browse files Browse the repository at this point in the history
  • Loading branch information
snej committed Sep 11, 2024
1 parent 0b9438d commit 7fc76e8
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 29 deletions.
2 changes: 1 addition & 1 deletion Networking/HTTP/Headers.cc
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ namespace litecore::websocket {

Headers::Headers(Dict dict) { readFrom(dict); }

Headers::Headers(Headers&& other) noexcept = default;
Headers::Headers(Headers&& other) noexcept = default;
Headers& Headers::operator=(Headers&& other) noexcept = default;

Headers::Headers(const Headers& other) { *this = other; }
Expand Down
17 changes: 7 additions & 10 deletions REST/RESTListener+Changes.cc
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ namespace litecore::REST {
}
}

RequestResponse&& extractRequest() && {return std::move(_rq);}
RequestResponse&& extractRequest() && { return std::move(_rq); }

void writeDescription(fleece::JSONEncoder& json) override {
Task::writeDescription(json);
Expand All @@ -127,7 +127,7 @@ namespace litecore::REST {
_rq.finish();
}
c4log(ListenerLog, kC4LogInfo, "End of socket connection from %s (%s)", _rq.peerAddress().c_str(),
(_stopMessage ? _stopMessage : ""));
(_stopMessage ? _stopMessage : ""));
}
unregisterTask(); // this will probably delete me
}
Expand Down Expand Up @@ -231,9 +231,8 @@ namespace litecore::REST {
}
}
if ( _feed == continuous ) _rq.flush();
if (_feed == longpoll && _sent > 0)
_stopMessage = "longpoll done";
else if (_rq.socketError())
if ( _feed == longpoll && _sent > 0 ) _stopMessage = "longpoll done";
else if ( _rq.socketError() )
_stopMessage = "peer closed";
}
if ( _stopMessage ) { stop(); }
Expand All @@ -247,8 +246,7 @@ namespace litecore::REST {
_rq.write("\n");
_rq.flush();
_heartbeatTimer->fireAfter(interval);
if (_rq.socketError())
_stopMessage = "peer closed";
if ( _rq.socketError() ) _stopMessage = "peer closed";
}
if ( _stopMessage ) { stop(); }
}
Expand All @@ -271,14 +269,13 @@ namespace litecore::REST {
unique_ptr<C4CollectionObserver> _observer; // Observer, used in async modes
optional<actor::Timer> _heartbeatTimer; // Timer for sending regular newlines
optional<actor::Timer> _timeoutTimer; // Timer for closing connection
const char* _stopMessage = nullptr;
const char* _stopMessage = nullptr;
};

void RESTListener::handleChanges(RequestResponse& rq, C4Collection* coll) {
// Note: This moves the RequestResponse from `rq` to the ChangesTask's `_rq`.
// That means the Changestask takes ownership of the socket from the calling Server.
auto task = make_retained<ChangesTask>(this, std::move(rq));
if (task->runImmediate(coll))
rq = std::move(*task).extractRequest();
if ( task->runImmediate(coll) ) rq = std::move(*task).extractRequest();
}
} // namespace litecore::REST
7 changes: 3 additions & 4 deletions REST/Request.cc
Original file line number Diff line number Diff line change
Expand Up @@ -126,17 +126,16 @@ namespace litecore::REST {

#pragma mark - REQUESTRESPONSE:

RequestResponse::RequestResponse(RequestResponse&&) noexcept = default;
RequestResponse::RequestResponse(RequestResponse&&) noexcept = default;
RequestResponse& RequestResponse::operator=(RequestResponse&&) noexcept = default;
RequestResponse::~RequestResponse() = default;
RequestResponse::~RequestResponse() = default;

RequestResponse::RequestResponse(Server* server, std::unique_ptr<net::ResponderSocket> socket)
: _server(server), _socket(std::move(socket)) {
auto request = _socket->readToDelimiter("\r\n\r\n"_sl);
if ( !request ) {
_error = _socket->error();
if ( _error == C4Error{WebSocketDomain, 400} )
_error = C4Error{NetworkDomain, kC4NetErrConnectionReset};
if ( _error == C4Error{WebSocketDomain, 400} ) _error = C4Error{NetworkDomain, kC4NetErrConnectionReset};
return;
}
if ( !readFromHTTP(request) ) {
Expand Down
25 changes: 11 additions & 14 deletions REST/Server.cc
Original file line number Diff line number Diff line change
Expand Up @@ -174,27 +174,27 @@ namespace litecore::REST {
return;
}

string peer = responder->peerAddress();
bool loggedConnection = false;
string peer = responder->peerAddress();
bool loggedConnection = false;
if ( c4log_willLog(ListenerLog, kC4LogVerbose) ) {
if (auto cert = responder->peerTLSCertificate()) {
if ( auto cert = responder->peerTLSCertificate() ) {
c4log(ListenerLog, kC4LogVerbose, "Accepted connection from %s with TLS cert %s",
responder->peerAddress().c_str(), cert->subjectPublicKey()->digestString().c_str());
loggedConnection = true;
}
}
if ( !loggedConnection )
c4log(ListenerLog, kC4LogInfo, "Accepted connection from %s", peer.c_str());
if ( !loggedConnection ) c4log(ListenerLog, kC4LogInfo, "Accepted connection from %s", peer.c_str());

// Now read one or more requests and write responses:
while ( true ) {
// Read HTTP request from socket:
RequestResponse rq(this, std::move(responder));
if ( C4Error err = rq.socketError() ) {
if (err == C4Error{NetworkDomain, kC4NetErrConnectionReset}) {
c4log(ListenerLog, kC4LogInfo, "End of socket connection from %s (closed by peer)", peer.c_str());
if ( err == C4Error{NetworkDomain, kC4NetErrConnectionReset} ) {
c4log(ListenerLog, kC4LogInfo, "End of socket connection from %s (closed by peer)", peer.c_str());
} else {
c4log(ListenerLog, kC4LogError, "Error reading HTTP request from %s: %s", peer.c_str(), err.description().c_str());
c4log(ListenerLog, kC4LogError, "Error reading HTTP request from %s: %s", peer.c_str(),
err.description().c_str());
}
break;
}
Expand All @@ -206,18 +206,15 @@ namespace litecore::REST {

// Handle it!
dispatchRequest(rq);
c4log(RESTLog, kC4LogInfo, "%s\t%s\t%s\t-> %d", peer.c_str(), MethodName(method), uri.c_str(),
rq.status());
c4log(RESTLog, kC4LogInfo, "%s\t%s\t%s\t-> %d", peer.c_str(), MethodName(method), uri.c_str(), rq.status());

// Either close, or take back the socket:
if ( !keepAlive || rq.responseHeaders()["Connection"] == "close" ) {
c4log(ListenerLog, kC4LogInfo, "End of socket connection from %s (Connection:close)", peer.c_str());
c4log(ListenerLog, kC4LogInfo, "End of socket connection from %s (Connection:close)", peer.c_str());
break;
}
responder = rq.extractSocket(); // Get the socket back, unless it's been given to a WebSocket
if ( !responder ) {
break;
}
if ( !responder ) { break; }
}
}

Expand Down

0 comments on commit 7fc76e8

Please sign in to comment.