Add s.connect_ex() which returns errno instead of raising an exception.
This commit is contained in:
parent
aec7497f6f
commit
fc4255db75
|
@ -66,6 +66,7 @@ Socket methods:
|
||||||
- s.bind(sockaddr) --> None
|
- s.bind(sockaddr) --> None
|
||||||
- s.close() --> None
|
- s.close() --> None
|
||||||
- s.connect(sockaddr) --> None
|
- s.connect(sockaddr) --> None
|
||||||
|
- s.connect_ex(sockaddr) --> 0 or errno (handy for e.g. async connect)
|
||||||
- s.fileno() --> file descriptor
|
- s.fileno() --> file descriptor
|
||||||
- s.dup() --> same as socket.fromfd(os.dup(s.fileno(), ...)
|
- s.dup() --> same as socket.fromfd(os.dup(s.fileno(), ...)
|
||||||
- s.getpeername() --> sockaddr
|
- 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 */
|
/* s.fileno() method */
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
|
Loading…
Reference in New Issue