aboutsummaryrefslogtreecommitdiff
path: root/backends/networking/sdl_net/reader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/networking/sdl_net/reader.cpp')
-rw-r--r--backends/networking/sdl_net/reader.cpp109
1 files changed, 74 insertions, 35 deletions
diff --git a/backends/networking/sdl_net/reader.cpp b/backends/networking/sdl_net/reader.cpp
index 66efeec8cc..828f583003 100644
--- a/backends/networking/sdl_net/reader.cpp
+++ b/backends/networking/sdl_net/reader.cpp
@@ -51,7 +51,8 @@ Reader::~Reader() {
}
Reader &Reader::operator=(Reader &r) {
- if (this == &r) return *this;
+ if (this == &r)
+ return *this;
cleanup();
_state = r._state;
@@ -83,7 +84,8 @@ Reader &Reader::operator=(Reader &r) {
void Reader::cleanup() {
//_content is not to be freed, it's not owned by Reader
- if (_window != nullptr) freeWindow();
+ if (_window != nullptr)
+ freeWindow();
}
bool Reader::readAndHandleFirstHeaders() {
@@ -94,7 +96,8 @@ bool Reader::readAndHandleFirstHeaders() {
}
while (readOneByteInString(_headers, boundary)) {
- if (!bytesLeft()) return false;
+ if (!bytesLeft())
+ return false;
}
handleFirstHeaders(_headers);
@@ -108,7 +111,8 @@ bool Reader::readBlockHeadersIntoStream(Common::WriteStream *stream) {
if (_window == nullptr) makeWindow(boundary.size());
while (readOneByteInStream(stream, boundary)) {
- if (!bytesLeft()) return false;
+ if (!bytesLeft())
+ return false;
}
if (stream) stream->flush();
@@ -124,7 +128,8 @@ void readFromThatUntilLineEnd(const char *cstr, Common::String needle, Common::S
if (position) {
char c;
for (const char *i = position + needle.size(); c = *i, c != 0; ++i) {
- if (c == '\n' || c == '\r') break;
+ if (c == '\n' || c == '\r')
+ break;
result += c;
}
}
@@ -166,14 +171,19 @@ void Reader::parseFirstLine(const Common::String &headers) {
//"<METHOD> <path> HTTP/<VERSION>\r\n"
Common::String method, path, http, buf;
uint32 length = position - cstr;
- if (headersSize > length) headersSize = length;
+ if (headersSize > length)
+ headersSize = length;
for (uint32 i = 0; i < headersSize; ++i) {
- if (headers[i] != ' ') buf += headers[i];
+ if (headers[i] != ' ')
+ buf += headers[i];
if (headers[i] == ' ' || i == headersSize - 1) {
- if (method == "") method = buf;
- else if (path == "") path = buf;
- else if (http == "") http = buf;
- else {
+ if (method == "") {
+ method = buf;
+ } else if (path == "") {
+ path = buf;
+ } else if (http == "") {
+ http = buf;
+ } else {
bad = true;
break;
}
@@ -182,10 +192,12 @@ void Reader::parseFirstLine(const Common::String &headers) {
}
//check that method is supported
- if (method != "GET" && method != "PUT" && method != "POST") bad = true;
+ if (method != "GET" && method != "PUT" && method != "POST")
+ bad = true;
//check that HTTP/<VERSION> is OK
- if (!http.hasPrefix("HTTP/")) bad = true;
+ if (!http.hasPrefix("HTTP/"))
+ bad = true;
_method = method;
parsePathQueryAndAnchor(path);
@@ -208,12 +220,18 @@ void Reader::parsePathQueryAndAnchor(Common::String path) {
if (path[i] == '?') {
readingPath = false;
readingQuery = true;
- } else _path += path[i];
+ } else {
+ _path += path[i];
+ }
} else if (readingQuery) {
if (path[i] == '#') {
readingQuery = false;
- } else _query += path[i];
- } else _anchor += path[i];
+ } else {
+ _query += path[i];
+ }
+ } else {
+ _anchor += path[i];
+ }
}
parseQueryParameters();
@@ -228,35 +246,48 @@ void Reader::parseQueryParameters() {
if (_query[i] == '=') {
readingKey = false;
value = "";
- } else key += _query[i];
+ } else {
+ key += _query[i];
+ }
} else {
if (_query[i] == '&') {
- if (_queryParameters.contains(key)) warning("Query parameter \"%s\" is already set!", key.c_str());
- else _queryParameters[key] = LocalWebserver::urlDecode(value);
+ if (_queryParameters.contains(key))
+ warning("Query parameter \"%s\" is already set!", key.c_str());
+ else
+ _queryParameters[key] = LocalWebserver::urlDecode(value);
readingKey = true;
key = "";
- } else value += _query[i];
+ } else {
+ value += _query[i];
+ }
}
}
if (!key.empty()) {
- if (_queryParameters.contains(key)) warning("Query parameter \"%s\" is already set!", key.c_str());
- else _queryParameters[key] = LocalWebserver::urlDecode(value);
+ if (_queryParameters.contains(key))
+ warning("Query parameter \"%s\" is already set!", key.c_str());
+ else
+ _queryParameters[key] = LocalWebserver::urlDecode(value);
}
}
bool Reader::readContentIntoStream(Common::WriteStream *stream) {
Common::String boundary = "--" + _boundary;
- if (!_firstBlock) boundary = "\r\n" + boundary;
- if (_boundary.empty()) boundary = "\r\n";
- if (_window == nullptr) makeWindow(boundary.size());
+ if (!_firstBlock)
+ boundary = "\r\n" + boundary;
+ if (_boundary.empty())
+ boundary = "\r\n";
+ if (_window == nullptr)
+ makeWindow(boundary.size());
while (readOneByteInStream(stream, boundary)) {
- if (!bytesLeft()) return false;
+ if (!bytesLeft())
+ return false;
}
_firstBlock = false;
- if (stream) stream->flush();
+ if (stream)
+ stream->flush();
freeWindow();
_state = RS_READING_HEADERS;
@@ -280,14 +311,16 @@ void Reader::freeWindow() {
bool Reader::readOneByteInStream(Common::WriteStream *stream, const Common::String &boundary) {
byte b = readOne();
_window[_windowUsed++] = b;
- if (_windowUsed < _windowSize) return true;
+ if (_windowUsed < _windowSize)
+ return true;
//when window is filled, check whether that's the boundary
if (Common::String((char *)_window, _windowSize) == boundary)
return false;
//if not, add the first byte of the window to the string
- if (stream) stream->writeByte(_window[0]);
+ if (stream)
+ stream->writeByte(_window[0]);
for (uint32 i = 1; i < _windowSize; ++i)
_window[i - 1] = _window[i];
--_windowUsed;
@@ -297,7 +330,8 @@ bool Reader::readOneByteInStream(Common::WriteStream *stream, const Common::Stri
bool Reader::readOneByteInString(Common::String &buffer, const Common::String &boundary) {
byte b = readOne();
_window[_windowUsed++] = b;
- if (_windowUsed < _windowSize) return true;
+ if (_windowUsed < _windowSize)
+ return true;
//when window is filled, check whether that's the boundary
if (Common::String((char *)_window, _windowSize) == boundary)
@@ -322,9 +356,11 @@ byte Reader::readOne() {
/// public
bool Reader::readFirstHeaders() {
- if (_state == RS_NONE) _state = RS_READING_HEADERS;
+ if (_state == RS_NONE)
+ _state = RS_READING_HEADERS;
- if (!bytesLeft()) return false;
+ if (!bytesLeft())
+ return false;
if (_state == RS_READING_HEADERS)
return readAndHandleFirstHeaders();
@@ -349,7 +385,8 @@ bool Reader::readBlockHeaders(Common::WriteStream *stream) {
return false;
}
- if (!bytesLeft()) return false;
+ if (!bytesLeft())
+ return false;
return readBlockHeadersIntoStream(stream);
}
@@ -360,7 +397,8 @@ bool Reader::readBlockContent(Common::WriteStream *stream) {
return false;
}
- if (!bytesLeft()) return false;
+ if (!bytesLeft())
+ return false;
if (!readContentIntoStream(stream))
return false;
@@ -369,7 +407,8 @@ bool Reader::readBlockContent(Common::WriteStream *stream) {
Common::String bts;
bts += readOne();
bts += readOne();
- if (bts == "--") _allContentRead = true;
+ if (bts == "--")
+ _allContentRead = true;
else if (bts != "\r\n")
warning("strange bytes: \"%s\"", bts.c_str());
} else {