Fix all routines to use PyArg_ParseTuple(), and add ":name" to the
argument format strings.

THIS WILL PROBABLY BREAK LOTS OF CODE!!!

Also fixed a bogus string in an error message in getsockaddrlen().
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 659d813..9798dea 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -643,7 +643,7 @@
 	/* More cases here... */
 
 	default:
-		PyErr_SetString(PySocket_Error, "getsockaddrarg: bad family");
+		PyErr_SetString(PySocket_Error, "getsockaddrlen: bad family");
 		return 0;
 
 	}
@@ -661,7 +661,7 @@
 	PyObject *addr = NULL;
 	PyObject *res = NULL;
 
-	if (!PyArg_NoArgs(args))
+	if (!PyArg_ParseTuple(args, ":accept"))
 		return NULL;
 	if (!getsockaddrlen(s, &addrlen))
 		return NULL;
@@ -710,7 +710,7 @@
 #ifndef MS_WINDOWS
 	int delay_flag;
 #endif
-	if (!PyArg_Parse(args, "i", &block))
+	if (!PyArg_ParseTuple(args, "i:setblocking", &block))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 #ifdef __BEOS__
@@ -763,14 +763,15 @@
 	int buflen;
 	int flag;
 
-	if (PyArg_Parse(args, "(iii)", &level, &optname, &flag)) {
+	if (PyArg_ParseTuple(args, "iii:setsockopt",
+			     &level, &optname, &flag)) {
 		buf = (char *) &flag;
 		buflen = sizeof flag;
 	}
 	else {
 		PyErr_Clear();
-		if (!PyArg_Parse(args, "(iis#)", &level, &optname,
-				 &buf, &buflen))
+		if (!PyArg_ParseTuple(args, "iis#:setsockopt",
+				      &level, &optname, &buf, &buflen))
 			return NULL;
 	}
 	res = setsockopt(s->sock_fd, level, optname, (ANY *)buf, buflen);
@@ -807,7 +808,8 @@
 	return NULL;
 #else
 
-	if (!PyArg_ParseTuple(args, "ii|i", &level, &optname, &buflen))
+	if (!PyArg_ParseTuple(args, "ii|i:getsockopt",
+			      &level, &optname, &buflen))
 		return NULL;
 	
 	if (buflen == 0) {
@@ -854,7 +856,10 @@
 	struct sockaddr *addr;
 	int addrlen;
 	int res;
-	if (!getsockaddrarg(s, args, &addr, &addrlen))
+	PyObject *addro;
+	if (!PyArg_ParseTuple(args, "O:bind", &addro))
+		return NULL;
+	if (!getsockaddrarg(s, addro, &addr, &addrlen))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	res = bind(s->sock_fd, addr, addrlen);
@@ -879,7 +884,7 @@
 static PyObject *
 BUILD_FUNC_DEF_2(PySocketSock_close,PySocketSockObject *,s, PyObject *,args)
 {
-	if (!PyArg_NoArgs(args))
+	if (!PyArg_ParseTuple(args, ":close"))
 		return NULL;
 	if (s->sock_fd != -1) {
 		Py_BEGIN_ALLOW_THREADS
@@ -905,7 +910,10 @@
 	struct sockaddr *addr;
 	int addrlen;
 	int res;
-	if (!getsockaddrarg(s, args, &addr, &addrlen))
+	PyObject *addro;
+	if (!PyArg_ParseTuple(args, "O:connect", &addro))
+		return NULL;
+	if (!getsockaddrarg(s, addro, &addr, &addrlen))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	res = connect(s->sock_fd, addr, addrlen);
@@ -931,7 +939,10 @@
 	struct sockaddr *addr;
 	int addrlen;
 	int res;
-	if (!getsockaddrarg(s, args, &addr, &addrlen))
+	PyObject *addro;
+	if (!PyArg_ParseTuple(args, "O:connect_ex", &addro))
+		return NULL;
+	if (!getsockaddrarg(s, addro, &addr, &addrlen))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	res = connect(s->sock_fd, addr, addrlen);
@@ -953,7 +964,7 @@
 static PyObject *
 BUILD_FUNC_DEF_2(PySocketSock_fileno,PySocketSockObject *,s, PyObject *,args)
 {
-	if (!PyArg_NoArgs(args))
+	if (!PyArg_ParseTuple(args, ":fileno"))
 		return NULL;
 	return PyInt_FromLong((long) s->sock_fd);
 }
@@ -972,7 +983,7 @@
 {
 	int newfd;
 	PyObject *sock;
-	if (!PyArg_NoArgs(args))
+	if (!PyArg_ParseTuple(args, ":dup"))
 		return NULL;
 	newfd = dup(s->sock_fd);
 	if (newfd < 0)
@@ -1001,7 +1012,7 @@
 {
 	char addrbuf[256];
 	int addrlen, res;
-	if (!PyArg_NoArgs(args))
+	if (!PyArg_ParseTuple(args, ":getsockname"))
 		return NULL;
 	if (!getsockaddrlen(s, &addrlen))
 		return NULL;
@@ -1029,7 +1040,7 @@
 {
 	char addrbuf[256];
 	int addrlen, res;
-	if (!PyArg_NoArgs(args))
+	if (!PyArg_ParseTuple(args, ":getpeername"))
 		return NULL;
 	if (!getsockaddrlen(s, &addrlen))
 		return NULL;
@@ -1057,7 +1068,7 @@
 {
 	int backlog;
 	int res;
-	if (!PyArg_Parse(args, "i", &backlog))
+	if (!PyArg_ParseTuple(args, "i:listen", &backlog))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	if (backlog < 1)
@@ -1245,9 +1256,10 @@
 	struct sockaddr *addr;
 	int addrlen, len, n, flags;
 	flags = 0;
-	if (!PyArg_Parse(args, "(s#O)", &buf, &len, &addro)) {
+	if (!PyArg_ParseTuple(args, "s#O:sendto", &buf, &len, &addro)) {
 		PyErr_Clear();
-		if (!PyArg_Parse(args, "(s#iO)", &buf, &len, &flags, &addro))
+		if (!PyArg_ParseTuple(args, "s#iO:sendto",
+				      &buf, &len, &flags, &addro))
 			return NULL;
 	}
 	if (!getsockaddrarg(s, addro, &addr, &addrlen))
@@ -1274,7 +1286,7 @@
 {
 	int how;
 	int res;
-	if (!PyArg_Parse(args, "i", &how))
+	if (!PyArg_ParseTuple(args, "i:shutdown", &how))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	res = shutdown(s->sock_fd, how);
@@ -1295,31 +1307,31 @@
 /* List of methods for socket objects */
 
 static PyMethodDef PySocketSock_methods[] = {
-	{"accept",		(PyCFunction)PySocketSock_accept, 0,
+	{"accept",		(PyCFunction)PySocketSock_accept, 1,
 				accept_doc},
-	{"bind",		(PyCFunction)PySocketSock_bind, 0,
+	{"bind",		(PyCFunction)PySocketSock_bind, 1,
 				bind_doc},
-	{"close",		(PyCFunction)PySocketSock_close, 0,
+	{"close",		(PyCFunction)PySocketSock_close, 1,
 				close_doc},
-	{"connect",		(PyCFunction)PySocketSock_connect, 0,
+	{"connect",		(PyCFunction)PySocketSock_connect, 1,
 				connect_doc},
-	{"connect_ex",		(PyCFunction)PySocketSock_connect_ex, 0,
+	{"connect_ex",		(PyCFunction)PySocketSock_connect_ex, 1,
 				connect_ex_doc},
 #ifndef NO_DUP
-	{"dup",			(PyCFunction)PySocketSock_dup, 0,
+	{"dup",			(PyCFunction)PySocketSock_dup, 1,
 				dup_doc},
 #endif
-	{"fileno",		(PyCFunction)PySocketSock_fileno, 0,
+	{"fileno",		(PyCFunction)PySocketSock_fileno, 1,
 				fileno_doc},
 #ifdef HAVE_GETPEERNAME
-	{"getpeername",		(PyCFunction)PySocketSock_getpeername, 0,
+	{"getpeername",		(PyCFunction)PySocketSock_getpeername, 1,
 				getpeername_doc},
 #endif
-	{"getsockname",		(PyCFunction)PySocketSock_getsockname, 0,
+	{"getsockname",		(PyCFunction)PySocketSock_getsockname, 1,
 				getsockname_doc},
 	{"getsockopt",		(PyCFunction)PySocketSock_getsockopt, 1,
 				getsockopt_doc},
-	{"listen",		(PyCFunction)PySocketSock_listen, 0,
+	{"listen",		(PyCFunction)PySocketSock_listen, 1,
 				listen_doc},
 #ifndef NO_DUP
 	{"makefile",		(PyCFunction)PySocketSock_makefile, 1,
@@ -1331,13 +1343,13 @@
 				recvfrom_doc},
 	{"send",		(PyCFunction)PySocketSock_send, 1,
 				send_doc},
-	{"sendto",		(PyCFunction)PySocketSock_sendto, 0,
+	{"sendto",		(PyCFunction)PySocketSock_sendto, 1,
 				sendto_doc},
-	{"setblocking",		(PyCFunction)PySocketSock_setblocking, 0,
+	{"setblocking",		(PyCFunction)PySocketSock_setblocking, 1,
 				setblocking_doc},
-	{"setsockopt",		(PyCFunction)PySocketSock_setsockopt, 0,
+	{"setsockopt",		(PyCFunction)PySocketSock_setsockopt, 1,
 				setsockopt_doc},
-	{"shutdown",		(PyCFunction)PySocketSock_shutdown, 0,
+	{"shutdown",		(PyCFunction)PySocketSock_shutdown, 1,
 				shutdown_doc},
 	{NULL,			NULL}		/* sentinel */
 };
@@ -1402,7 +1414,7 @@
 {
 	char buf[1024];
 	int res;
-	if (!PyArg_NoArgs(args))
+	if (!PyArg_ParseTuple(args, ":gethostname"))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	res = gethostname(buf, (int) sizeof buf - 1);
@@ -1427,7 +1439,7 @@
 {
 	char *name;
 	struct sockaddr_in addrbuf;
-	if (!PyArg_Parse(args, "s", &name))
+	if (!PyArg_ParseTuple(args, "s:gethostbyname", &name))
 		return NULL;
 	if (setipaddr(name, &addrbuf) < 0)
 		return NULL;
@@ -1518,7 +1530,7 @@
 	int result;
 #endif
 #endif /* HAVE_GETHOSTBYNAME_R */
-	if (!PyArg_Parse(args, "s", &name))
+	if (!PyArg_ParseTuple(args, "s:gethostbyname_ex", &name))
 		return NULL;
 	if (setipaddr(name, &addr) < 0)
 		return NULL;
@@ -1578,7 +1590,7 @@
 #endif
 #endif /* HAVE_GETHOSTBYNAME_R */
 
-	if (!PyArg_Parse(args, "s", &ip_num))
+	if (!PyArg_ParseTuple(args, "s:gethostbyaddr", &ip_num))
 		return NULL;
 	if (setipaddr(ip_num, &addr) < 0)
 		return NULL;
@@ -1634,7 +1646,7 @@
 {
 	char *name, *proto;
 	struct servent *sp;
-	if (!PyArg_Parse(args, "(ss)", &name, &proto))
+	if (!PyArg_ParseTuple(args, "ss:getservbyname", &name, &proto))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	sp = getservbyname(name, proto);
@@ -1668,7 +1680,7 @@
 	PyErr_SetString( PySocket_Error, "getprotobyname not supported" );
 	return NULL;
 #else
-	if (!PyArg_Parse(args, "s", &name))
+	if (!PyArg_ParseTuple(args, "s:getprotobyname", &name))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	sp = getprotobyname(name);
@@ -1747,7 +1759,8 @@
 {
 	PySocketSockObject *s;
 	int fd, family, type, proto = 0;
-	if (!PyArg_ParseTuple(args, "iii|i:fromfd", &fd, &family, &type, &proto))
+	if (!PyArg_ParseTuple(args, "iii|i:fromfd",
+			      &fd, &family, &type, &proto))
 		return NULL;
 	/* Dup the fd so it and the socket can be closed independently */
 	fd = dup(fd);
@@ -1776,7 +1789,7 @@
 {
 	int x1, x2;
 
-	if (!PyArg_Parse(args, "i", &x1)) {
+	if (!PyArg_ParseTuple(args, "i:ntohs", &x1)) {
 		return NULL;
 	}
 	x2 = (int)ntohs((short)x1);
@@ -1794,7 +1807,7 @@
 {
 	int x1, x2;
 
-	if (!PyArg_Parse(args, "i", &x1)) {
+	if (!PyArg_ParseTuple(args, "i:ntohl", &x1)) {
 		return NULL;
 	}
 	x2 = ntohl(x1);
@@ -1812,7 +1825,7 @@
 {
 	int x1, x2;
 
-	if (!PyArg_Parse(args, "i", &x1)) {
+	if (!PyArg_ParseTuple(args, "i:htons", &x1)) {
 		return NULL;
 	}
 	x2 = (int)htons((short)x1);
@@ -1830,7 +1843,7 @@
 {
 	int x1, x2;
 
-	if (!PyArg_Parse(args, "i", &x1)) {
+	if (!PyArg_ParseTuple(args, "i:htonl", &x1)) {
 		return NULL;
 	}
 	x2 = htonl(x1);
@@ -1866,7 +1879,7 @@
 	char *ip_addr;
 	long packed_addr;
 
-	if (!PyArg_Parse(args, "s", &ip_addr)) {
+	if (!PyArg_ParseTuple(args, "s:inet_aton", &ip_addr)) {
 		return NULL;
 	}
 #ifdef macintosh
@@ -1897,7 +1910,7 @@
 	int addr_len;
 	struct in_addr packed_addr;
 
-	if (!PyArg_Parse(args, "s#", &packed_str, &addr_len)) {
+	if (!PyArg_ParseTuple(args, "s#:inet_ntoa", &packed_str, &addr_len)) {
 		return NULL;
 	}
 	
@@ -2151,22 +2164,22 @@
 /* List of functions exported by this module. */
 
 static PyMethodDef PySocket_methods[] = {
-	{"gethostbyname",	PySocket_gethostbyname, 0, gethostbyname_doc},
-	{"gethostbyname_ex",	PySocket_gethostbyname_ex, 0, ghbn_ex_doc},
-	{"gethostbyaddr",	PySocket_gethostbyaddr, 0, gethostbyaddr_doc},
-	{"gethostname",		PySocket_gethostname, 0, gethostname_doc},
-	{"getservbyname",	PySocket_getservbyname, 0, getservbyname_doc},
-	{"getprotobyname",	PySocket_getprotobyname, 0,getprotobyname_doc},
+	{"gethostbyname",	PySocket_gethostbyname, 1, gethostbyname_doc},
+	{"gethostbyname_ex",	PySocket_gethostbyname_ex, 1, ghbn_ex_doc},
+	{"gethostbyaddr",	PySocket_gethostbyaddr, 1, gethostbyaddr_doc},
+	{"gethostname",		PySocket_gethostname, 1, gethostname_doc},
+	{"getservbyname",	PySocket_getservbyname, 1, getservbyname_doc},
+	{"getprotobyname",	PySocket_getprotobyname, 1,getprotobyname_doc},
 	{"socket",		PySocket_socket, 1, socket_doc},
 #ifndef NO_DUP
 	{"fromfd",		PySocket_fromfd, 1, fromfd_doc},
 #endif
-	{"ntohs",		PySocket_ntohs, 0, ntohs_doc},
-	{"ntohl",		PySocket_ntohl, 0, ntohl_doc},
-	{"htons",		PySocket_htons, 0, htons_doc},
-	{"htonl",		PySocket_htonl, 0, htonl_doc},
-	{"inet_aton",		PySocket_inet_aton, 0, inet_aton_doc},
-	{"inet_ntoa",		PySocket_inet_ntoa, 0, inet_ntoa_doc},
+	{"ntohs",		PySocket_ntohs, 1, ntohs_doc},
+	{"ntohl",		PySocket_ntohl, 1, ntohl_doc},
+	{"htons",		PySocket_htons, 1, htons_doc},
+	{"htonl",		PySocket_htonl, 1, htonl_doc},
+	{"inet_aton",		PySocket_inet_aton, 1, inet_aton_doc},
+	{"inet_ntoa",		PySocket_inet_ntoa, 1, inet_ntoa_doc},
 #ifdef USE_SSL
 	{"ssl",			PySocket_ssl, 1, ssl_doc},
 #endif /* USE_SSL */