Mercurial > spidermonkey-playground
changeset 45:0aac2efec58e
Fixed a few bugs in ServerSocket.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Wed, 24 Jun 2009 14:49:48 -0700 |
parents | 1fd58132b533 |
children | 48dfabed15be |
files | server_socket.cpp |
diffstat | 1 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- 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) {