From bbd468873e01e40d6c81c90aec9ce76c3940ba0c Mon Sep 17 00:00:00 2001
From: mcmlxxix <>
Date: Sun, 5 May 2019 16:51:15 +0000
Subject: [PATCH] log via parent_queue

---
 xtrn/maze/service.js          | 11 ++++++-----
 xtrn/synchronetris/service.js | 29 ++++++++++++++++++++---------
 2 files changed, 26 insertions(+), 14 deletions(-)

diff --git a/xtrn/maze/service.js b/xtrn/maze/service.js
index 9ab279fcc9..2ed94efcc1 100644
--- a/xtrn/maze/service.js
+++ b/xtrn/maze/service.js
@@ -1,6 +1,7 @@
 var root = argv[0];
 js.branch_limit = 0;
 
+load("backgroundlog.js");
 load("json-client.js");
 load("event-timer.js");
 load("funclib.js");
@@ -100,7 +101,7 @@ function handleDisco(update) {
 
 /* delete a game */
 function deleteGame(gameNumber) {
-	log(LOG_WARNING,"removing empty game #" + gameNumber);
+	log(LOG_DEBUG,"removing empty game #" + gameNumber);
 	client.remove(game_id,"games." + gameNumber,2);
 	if(data.timers[gameNumber])
 		data.timers[gameNumber].abort = true;
@@ -109,7 +110,7 @@ function deleteGame(gameNumber) {
 
 /* delete a player */
 function deletePlayer(gameNumber,playerName) {
-	log(LOG_WARNING,"removing player from game " + gameNumber);
+	log(LOG_DEBUG,"removing player from game " + gameNumber);
 	client.remove(game_id,"games." + gameNumber + ".players." + playerName,2)
 	delete data.games[gameNumber].players[playerName];
 }
@@ -170,7 +171,7 @@ function getReady(game) {
 function startGame(game) {
 	/* verify that the game is still ready */
 	if(game.status == status.STARTING) {
-		log("starting race: " + game.gameNumber);
+		log(LOG_DEBUG,"starting race: " + game.gameNumber);
 		client.lock("mazerace","games." + game.gameNumber + ".status",2);
 		game.status = status.RACING;
 		createMaze(game);
@@ -229,7 +230,7 @@ function init() {
 
 /* main loop */
 function main() {
-	while(client.socket.is_connected && !js.terminated && !parent_queue.poll()) {
+	while(!js.terminated && !parent_queue.poll()) {
 		if(client.socket.poll(.1))
 			client.cycle();
 		timer.cycle();
@@ -248,4 +249,4 @@ function Race(gameNumber,players,damage,fog,maze,start,finish) {
 }
 
 init();
-main();
+main();
\ No newline at end of file
diff --git a/xtrn/synchronetris/service.js b/xtrn/synchronetris/service.js
index a11d0340d5..7e5ee45caa 100644
--- a/xtrn/synchronetris/service.js
+++ b/xtrn/synchronetris/service.js
@@ -1,5 +1,15 @@
 var root = argv[0];
+if(!file_exists(root + "server.ini")) {
+	throw("server initialization file missing");
+}
+/* load server connection information from server.ini */
+var server_file = new File(root + "server.ini");
+server_file.open('r',true);
+var serverAddr=server_file.iniGetValue(null,"host");
+var serverPort=server_file.iniGetValue(null,"port");
+server_file.close();
 
+load("backgroundlog.js");
 load("json-client.js");
 load("event-timer.js");
 load("funclib.js");
@@ -7,12 +17,12 @@ load("sbbsdefs.js");
 
 var game_id = "synchronetris";
 var timer = new Timer();
-var client = new JSONClient("localhost",10088);
+var client = new JSONClient(serverAddr,serverPort);
 var settings = loadSettings();
 
 var data = { 
-	games:client.read(game_id,"games",1),
-	players:client.read(game_id,"players",1),
+	players:{},
+	games:{},
 	timers:{}
 };
 
@@ -88,7 +98,7 @@ function handleDisco(subscription) {
 
 /* delete a game */
 function deleteGame(gameNumber) {
-	log(LOG_WARNING,"removing empty game #" + gameNumber);
+	log(LOG_DEBUG,"removing empty game #" + gameNumber);
 	client.remove(game_id,"games." + gameNumber,2);
 	if(data.timers[gameNumber])
 		data.timers[gameNumber].abort = true;
@@ -97,7 +107,7 @@ function deleteGame(gameNumber) {
 
 /* delete a player */
 function deletePlayer(gameNumber,playerName) {
-	log(LOG_WARNING,"removing player from game " + gameNumber);
+	log(LOG_DEBUG,"removing player from game " + gameNumber);
 	client.remove(game_id,"games." + gameNumber + ".players." + playerName,2)
 	delete data.games[gameNumber].players[playerName];
 }
@@ -218,14 +228,15 @@ function init() {
 	client.subscribe(game_id,"games");
 	client.subscribe(game_id,"players");
 	client.write(game_id,"settings",settings,2);
+	client.write(game_id,"games",{},2);
 	client.callback = processUpdate;
-	if(!data.games)
-		data.games = {};
+	data.players=client.read(game_id,"players",1);
 	if(!data.players)
 		data.players = {};
 	log(LOG_INFO,"Synchronetris background service initialized");
 }
 
+/* load game settings */
 function loadSettings() {
 	var file=new File(root + "synchronetris.ini");
 	file.open('r',true);
@@ -236,7 +247,7 @@ function loadSettings() {
 
 /* main loop */
 function main() {
-	while(client.socket_is_connected && !js.terminated && !parent_queue.poll()) {
+	while(!js.terminated && !parent_queue.poll()) {
 		if(client.socket.poll(.1))
 			client.cycle();
 		timer.cycle();
@@ -244,4 +255,4 @@ function main() {
 }
 
 init();
-main();
+main();
\ No newline at end of file
-- 
GitLab