From fa929a8d5b525869a3cb8cf320ebf51aa8575f52 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Fri, 14 Aug 2020 18:45:03 +0300
Subject: [PATCH] Fix for webservice stream matching

---
 web-service/server/src/index.js | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/web-service/server/src/index.js b/web-service/server/src/index.js
index 13b5e01c6..baddc6e5e 100644
--- a/web-service/server/src/index.js
+++ b/web-service/server/src/index.js
@@ -34,6 +34,8 @@ let peer_uris = {};
 
 let uri_data = {};
 
+let stream_list = {};
+
 let peer_data = [];
 
 let cfg_to_peer = {};
@@ -267,7 +269,8 @@ function checkStreams(peer) {
 					let parsedURI = stringSplitter(streams[i])
 					peer_uris[peer.string_id].push(parsedURI);
 					uri_to_peer[parsedURI] = peer;
-					uri_data[streams[i]] = new RGBDStream(streams[i], peer);
+					uri_data[parsedURI] = new RGBDStream(streams[i], peer);
+					stream_list[streams[i]] = true;
 				}
 			});
 
@@ -331,6 +334,7 @@ app.ws('/', (ws, req) => {
 			for (let i=0; i<puris.length; i++) {
 				console.log("Removing stream: ", puris[i]);
 				delete uri_to_peer[puris[i]];
+				delete stream_list[uri_data[puris[i]].uri];
 				delete uri_data[puris[i]];
 				//p.unbind(pu)
 			}
@@ -358,7 +362,7 @@ app.ws('/', (ws, req) => {
 	});
 
 	p.bind("list_streams", () => {
-		return Object.keys(uri_data);
+		return Object.keys(stream_list);
 	});
 
 	p.bind("list_configurables", () => {
@@ -514,7 +518,8 @@ app.ws('/', (ws, req) => {
 		//uri_to_peer[streams[i]] = peer;
 		peer_uris[p.string_id].push(parsedURI);
 		uri_to_peer[parsedURI] = p;
-		uri_data[uri] = new RGBDStream(uri, p);
+		uri_data[parsedURI] = new RGBDStream(uri, p);
+		stream_list[uri] = true;
 
 		broadcastExcept(p, "add_stream", uri);
 	});
@@ -528,7 +533,9 @@ app.ws('/', (ws, req) => {
 function stringSplitter(uri) {
 	//const url = new Url(uri)
 	//return url.origin;
-	return uri;
+	let ix = uri.indexOf("?");
+	let base_uri = (ix >= 0) ? uri.substring(0, ix) : uri;
+	return base_uri;
 }
 
 console.log("Listening or port 8080");
-- 
GitLab