summary refs log tree commit diff
diff options
context:
space:
mode:
authorNewe <speedy.wolfy@outlook.com>2021-05-25 23:35:24 +0200
committerNewe <speedy.wolfy@outlook.com>2021-05-25 23:35:24 +0200
commite04c5bf1380760a3a48bd65e8e8ffe4dd651a2d4 (patch)
tree353faf7f1016fb3ce80568e94fd8525f36d67970
parent[edit] Ignore event if emited by a vServer (diff)
downloadserver-e04c5bf1380760a3a48bd65e8e8ffe4dd651a2d4.tar.xz
[add] Udp request handler mockup
-rw-r--r--src/mongoStub.cpp54
-rw-r--r--src/mongoStub.hpp9
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