Kaydet (Commit) fc4255db authored tarafından Guido van Rossum's avatar Guido van Rossum

Add s.connect_ex() which returns errno instead of raising an exception.

üst aec7497f
......@@ -66,6 +66,7 @@ Socket methods:
- s.bind(sockaddr) --> None
- s.close() --> None
- s.connect(sockaddr) --> None
- s.connect_ex(sockaddr) --> 0 or errno (handy for e.g. async connect)
- s.fileno() --> file descriptor
- s.dup() --> same as socket.fromfd(os.dup(s.fileno(), ...)
- s.getpeername() --> sockaddr
......@@ -681,6 +682,25 @@ BUILD_FUNC_DEF_2(PySocketSock_connect,PySocketSockObject *,s, PyObject *,args)
}
/* s.connect_ex(sockaddr) method */
static PyObject *
BUILD_FUNC_DEF_2(PySocketSock_connect_ex,PySocketSockObject *,s, PyObject *,args)
{
struct sockaddr *addr;
int addrlen;
int res;
if (!getsockaddrarg(s, args, &addr, &addrlen))
return NULL;
Py_BEGIN_ALLOW_THREADS
res = connect(s->sock_fd, addr, addrlen);
Py_END_ALLOW_THREADS
if (res != 0)
res = errno;
return PyInt_FromLong((long) res);
}
/* s.fileno() method */
static PyObject *
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment