From 5cfc50e5f1a12fd7900e7603dc9a62a66e7c0449 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 8 May 2003 04:03:32 +0000
Subject: [PATCH] New is_writeable property (read-only),TRUE if/when the socket
 writeable.

---
 src/sbbs3/js_socket.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c
index 64746613b2..0953973c5d 100644
--- a/src/sbbs3/js_socket.c
+++ b/src/sbbs3/js_socket.c
@@ -969,6 +969,7 @@ js_poll(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 enum {
 	 SOCK_PROP_LAST_ERROR
 	,SOCK_PROP_IS_CONNECTED
+	,SOCK_PROP_IS_WRITEABLE
 	,SOCK_PROP_DATA_WAITING
 	,SOCK_PROP_NREAD
 	,SOCK_PROP_DEBUG
@@ -1043,6 +1044,7 @@ static JSBool js_socket_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
     jsint       tiny;
 	ulong		cnt;
 	BOOL		rd;
+	BOOL		wr;
 	private_t*	p;
 	socklen_t	addr_len;
 	SOCKADDR_IN	addr;
@@ -1069,6 +1071,10 @@ static JSBool js_socket_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
 			else
 				*vp = BOOLEAN_TO_JSVAL(socket_check(p->sock,NULL,NULL,0));
 			break;
+		case SOCK_PROP_IS_WRITEABLE:
+			socket_check(p->sock,NULL,&wr,0);
+			*vp = BOOLEAN_TO_JSVAL(wr);
+			break;
 		case SOCK_PROP_DATA_WAITING:
 			socket_check(p->sock,&rd,NULL,0);
 			*vp = BOOLEAN_TO_JSVAL(rd);
@@ -1147,6 +1153,7 @@ static struct JSPropertySpec js_socket_properties[] = {
 	{	"error"				,SOCK_PROP_LAST_ERROR	,SOCK_PROP_FLAGS,	NULL,NULL},
 	{	"last_error"		,SOCK_PROP_LAST_ERROR	,JSPROP_READONLY,	NULL,NULL},	/* alias */
 	{	"is_connected"		,SOCK_PROP_IS_CONNECTED	,SOCK_PROP_FLAGS,	NULL,NULL},
+	{	"is_writeable"		,SOCK_PROP_IS_WRITEABLE	,SOCK_PROP_FLAGS,	NULL,NULL},
 	{	"data_waiting"		,SOCK_PROP_DATA_WAITING	,SOCK_PROP_FLAGS,	NULL,NULL},
 	{	"nread"				,SOCK_PROP_NREAD		,SOCK_PROP_FLAGS,	NULL,NULL},
 	{	"debug"				,SOCK_PROP_DEBUG		,JSPROP_ENUMERATE,	NULL,NULL},
-- 
GitLab