mirror of
https://github.com/NohamR/xovi-rmfakecloud.git
synced 2026-05-25 04:27:08 +00:00
Code
This commit is contained in:
45
main.cpp
Normal file
45
main.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkRequest>
|
||||
#include <QNetworkReply>
|
||||
#include <QDebug>
|
||||
#include <QIODevice>
|
||||
#include "xovi.h"
|
||||
|
||||
extern "C" QNetworkReply* override$_ZN21QNetworkAccessManager13createRequestENS_9OperationERK15QNetworkRequestP9QIODevice(
|
||||
QNetworkAccessManager* self,
|
||||
QNetworkAccessManager::Operation op,
|
||||
const QNetworkRequest& req,
|
||||
QIODevice* outgoingData
|
||||
) {
|
||||
const char* host = std::getenv("RMFAKECLOUD_HOST");
|
||||
|
||||
// set new url
|
||||
QUrl newUrl = req.url();
|
||||
newUrl.setHost(QString(host));
|
||||
|
||||
// create a new request, so we don't have to modify the original request
|
||||
QNetworkRequest newReq(req);
|
||||
newReq.setUrl(newUrl);
|
||||
|
||||
// get original function signature
|
||||
using CreateFn = QNetworkReply*(*)(QNetworkAccessManager*,
|
||||
QNetworkAccessManager::Operation,
|
||||
const QNetworkRequest&,
|
||||
QIODevice*);
|
||||
CreateFn orig = reinterpret_cast<CreateFn>(
|
||||
$_ZN21QNetworkAccessManager13createRequestENS_9OperationERK15QNetworkRequestP9QIODevice
|
||||
);
|
||||
|
||||
// call original function, and return the result
|
||||
return orig(self, op, newReq, outgoingData);
|
||||
}
|
||||
|
||||
extern "C" void _xovi_construct() {
|
||||
const char* host = std::getenv("RMFAKECLOUD_HOST");
|
||||
if (host == NULL) {
|
||||
qCritical() << "[rmfakecloud] Environment variable \"RMFAKECLOUD_HOST\" not set!";
|
||||
abort();
|
||||
}
|
||||
|
||||
qDebug() << "Loading rmfakecloud by Tiebe. Using host " <<
|
||||
}
|
||||
Reference in New Issue
Block a user