comparison Modules/socketmodule.c @ 68660:2af7a6d765fd 3.2

Issue #5421: merge fix
author Antoine Pitrou <solipsis@pitrou.net>
date Thu, 17 Mar 2011 22:40:18 +0100
parents dc245d681901 c61b72b0650d
children 713006ecee0c 90cdc371a3b8
comparison
equal deleted inserted replaced
68653:d6ae1f3ad66b 68660:2af7a6d765fd
2745 sock_sendto(PySocketSockObject *s, PyObject *args) 2745 sock_sendto(PySocketSockObject *s, PyObject *args)
2746 { 2746 {
2747 Py_buffer pbuf; 2747 Py_buffer pbuf;
2748 PyObject *addro; 2748 PyObject *addro;
2749 char *buf; 2749 char *buf;
2750 Py_ssize_t len; 2750 Py_ssize_t len, arglen;
2751 sock_addr_t addrbuf; 2751 sock_addr_t addrbuf;
2752 int addrlen, n = -1, flags, timeout; 2752 int addrlen, n = -1, flags, timeout;
2753 2753
2754 flags = 0; 2754 flags = 0;
2755 if (!PyArg_ParseTuple(args, "y*O:sendto", &pbuf, &addro)) { 2755 arglen = PyTuple_Size(args);
2756 PyErr_Clear(); 2756 switch (arglen) {
2757 if (!PyArg_ParseTuple(args, "y*iO:sendto", 2757 case 2:
2758 &pbuf, &flags, &addro)) 2758 PyArg_ParseTuple(args, "y*O:sendto", &pbuf, &addro);
2759 return NULL; 2759 break;
2760 } 2760 case 3:
2761 PyArg_ParseTuple(args, "y*iO:sendto",
2762 &pbuf, &flags, &addro);
2763 break;
2764 default:
2765 PyErr_Format(PyExc_TypeError,
2766 "sendto() takes 2 or 3 arguments (%d given)",
2767 arglen);
2768 }
2769 if (PyErr_Occurred())
2770 return NULL;
2771
2761 buf = pbuf.buf; 2772 buf = pbuf.buf;
2762 len = pbuf.len; 2773 len = pbuf.len;
2763 2774
2764 if (!IS_SELECTABLE(s)) { 2775 if (!IS_SELECTABLE(s)) {
2765 PyBuffer_Release(&pbuf); 2776 PyBuffer_Release(&pbuf);