Convert socket methods to use METH_O and METH_NOARGS where possible.
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index b920543..f8f522b 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -925,7 +925,7 @@
 /* s.accept() method */
 
 static PyObject *
-PySocketSock_accept(PySocketSockObject *s, PyObject *args)
+PySocketSock_accept(PySocketSockObject *s)
 {
 	char addrbuf[256];
 	SOCKET_T newfd;
@@ -934,8 +934,6 @@
 	PyObject *addr = NULL;
 	PyObject *res = NULL;
 
-	if (!PyArg_ParseTuple(args, ":accept"))
-		return NULL;
 	if (!getsockaddrlen(s, &addrlen))
 		return NULL;
 	memset(addrbuf, 0, addrlen);
@@ -983,7 +981,7 @@
 /* s.setblocking(1 | 0) method */
 
 static PyObject *
-PySocketSock_setblocking(PySocketSockObject *s, PyObject *args)
+PySocketSock_setblocking(PySocketSockObject *s, PyObject *arg)
 {
 	int block;
 #ifndef RISCOS
@@ -991,7 +989,8 @@
 	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__
@@ -1158,14 +1157,12 @@
 /* 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
@@ -1190,11 +1187,10 @@
    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
@@ -1214,14 +1210,12 @@
 /* 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
@@ -1243,14 +1237,12 @@
 /* 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
@@ -1271,10 +1263,8 @@
 /* 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
@@ -1292,12 +1282,11 @@
 /* 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();
@@ -1321,14 +1310,12 @@
 /* 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);
@@ -1351,14 +1338,12 @@
 /* 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);
@@ -1382,11 +1367,13 @@
 /* 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)
@@ -1606,11 +1593,13 @@
 /* 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);
@@ -1631,31 +1620,31 @@
 /* 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,
@@ -1669,11 +1658,11 @@
 			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,