# HG changeset patch # User Atul Varma # Date 1245877979 25200 # Node ID cdfbd4b71027222570d111a5fb42d92e390f19c8 # Parent 68d2a675a33a50ca11c27ce5b2da05b36584ba48 Added listen() method to ServerSocket(). diff -r 68d2a675a33a -r cdfbd4b71027 server_socket.cpp --- a/server_socket.cpp Wed Jun 24 14:05:32 2009 -0700 +++ b/server_socket.cpp Wed Jun 24 14:12:59 2009 -0700 @@ -85,6 +85,29 @@ JSCLASS_NO_RESERVED_MEMBERS }; +JSBool listen(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval) +{ + PRInt32 backlog; + + if (!JS_ConvertArguments(cx, argc, argv, "i", &backlog)) + return JS_FALSE; + + PRFileDesc *fd; + if (!getSocket(cx, obj, &fd)) + return JS_FALSE; + + PRStatus result = PR_Listen(fd, backlog); + + if (result != PR_SUCCESS) { + JS_ReportError(cx, "Listen failed."); + return JS_FALSE; + } + + *rval = JSVAL_VOID; + return JS_TRUE; +} + JSBool bind(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { @@ -119,7 +142,8 @@ } static JSFunctionSpec methods[] = { - JS_FS("bind", bind, 1, 0, 0), + JS_FS("bind", bind, 2, 0, 0), + JS_FS("listen", listen, 1, 0, 0), JS_FS_END }; diff -r 68d2a675a33a -r cdfbd4b71027 tcb.js --- a/tcb.js Wed Jun 24 14:05:32 2009 -0700 +++ b/tcb.js Wed Jun 24 14:12:59 2009 -0700 @@ -241,3 +241,4 @@ boop.bind("127.0.0.1", 8080); } catch (e) {} socket.bind("127.0.0.1", 8080); +socket.listen("ge");