|
|
@ -389,23 +389,27 @@ void HttpConnection::respondCommand(QString command) |
|
|
|
QByteArray torrentfile = parser.torrent(); |
|
|
|
QByteArray torrentfile = parser.torrent(); |
|
|
|
// Get a unique filename
|
|
|
|
// Get a unique filename
|
|
|
|
QString filePath; |
|
|
|
QString filePath; |
|
|
|
QTemporaryFile tmpfile; |
|
|
|
QTemporaryFile *tmpfile = new QTemporaryFile; |
|
|
|
tmpfile.setAutoRemove(false); |
|
|
|
tmpfile->setAutoRemove(false); |
|
|
|
if (tmpfile.open()) { |
|
|
|
if (tmpfile->open()) { |
|
|
|
filePath = tmpfile.fileName(); |
|
|
|
filePath = tmpfile->fileName(); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
std::cerr << "I/O Error: Could not create temporary file" << std::endl; |
|
|
|
std::cerr << "I/O Error: Could not create temporary file" << std::endl; |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
tmpfile.close(); |
|
|
|
tmpfile->close(); |
|
|
|
// Now temporary file is created but closed so that it can be used.
|
|
|
|
// Now temporary file is created but closed so that it can be used.
|
|
|
|
// write torrent to temporary file
|
|
|
|
// write torrent to temporary file
|
|
|
|
QFile torrent(filePath); |
|
|
|
QFile torrent(filePath); |
|
|
|
if(torrent.open(QIODevice::WriteOnly)) { |
|
|
|
if(torrent.open(QIODevice::WriteOnly)) { |
|
|
|
torrent.write(torrentfile); |
|
|
|
torrent.write(torrentfile); |
|
|
|
torrent.close(); |
|
|
|
torrent.close(); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
std::cerr << "I/O Error: Could not create temporary file" << std::endl; |
|
|
|
|
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
emit torrentReadyToBeDownloaded(filePath, false, QString(), false); |
|
|
|
emit torrentReadyToBeDownloaded(filePath, false, QString(), false); |
|
|
|
|
|
|
|
delete tmpfile; |
|
|
|
// Prepare response
|
|
|
|
// Prepare response
|
|
|
|
generator.setStatusLine(200, "OK"); |
|
|
|
generator.setStatusLine(200, "OK"); |
|
|
|
generator.setContentTypeByExt("html"); |
|
|
|
generator.setContentTypeByExt("html"); |
|
|
|