diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c index 0b6465b140e44b1c9ac8fb9a20fc9c6ce2e37ada..b5f694dca324f001f54cf72f6a424b70baeac87f 100644 --- a/src/sbbs3/js_socket.c +++ b/src/sbbs3/js_socket.c @@ -206,12 +206,21 @@ js_connect(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) addr.sin_family = AF_INET; addr.sin_port = htons(port); +#if defined(__unix__) + alarm(10); /* timeout */ +#endif if(connect(p->sock, (struct sockaddr *)&addr, sizeof(addr))!=0) { +#if defined(__unix__) + alarm(0); +#endif p->last_error=ERROR_VALUE; dbprintf(TRUE, p, "connect failed with error %d",ERROR_VALUE); *rval = BOOLEAN_TO_JSVAL(JS_FALSE); return(JS_TRUE); } +#if defined(__unix__) + alarm(0); +#endif *rval = BOOLEAN_TO_JSVAL(JS_TRUE); dbprintf(FALSE, p, "connected to port %u at %s", port, JS_GetStringBytes(str));