mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
Merged revisions 84146-84147,84150 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r84146 | antoine.pitrou | 2010-08-17 19:55:07 +0200 (mar., 17 août 2010) | 4 lines Issue #9612: The set object is now 64-bit clean under Windows. ........ r84147 | antoine.pitrou | 2010-08-17 20:30:06 +0200 (mar., 17 août 2010) | 3 lines Fix <deque iterator>.__length_hint__() under 64-bit Windows. ........ r84150 | antoine.pitrou | 2010-08-17 21:33:30 +0200 (mar., 17 août 2010) | 3 lines Clean some 64-bit issues. Also, always spell "ssize_t" "Py_ssize_t". ........
This commit is contained in:
parent
960c211328
commit
f72006f442
4 changed files with 49 additions and 42 deletions
|
@ -678,9 +678,11 @@ internal_select(PySocketSockObject *s, int writing)
|
|||
|
||||
/* See if the socket is ready */
|
||||
if (writing)
|
||||
n = select(s->sock_fd+1, NULL, &fds, NULL, &tv);
|
||||
n = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
|
||||
NULL, &fds, NULL, &tv);
|
||||
else
|
||||
n = select(s->sock_fd+1, &fds, NULL, NULL, &tv);
|
||||
n = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
|
||||
&fds, NULL, NULL, &tv);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -937,7 +939,7 @@ makebdaddr(bdaddr_t *bdaddr)
|
|||
|
||||
/*ARGSUSED*/
|
||||
static PyObject *
|
||||
makesockaddr(int sockfd, struct sockaddr *addr, int addrlen, int proto)
|
||||
makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
|
||||
{
|
||||
if (addrlen == 0) {
|
||||
/* No address -- may be recvfrom() from known socket */
|
||||
|
@ -1893,7 +1895,8 @@ internal_connect(PySocketSockObject *s, struct sockaddr *addr, int addrlen,
|
|||
FD_SET(s->sock_fd, &fds);
|
||||
FD_ZERO(&fds_exc);
|
||||
FD_SET(s->sock_fd, &fds_exc);
|
||||
res = select(s->sock_fd+1, NULL, &fds, &fds_exc, &tv);
|
||||
res = select(Py_SAFE_DOWNCAST(s->sock_fd+1, SOCKET_T, int),
|
||||
NULL, &fds, &fds_exc, &tv);
|
||||
if (res == 0) {
|
||||
res = WSAEWOULDBLOCK;
|
||||
timeout = 1;
|
||||
|
@ -2136,10 +2139,10 @@ will allow before refusing new connections.");
|
|||
* also possible that we return a number of bytes smaller than the request
|
||||
* bytes.
|
||||
*/
|
||||
static ssize_t
|
||||
sock_recv_guts(PySocketSockObject *s, char* cbuf, int len, int flags)
|
||||
static Py_ssize_t
|
||||
sock_recv_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t len, int flags)
|
||||
{
|
||||
ssize_t outlen = -1;
|
||||
Py_ssize_t outlen = -1;
|
||||
int timeout;
|
||||
#ifdef __VMS
|
||||
int remaining;
|
||||
|
@ -2221,11 +2224,11 @@ sock_recv_guts(PySocketSockObject *s, char* cbuf, int len, int flags)
|
|||
static PyObject *
|
||||
sock_recv(PySocketSockObject *s, PyObject *args)
|
||||
{
|
||||
int recvlen, flags = 0;
|
||||
ssize_t outlen;
|
||||
Py_ssize_t recvlen, outlen;
|
||||
int flags = 0;
|
||||
PyObject *buf;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "i|i:recv", &recvlen, &flags))
|
||||
if (!PyArg_ParseTuple(args, "n|i:recv", &recvlen, &flags))
|
||||
return NULL;
|
||||
|
||||
if (recvlen < 0) {
|
||||
|
@ -2272,14 +2275,13 @@ sock_recv_into(PySocketSockObject *s, PyObject *args, PyObject *kwds)
|
|||
{
|
||||
static char *kwlist[] = {"buffer", "nbytes", "flags", 0};
|
||||
|
||||
int recvlen = 0, flags = 0;
|
||||
ssize_t readlen;
|
||||
int flags = 0;
|
||||
Py_buffer pbuf;
|
||||
char *buf;
|
||||
int buflen;
|
||||
Py_ssize_t buflen, readlen, recvlen = 0;
|
||||
|
||||
/* Get the buffer's memory */
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "w*|ii:recv_into", kwlist,
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "w*|ni:recv_into", kwlist,
|
||||
&pbuf, &recvlen, &flags))
|
||||
return NULL;
|
||||
buf = pbuf.buf;
|
||||
|
@ -2339,13 +2341,13 @@ See recv() for documentation about the flags.");
|
|||
* 'addr' is a return value for the address object. Note that you must decref
|
||||
* it yourself.
|
||||
*/
|
||||
static ssize_t
|
||||
sock_recvfrom_guts(PySocketSockObject *s, char* cbuf, int len, int flags,
|
||||
static Py_ssize_t
|
||||
sock_recvfrom_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t len, int flags,
|
||||
PyObject** addr)
|
||||
{
|
||||
sock_addr_t addrbuf;
|
||||
int timeout;
|
||||
ssize_t n = -1;
|
||||
Py_ssize_t n = -1;
|
||||
socklen_t addrlen;
|
||||
|
||||
*addr = NULL;
|
||||
|
@ -2401,10 +2403,10 @@ sock_recvfrom(PySocketSockObject *s, PyObject *args)
|
|||
PyObject *buf = NULL;
|
||||
PyObject *addr = NULL;
|
||||
PyObject *ret = NULL;
|
||||
int recvlen, flags = 0;
|
||||
ssize_t outlen;
|
||||
int flags = 0;
|
||||
Py_ssize_t recvlen, outlen;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "i|i:recvfrom", &recvlen, &flags))
|
||||
if (!PyArg_ParseTuple(args, "n|i:recvfrom", &recvlen, &flags))
|
||||
return NULL;
|
||||
|
||||
if (recvlen < 0) {
|
||||
|
@ -2452,15 +2454,14 @@ sock_recvfrom_into(PySocketSockObject *s, PyObject *args, PyObject* kwds)
|
|||
{
|
||||
static char *kwlist[] = {"buffer", "nbytes", "flags", 0};
|
||||
|
||||
int recvlen = 0, flags = 0;
|
||||
ssize_t readlen;
|
||||
int flags = 0;
|
||||
Py_buffer pbuf;
|
||||
char *buf;
|
||||
int buflen;
|
||||
Py_ssize_t readlen, buflen, recvlen = 0;
|
||||
|
||||
PyObject *addr = NULL;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "w*|ii:recvfrom_into",
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "w*|ni:recvfrom_into",
|
||||
kwlist, &pbuf,
|
||||
&recvlen, &flags))
|
||||
return NULL;
|
||||
|
@ -2490,7 +2491,7 @@ sock_recvfrom_into(PySocketSockObject *s, PyObject *args, PyObject* kwds)
|
|||
PyBuffer_Release(&pbuf);
|
||||
/* Return the number of bytes read and the address. Note that we do
|
||||
not do anything special here in the case that readlen < recvlen. */
|
||||
return Py_BuildValue("lN", readlen, addr);
|
||||
return Py_BuildValue("nN", readlen, addr);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(recvfrom_into_doc,
|
||||
|
@ -2505,7 +2506,8 @@ static PyObject *
|
|||
sock_send(PySocketSockObject *s, PyObject *args)
|
||||
{
|
||||
char *buf;
|
||||
int len, n = -1, flags = 0, timeout;
|
||||
Py_ssize_t len, n = -1;
|
||||
int flags = 0, timeout;
|
||||
Py_buffer pbuf;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "y*|i:send", &pbuf, &flags))
|
||||
|
@ -2536,7 +2538,7 @@ sock_send(PySocketSockObject *s, PyObject *args)
|
|||
}
|
||||
if (n < 0)
|
||||
return s->errorhandler();
|
||||
return PyLong_FromLong((long)n);
|
||||
return PyLong_FromSsize_t(n);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(send_doc,
|
||||
|
@ -2553,7 +2555,8 @@ static PyObject *
|
|||
sock_sendall(PySocketSockObject *s, PyObject *args)
|
||||
{
|
||||
char *buf;
|
||||
int len, n = -1, flags = 0, timeout;
|
||||
Py_ssize_t len, n = -1;
|
||||
int flags = 0, timeout;
|
||||
Py_buffer pbuf;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "y*|i:sendall", &pbuf, &flags))
|
||||
|
@ -2650,7 +2653,7 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
|
|||
}
|
||||
if (n < 0)
|
||||
return s->errorhandler();
|
||||
return PyLong_FromLong((long)n);
|
||||
return PyLong_FromSsize_t(n);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(sendto_doc,
|
||||
|
@ -3942,7 +3945,7 @@ socket_getnameinfo(PyObject *self, PyObject *args)
|
|||
}
|
||||
#endif
|
||||
}
|
||||
error = getnameinfo(res->ai_addr, res->ai_addrlen,
|
||||
error = getnameinfo(res->ai_addr, (socklen_t) res->ai_addrlen,
|
||||
hbuf, sizeof(hbuf), pbuf, sizeof(pbuf), flags);
|
||||
if (error) {
|
||||
set_gaierror(error);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue