From a7cb1572f040e4383f24c85bcb678b2e1fb4b39d Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Mon, 7 Jul 2003 21:44:56 +0000 Subject: [PATCH] Created new service option bit: SERVICE_OPT_STATIC_LOOP which loops a static service until the terminated property is set. --- src/sbbs3/services.c | 6 +++++- src/sbbs3/services.h | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c index 957736add6..df4ed65a3a 100644 --- a/src/sbbs3/services.c +++ b/src/sbbs3/services.c @@ -956,7 +956,11 @@ static void js_static_service_thread(void* arg) lprintf("%04d !JavaScript FAILED to compile script (%s)",service->socket,spath); else { JS_SetBranchCallback(js_cx, js_BranchCallback); - JS_ExecuteScript(js_cx, js_glob, js_script, &rval); + + do { + JS_ExecuteScript(js_cx, js_glob, js_script, &rval); + } while(!service->terminated && service->options&SERVICE_OPT_STATIC_LOOP); + JS_DestroyScript(js_cx, js_script); } JS_DestroyContext(js_cx); /* Free Context */ diff --git a/src/sbbs3/services.h b/src/sbbs3/services.h index d18aef4bb1..3c44c1d3ce 100644 --- a/src/sbbs3/services.h +++ b/src/sbbs3/services.h @@ -71,7 +71,8 @@ typedef struct { /* Option bit definitions */ #define SERVICE_OPT_UDP (1<<0) /* UDP Socket */ -#define SERVICE_OPT_STATIC (1<<1) /* Static server (accepts client connectsions) */ +#define SERVICE_OPT_STATIC (1<<1) /* Static service (accepts client connectsions) */ +#define SERVICE_OPT_STATIC_LOOP (1<<2) /* Loop static service until terminated */ #ifdef __cplusplus extern "C" { -- GitLab