From 0bf18f80f48aa812b09242534a55a5a0296ab309 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 30 Sep 2003 01:59:49 +0000
Subject: [PATCH] Fixed calculation of fractional (floating point) time-out
 argument values for global socket_select() and Socket.poll() methods.

---
 src/sbbs3/js_global.c | 2 +-
 src/sbbs3/js_socket.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index 09710d28df..1d5e5b189a 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -1421,7 +1421,7 @@ js_socket_select(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *r
 		else if(JSVAL_IS_DOUBLE(argv[argn])) {
 			JS_ValueToNumber(cx,argv[argn],&jsd);
 			tv.tv_sec = (int)jsd;
-			tv.tv_usec = (int)(jsd*1000.0);
+			tv.tv_usec = (int)(jsd*1000000.0)%1000000;
 		}
 	}
 
diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c
index 50b53c18ec..16b933a3a0 100644
--- a/src/sbbs3/js_socket.c
+++ b/src/sbbs3/js_socket.c
@@ -944,7 +944,7 @@ js_poll(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 		else if(JSVAL_IS_DOUBLE(argv[argn])) {
 			JS_ValueToNumber(cx,argv[argn],&jsd);
 			tv.tv_sec = (int)jsd;
-			tv.tv_usec = (int)(jsd*1000.0);
+			tv.tv_usec = (int)(jsd*1000000.0)%1000000;
 		}
 	}
 
-- 
GitLab