Skip to content

Commit

Permalink
Merge pull request #4 from ChairChandler/develop
Browse files Browse the repository at this point in the history
Fixed splitted message receiving.
  • Loading branch information
ChairChandler committed Jan 8, 2020
2 parents aa2b4fe + f7d26a6 commit 535bc3c
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 11 deletions.
2 changes: 1 addition & 1 deletion FTP-Server.pro.user
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.0, 2019-12-21T22:19:40. -->
<!-- Written by QtCreator 4.11.0, 2020-01-08T13:11:32. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
Expand Down
29 changes: 19 additions & 10 deletions src/controller/ftpconnectionworker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,18 +74,27 @@ void FTPconnectionWorker::setTimeoutMs(int value) {
}

QString FTPconnectionWorker::receiveCommandString() {
QByteArray array(1024, '\0');
if(bsdSocket->read(clientCommandChannel, array.data(), static_cast<size_t>(array.size())) == -1) {
throw XmlException("server").
key("phase").value("run").
key("status").value("error").
key("socket").value(QString::number(clientCommandChannel)).
key("what").value("Connection closed during receiving cmd.").
end();
}
QByteArray array(32, '\0');
QString cmd;

do{
ssize_t receivedDataSize = bsdSocket->read(clientCommandChannel, array.data(), static_cast<size_t>(array.size()));
if(receivedDataSize <= 0) {
throw XmlException("server").
key("phase").value("run").
key("status").value("error").
key("socket").value(QString::number(clientCommandChannel)).
key("what").value("Connection closed during receiving cmd.").
end();
} else {
for(int i=0; i<receivedDataSize; i++) {
cmd += array.at(i);
}
}
}while(!array.contains("\r\n"));

//clients like FileZilla append this string to the command
return QString(array).remove("\r\n");
return cmd.replace("\r\n", "\0\0");
}

AbstractFTPservice* FTPconnectionWorker::createService(const QString &cmd) {
Expand Down

0 comments on commit 535bc3c

Please sign in to comment.