# HG changeset patch # User Atul Varma # Date 1245880188 25200 # Node ID 0aac2efec58e78db1d85e582fa196c56017b5b9a # Parent 1fd58132b53365a2386cf5394a15f8324ad35e39 Fixed a few bugs in ServerSocket. diff -r 1fd58132b533 -r 0aac2efec58e server_socket.cpp --- a/server_socket.cpp Wed Jun 24 14:22:42 2009 -0700 +++ b/server_socket.cpp Wed Jun 24 14:49:48 2009 -0700 @@ -88,7 +88,7 @@ JSBool listen(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - PRInt32 backlog; + PRInt32 backlog = 0; if (!JS_ConvertArguments(cx, argc, argv, "/i", &backlog)) return JS_FALSE; @@ -141,7 +141,16 @@ if (!JS_ConvertArguments(cx, argc, argv, "sc", &addrStr, &port)) return JS_FALSE; + PRFileDesc *fd; + if (!getSocket(cx, obj, &fd)) + return JS_FALSE; + PRNetAddr addr; + if (!PR_SetNetAddr(PR_IpAddrV4Mapped, PR_AF_INET, port, &addr)) { + JS_ReportError(cx, "Setting of net addr failed."); + return JS_FALSE; + } + PRStatus result = PR_StringToNetAddr(addrStr, &addr); if (result != PR_SUCCESS) { @@ -149,11 +158,6 @@ return JS_FALSE; } - PRFileDesc *fd; - if (!getSocket(cx, obj, &fd)) - return JS_FALSE; - - addr.inet.port = port; result = PR_Bind(fd, &addr); if (result != PR_SUCCESS) {