/* s.accept() method */
static PyObject *
-PySocketSock_accept(PySocketSockObject *s, PyObject *args)
+PySocketSock_accept(PySocketSockObject *s)
{
char addrbuf[256];
SOCKET_T newfd;
PyObject *addr = NULL;
PyObject *res = NULL;
- if (!PyArg_ParseTuple(args, ":accept"))
- return NULL;
if (!getsockaddrlen(s, &addrlen))
return NULL;
memset(addrbuf, 0, addrlen);
/* s.setblocking(1 | 0) method */
static PyObject *
-PySocketSock_setblocking(PySocketSockObject *s, PyObject *args)
+PySocketSock_setblocking(PySocketSockObject *s, PyObject *arg)
{
int block;
#ifndef RISCOS
int delay_flag;
#endif
#endif
- if (!PyArg_ParseTuple(args, "i:setblocking", &block))
+ block = PyInt_AsLong(arg);
+ if (block == -1 && PyErr_Occurred())
return NULL;
Py_BEGIN_ALLOW_THREADS
#ifdef __BEOS__
/* s.bind(sockaddr) method */
static PyObject *
-PySocketSock_bind(PySocketSockObject *s, PyObject *args)
+PySocketSock_bind(PySocketSockObject *s, PyObject *addro)
{
struct sockaddr *addr;
int addrlen;
int res;
- PyObject *addro;
- if (!PyArg_ParseTuple(args, "O:bind", &addro))
- return NULL;
+
if (!getsockaddrarg(s, addro, &addr, &addrlen))
return NULL;
Py_BEGIN_ALLOW_THREADS
will surely fail. */
static PyObject *
-PySocketSock_close(PySocketSockObject *s, PyObject *args)
+PySocketSock_close(PySocketSockObject *s)
{
SOCKET_T fd;
- if (!PyArg_ParseTuple(args, ":close"))
- return NULL;
+
if ((fd = s->sock_fd) != -1) {
s->sock_fd = -1;
Py_BEGIN_ALLOW_THREADS
/* s.connect(sockaddr) method */
static PyObject *
-PySocketSock_connect(PySocketSockObject *s, PyObject *args)
+PySocketSock_connect(PySocketSockObject *s, PyObject *addro)
{
struct sockaddr *addr;
int addrlen;
int res;
- PyObject *addro;
- if (!PyArg_ParseTuple(args, "O:connect", &addro))
- return NULL;
+
if (!getsockaddrarg(s, addro, &addr, &addrlen))
return NULL;
Py_BEGIN_ALLOW_THREADS
/* s.connect_ex(sockaddr) method */
static PyObject *
-PySocketSock_connect_ex(PySocketSockObject *s, PyObject *args)
+PySocketSock_connect_ex(PySocketSockObject *s, PyObject *addro)
{
struct sockaddr *addr;
int addrlen;
int res;
- PyObject *addro;
- if (!PyArg_ParseTuple(args, "O:connect_ex", &addro))
- return NULL;
+
if (!getsockaddrarg(s, addro, &addr, &addrlen))
return NULL;
Py_BEGIN_ALLOW_THREADS
/* s.fileno() method */
static PyObject *
-PySocketSock_fileno(PySocketSockObject *s, PyObject *args)
+PySocketSock_fileno(PySocketSockObject *s)
{
- if (!PyArg_ParseTuple(args, ":fileno"))
- return NULL;
#if SIZEOF_SOCKET_T <= SIZEOF_LONG
return PyInt_FromLong((long) s->sock_fd);
#else
/* s.dup() method */
static PyObject *
-PySocketSock_dup(PySocketSockObject *s, PyObject *args)
+PySocketSock_dup(PySocketSockObject *s)
{
SOCKET_T newfd;
PyObject *sock;
- if (!PyArg_ParseTuple(args, ":dup"))
- return NULL;
+
newfd = dup(s->sock_fd);
if (newfd < 0)
return PySocket_Err();
/* s.getsockname() method */
static PyObject *
-PySocketSock_getsockname(PySocketSockObject *s, PyObject *args)
+PySocketSock_getsockname(PySocketSockObject *s)
{
char addrbuf[256];
int res;
socklen_t addrlen;
- if (!PyArg_ParseTuple(args, ":getsockname"))
- return NULL;
if (!getsockaddrlen(s, &addrlen))
return NULL;
memset(addrbuf, 0, addrlen);
/* s.getpeername() method */
static PyObject *
-PySocketSock_getpeername(PySocketSockObject *s, PyObject *args)
+PySocketSock_getpeername(PySocketSockObject *s)
{
char addrbuf[256];
int res;
socklen_t addrlen;
- if (!PyArg_ParseTuple(args, ":getpeername"))
- return NULL;
if (!getsockaddrlen(s, &addrlen))
return NULL;
memset(addrbuf, 0, addrlen);
/* s.listen(n) method */
static PyObject *
-PySocketSock_listen(PySocketSockObject *s, PyObject *args)
+PySocketSock_listen(PySocketSockObject *s, PyObject *arg)
{
int backlog;
int res;
- if (!PyArg_ParseTuple(args, "i:listen", &backlog))
+
+ backlog = PyInt_AsLong(arg);
+ if (backlog == -1 && PyErr_Occurred())
return NULL;
Py_BEGIN_ALLOW_THREADS
if (backlog < 1)
/* s.shutdown(how) method */
static PyObject *
-PySocketSock_shutdown(PySocketSockObject *s, PyObject *args)
+PySocketSock_shutdown(PySocketSockObject *s, PyObject *arg)
{
int how;
int res;
- if (!PyArg_ParseTuple(args, "i:shutdown", &how))
+
+ how = PyInt_AsLong(arg);
+ if (how == -1 && PyErr_Occurred())
return NULL;
Py_BEGIN_ALLOW_THREADS
res = shutdown(s->sock_fd, how);
/* List of methods for socket objects */
static PyMethodDef PySocketSock_methods[] = {
- {"accept", (PyCFunction)PySocketSock_accept, METH_VARARGS,
+ {"accept", (PyNoArgsFunction)PySocketSock_accept, METH_NOARGS,
accept_doc},
- {"bind", (PyCFunction)PySocketSock_bind, METH_VARARGS,
+ {"bind", (PyCFunction)PySocketSock_bind, METH_O,
bind_doc},
- {"close", (PyCFunction)PySocketSock_close, METH_VARARGS,
+ {"close", (PyNoArgsFunction)PySocketSock_close, METH_NOARGS,
close_doc},
- {"connect", (PyCFunction)PySocketSock_connect, METH_VARARGS,
+ {"connect", (PyCFunction)PySocketSock_connect, METH_O,
connect_doc},
- {"connect_ex", (PyCFunction)PySocketSock_connect_ex, METH_VARARGS,
+ {"connect_ex", (PyCFunction)PySocketSock_connect_ex, METH_O,
connect_ex_doc},
#ifndef NO_DUP
- {"dup", (PyCFunction)PySocketSock_dup, METH_VARARGS,
+ {"dup", (PyNoArgsFunction)PySocketSock_dup, METH_NOARGS,
dup_doc},
#endif
- {"fileno", (PyCFunction)PySocketSock_fileno, METH_VARARGS,
+ {"fileno", (PyNoArgsFunction)PySocketSock_fileno, METH_NOARGS,
fileno_doc},
#ifdef HAVE_GETPEERNAME
- {"getpeername", (PyCFunction)PySocketSock_getpeername, METH_VARARGS,
- getpeername_doc},
+ {"getpeername", (PyNoArgsFunction)PySocketSock_getpeername,
+ METH_NOARGS, getpeername_doc},
#endif
- {"getsockname", (PyCFunction)PySocketSock_getsockname, METH_VARARGS,
- getsockname_doc},
+ {"getsockname", (PyNoArgsFunction)PySocketSock_getsockname,
+ METH_NOARGS, getsockname_doc},
{"getsockopt", (PyCFunction)PySocketSock_getsockopt, METH_VARARGS,
getsockopt_doc},
- {"listen", (PyCFunction)PySocketSock_listen, METH_VARARGS,
+ {"listen", (PyCFunction)PySocketSock_listen, METH_O,
listen_doc},
#ifndef NO_DUP
{"makefile", (PyCFunction)PySocketSock_makefile, METH_VARARGS,
send_doc},
{"sendto", (PyCFunction)PySocketSock_sendto, METH_VARARGS,
sendto_doc},
- {"setblocking", (PyCFunction)PySocketSock_setblocking, METH_VARARGS,
+ {"setblocking", (PyCFunction)PySocketSock_setblocking, METH_O,
setblocking_doc},
{"setsockopt", (PyCFunction)PySocketSock_setsockopt, METH_VARARGS,
setsockopt_doc},
- {"shutdown", (PyCFunction)PySocketSock_shutdown, METH_VARARGS,
+ {"shutdown", (PyCFunction)PySocketSock_shutdown, METH_O,
shutdown_doc},
#ifdef RISCOS
{"sleeptaskw", (PyCFunction)PySocketSock_sleeptaskw, METH_VARARGS,