diff options
author | Newe <speedy.wolfy@outlook.com> | 2021-05-25 23:35:24 +0200 |
---|---|---|
committer | Newe <speedy.wolfy@outlook.com> | 2021-05-25 23:35:24 +0200 |
commit | e04c5bf1380760a3a48bd65e8e8ffe4dd651a2d4 (patch) | |
tree | 353faf7f1016fb3ce80568e94fd8525f36d67970 | |
parent | [edit] Ignore event if emited by a vServer (diff) | |
download | server-e04c5bf1380760a3a48bd65e8e8ffe4dd651a2d4.tar.xz |
[add] Udp request handler mockup
-rw-r--r-- | src/mongoStub.cpp | 54 | ||||
-rw-r--r-- | src/mongoStub.hpp | 9 |
2 files changed, 25 insertions, 38 deletions
diff --git a/src/mongoStub.cpp b/src/mongoStub.cpp index 03744bd4..ccd2abda 100644 --- a/src/mongoStub.cpp +++ b/src/mongoStub.cpp @@ -32,65 +32,53 @@ std::vector<mongoStub::mongoMessage> mongoStub::getNewMessages( if (event["operationType"].get_utf8().value.to_string() != "insert") { continue; } - std::string evNameTmp = - event["fullDocument"]["event"].get_utf8().value.to_string(); - if(evNameTmp.substr(0, 7)=="VSERVER"){ continue; } //Ignore the event if it's been emited by a voice server + std::string evName = event["fullDocument"]["event"].get_utf8().value.to_string(); - if (evNameTmp == "UDP_CONNECTION") { - handleUdpRequest(); + if(evName.substr(0, 7)=="VSERVER"){ continue; } //Ignore the event if it's been emited by a voice server - } else if (evNameTmp == "VOICE_REQUEST") { + if (evName == "UDP_CONNECTION") { + handleUdpRequest( + event["fullDocument"]["data"]["d"]["address"].get_utf8().value.to_string(), + event["fullDocument"]["data"]["d"]["port"].get_int32().value, + event["fullDocument"]["data"]["d"]["mode"].get_utf8().value.to_string() + ); + + } else if (evName == "VOICE_REQUEST") { //TODO continue; } - returnValue.eventName = evNameTmp; + returnValue.eventName = evName; retVec.push_back(returnValue); } return retVec; } -//------- ABOVE THIS LINE IS COPY & PASTE HAVEN ------- -void mongoStub::handleUdpRequest() { + +void mongoStub::handleUdpRequest(std::string address, int port, std::string mode) { using bsoncxx::builder::basic::kvp; using bsoncxx::builder::basic::sub_array; using bsoncxx::builder::basic::sub_document; auto builder = bsoncxx::builder::basic::document{}; + //Handle UDP socket stuff (later tho) + builder.append(kvp("event", "VSERVER_UDP_RESPONSE")); builder.append(kvp("op", "4")); builder.append(kvp("d", [](sub_document subdoc) { - subdoc.append(kvp("mode", "CRYPT_MODE")), - subdoc.append(kvp("secret_key", [](sub_array subarr) { - subarr.append(1, 2, 3, 5); // HOW DO I GEN A SKEY? - })); - })); + subdoc.append(kvp("mode", "CRYPT_MODE")), + subdoc.append(kvp("secret_key", [](sub_array subarr) { + subarr.append(1, 2, 3, 5); // HOW DO I GEN A SKEY? + })); + })); bsoncxx::stdx::optional<mongocxx::result::insert_one> r= col.insert_one(builder.view()); - std::cout << "Insert"<< std::endl; } void mongoStub::handleVoiceRequest() { - using bsoncxx::builder::basic::kvp; - using bsoncxx::builder::basic::sub_array; - using bsoncxx::builder::basic::sub_document; - - auto builder = bsoncxx::builder::basic::document{}; - - builder.append(kvp("event", "VSERVER_UDP_RESPONSE")); - builder.append(kvp("op", "4")); - builder.append(kvp("d", [](sub_document subdoc) { - subdoc.append(kvp("mode", "CRYPT_MODE")), - subdoc.append(kvp("secret_key", [](sub_array subarr) { - subarr.append(1, 2, 3, 5); // HOW DO I GEN A SKEY? - })); - })); - - - bsoncxx::stdx::optional<mongocxx::result::insert_one> r= col.insert_one(builder.view()); - std::cout << "Insert"<< std::endl; + //Is this really needed? idk } \ No newline at end of file diff --git a/src/mongoStub.hpp b/src/mongoStub.hpp index 18b899ae..2809142f 100644 --- a/src/mongoStub.hpp +++ b/src/mongoStub.hpp @@ -23,10 +23,6 @@ class mongoStub{ std::vector<mongoMessage> getNewMessages(mongocxx::change_stream* colCs); - void handleUdpRequest(); - - void handleVoiceRequest(); - mongocxx::collection getCol() const { return col; } @@ -36,7 +32,10 @@ class mongoStub{ mongocxx::client client{mongocxx::uri{}}; mongocxx::database db; mongocxx::collection col; - mongocxx::change_stream* colCs = nullptr; + mongocxx::change_stream* colCs = nullptr; + + void handleUdpRequest(std::string address, int port, std::string mode); + void handleVoiceRequest(); }; #endif |