comparison server_socket.cpp @ 43:cdfbd4b71027

Added listen() method to ServerSocket().
author Atul Varma <varmaa@toolness.com>
date Wed, 24 Jun 2009 14:12:59 -0700
parents 68d2a675a33a
children 1fd58132b533
comparison
equal deleted inserted replaced
42:68d2a675a33a 43:cdfbd4b71027
83 NULL, // iterator 83 NULL, // iterator
84 NULL, // wrapper 84 NULL, // wrapper
85 JSCLASS_NO_RESERVED_MEMBERS 85 JSCLASS_NO_RESERVED_MEMBERS
86 }; 86 };
87 87
88 JSBool listen(JSContext *cx, JSObject *obj, uintN argc,
89 jsval *argv, jsval *rval)
90 {
91 PRInt32 backlog;
92
93 if (!JS_ConvertArguments(cx, argc, argv, "i", &backlog))
94 return JS_FALSE;
95
96 PRFileDesc *fd;
97 if (!getSocket(cx, obj, &fd))
98 return JS_FALSE;
99
100 PRStatus result = PR_Listen(fd, backlog);
101
102 if (result != PR_SUCCESS) {
103 JS_ReportError(cx, "Listen failed.");
104 return JS_FALSE;
105 }
106
107 *rval = JSVAL_VOID;
108 return JS_TRUE;
109 }
110
88 JSBool bind(JSContext *cx, JSObject *obj, uintN argc, 111 JSBool bind(JSContext *cx, JSObject *obj, uintN argc,
89 jsval *argv, jsval *rval) 112 jsval *argv, jsval *rval)
90 { 113 {
91 const char *addrStr; 114 const char *addrStr;
92 PRUint16 port; 115 PRUint16 port;
117 *rval = JSVAL_VOID; 140 *rval = JSVAL_VOID;
118 return JS_TRUE; 141 return JS_TRUE;
119 } 142 }
120 143
121 static JSFunctionSpec methods[] = { 144 static JSFunctionSpec methods[] = {
122 JS_FS("bind", bind, 1, 0, 0), 145 JS_FS("bind", bind, 2, 0, 0),
146 JS_FS("listen", listen, 1, 0, 0),
123 JS_FS_END 147 JS_FS_END
124 }; 148 };
125 149
126 JSBool createServerSocket(JSContext *cx, JSObject *obj, uintN argc, 150 JSBool createServerSocket(JSContext *cx, JSObject *obj, uintN argc,
127 jsval *argv, jsval *rval) 151 jsval *argv, jsval *rval)