Browse Source

Make node_net Connect work

v0.7.4-release
Bert Belder 14 years ago
parent
commit
2d39e1341c
  1. 18
      src/node_net.cc

18
src/node_net.cc

@ -410,8 +410,6 @@ static Handle<Value> Shutdown(const Arguments& args) {
return Undefined(); return Undefined();
} }
#ifdef __POSIX__
// Connect with unix // Connect with unix
// t.connect(fd, "/tmp/socket") // t.connect(fd, "/tmp/socket")
// //
@ -433,17 +431,24 @@ static Handle<Value> Connect(const Arguments& args) {
Handle<Value> error = ParseAddressArgs(args[1], args[2], false); Handle<Value> error = ParseAddressArgs(args[1], args[2], false);
if (!error.IsEmpty()) return ThrowException(error); if (!error.IsEmpty()) return ThrowException(error);
#ifdef __POSIX__
int r = connect(fd, addr, addrlen); int r = connect(fd, addr, addrlen);
if (r < 0 && errno != EINPROGRESS) { if (r < 0 && errno != EINPROGRESS) {
return ThrowException(ErrnoException(errno, "connect")); return ThrowException(ErrnoException(errno, "connect"));
} }
#else // __MINGW32__
int r = connect(_get_osfhandle(fd), addr, addrlen);
if (r == INVALID_SOCKET) {
int winsockErrno = WSAGetLastError();
if (winsockErrno != WSAEALREADY && winsockErrno != WSAEINPROGRESS) {
return ThrowException(ErrnoException(winsockErrno, "connect"));
}
}
#endif // __MINGW32__
return Undefined(); return Undefined();
} }
#endif // __POSIX__
#ifdef __POSIX__ #ifdef __POSIX__
@ -1475,10 +1480,9 @@ void InitNet(Handle<Object> target) {
#ifdef __POSIX__ #ifdef __POSIX__
NODE_SET_METHOD(target, "pipe", Pipe); NODE_SET_METHOD(target, "pipe", Pipe);
NODE_SET_METHOD(target, "socketpair", SocketPair); NODE_SET_METHOD(target, "socketpair", SocketPair);
NODE_SET_METHOD(target, "connect", Connect);
#endif // __POSIX__ #endif // __POSIX__
NODE_SET_METHOD(target, "connect", Connect);
NODE_SET_METHOD(target, "bind", Bind); NODE_SET_METHOD(target, "bind", Bind);
NODE_SET_METHOD(target, "listen", Listen); NODE_SET_METHOD(target, "listen", Listen);
NODE_SET_METHOD(target, "accept", Accept); NODE_SET_METHOD(target, "accept", Accept);

Loading…
Cancel
Save