From 5772f0317ab690b37ee55587dd80ae6f2ad31e0c Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 4 Jul 2003 10:07:05 +0000
Subject: [PATCH] Created global reset_loop() method to defeat infinite-loop
 detection mechanism. print() is now an alias for writeln().

---
 src/sbbs3/services.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index 4f7b497b2e..957736add6 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -445,12 +445,27 @@ js_logout(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	return(JS_TRUE);
 }
 
+static JSBool
+js_reset_loop(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+	service_client_t* client;
+
+	if((client=(service_client_t*)JS_GetContextPrivate(cx))==NULL)
+		return(JS_FALSE);
+
+	client->js_loop=0;
+	*rval = JSVAL_VOID;
+	return(JS_TRUE);
+}
+
 static JSFunctionSpec js_global_functions[] = {
-	{"write",			js_write,			1},		/* write to client socket */
-	{"writeln",			js_writeln,			1},		/* write line to client socket */
-	{"log",				js_log,				1},		/* Log a string */
+	{"write",			js_write,			0},		/* write to client socket */
+	{"writeln",			js_writeln,			0},		/* write line to client socket */
+	{"print",			js_writeln,			0},		/* write line to client socket */
+	{"log",				js_log,				0},		/* Log a string */
  	{"login",			js_login,			2},		/* Login specified username and password */
 	{"logout",			js_logout,			0},		/* Logout user */
+	{"reset_loop",		js_reset_loop,		0},		/* reset loop counter */
     {0}
 };
 
-- 
GitLab