aboutsummaryrefslogtreecommitdiff
path: root/backends/networking/sdl_net
diff options
context:
space:
mode:
authorAlexander Tkachev2016-07-07 18:32:12 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commit83957c9666fce2e4b536c0974f22fc70f57b119c (patch)
treed92391ff501a8687641e53e9219027bf8803c40c /backends/networking/sdl_net
parentc82ed40fdd95761310855355c7c2a032512afd84 (diff)
downloadscummvm-rg350-83957c9666fce2e4b536c0974f22fc70f57b119c.tar.gz
scummvm-rg350-83957c9666fce2e4b536c0974f22fc70f57b119c.tar.bz2
scummvm-rg350-83957c9666fce2e4b536c0974f22fc70f57b119c.zip
CLOUD: Determine file's name in POST
Diffstat (limited to 'backends/networking/sdl_net')
-rw-r--r--backends/networking/sdl_net/reader.cpp19
-rw-r--r--backends/networking/sdl_net/reader.h3
2 files changed, 19 insertions, 3 deletions
diff --git a/backends/networking/sdl_net/reader.cpp b/backends/networking/sdl_net/reader.cpp
index 452520abfe..025f53492a 100644
--- a/backends/networking/sdl_net/reader.cpp
+++ b/backends/networking/sdl_net/reader.cpp
@@ -42,6 +42,7 @@ Reader::Reader() {
_contentLength = 0;
_availableBytes = 0;
+ _isFileField = false;
_isBadRequest = false;
}
@@ -143,7 +144,21 @@ void Reader::handleHeaders(Common::String headers) {
debug("FIELD NAME: >>%s<<", _currentFieldName.c_str());
//find out field type
- //_fieldIsFile = true;
+ _currentFileName = "";
+ readFromThatUntilLineEnd(headers.c_str(), "filename=\"", _currentFileName);
+ for (uint32 i = 0; i < _currentFileName.size(); ++i)
+ if (_currentFileName[i] == '\"') {
+ _currentFileName.erase(i);
+ break;
+ }
+
+ if (!_currentFileName.empty()) {
+ _isFileField = true;
+ _queryParameters[_currentFieldName] = _currentFileName;
+ debug("FILE NAME: >>%s<<", _currentFileName.c_str());
+ } else {
+ _isFileField = false;
+ }
}
}
@@ -270,7 +285,7 @@ bool Reader::readContent() {
}
void Reader::handleFileContent(Common::String filename) {
- _attachedFiles[_currentFieldName] = filename;
+ _attachedFiles[_currentFileName] = filename;
}
void Reader::handleValueContent(Common::String value) {
diff --git a/backends/networking/sdl_net/reader.h b/backends/networking/sdl_net/reader.h
index e5ef523ee9..74fcd4320f 100644
--- a/backends/networking/sdl_net/reader.h
+++ b/backends/networking/sdl_net/reader.h
@@ -54,7 +54,8 @@ class Reader {
uint32 _contentLength;
Common::String _boundary;
uint32 _availableBytes;
- Common::String _currentFieldName;
+ Common::String _currentFieldName, _currentFileName;
+ bool _isFileField;
bool _isBadRequest;
bool readHeaders(); //true when ended reading