@@ -925,7 +925,7 @@ getsockaddrlen(PySocketSockObject *s, socklen_t *len_ret)
925925/* s.accept() method */
926926
927927static PyObject *
928- PySocketSock_accept (PySocketSockObject * s , PyObject * args )
928+ PySocketSock_accept (PySocketSockObject * s )
929929{
930930 char addrbuf [256 ];
931931 SOCKET_T newfd ;
@@ -934,8 +934,6 @@ PySocketSock_accept(PySocketSockObject *s, PyObject *args)
934934 PyObject * addr = NULL ;
935935 PyObject * res = NULL ;
936936
937- if (!PyArg_ParseTuple (args , ":accept" ))
938- return NULL ;
939937 if (!getsockaddrlen (s , & addrlen ))
940938 return NULL ;
941939 memset (addrbuf , 0 , addrlen );
@@ -983,15 +981,16 @@ info is a pair (hostaddr, port).";
983981/* s.setblocking(1 | 0) method */
984982
985983static PyObject *
986- PySocketSock_setblocking (PySocketSockObject * s , PyObject * args )
984+ PySocketSock_setblocking (PySocketSockObject * s , PyObject * arg )
987985{
988986 int block ;
989987#ifndef RISCOS
990988#ifndef MS_WINDOWS
991989 int delay_flag ;
992990#endif
993991#endif
994- if (!PyArg_ParseTuple (args , "i:setblocking" , & block ))
992+ block = PyInt_AsLong (arg );
993+ if (block == -1 && PyErr_Occurred ())
995994 return NULL ;
996995 Py_BEGIN_ALLOW_THREADS
997996#ifdef __BEOS__
@@ -1158,14 +1157,12 @@ string of that length; otherwise it is an integer.";
11581157/* s.bind(sockaddr) method */
11591158
11601159static PyObject *
1161- PySocketSock_bind (PySocketSockObject * s , PyObject * args )
1160+ PySocketSock_bind (PySocketSockObject * s , PyObject * addro )
11621161{
11631162 struct sockaddr * addr ;
11641163 int addrlen ;
11651164 int res ;
1166- PyObject * addro ;
1167- if (!PyArg_ParseTuple (args , "O:bind" , & addro ))
1168- return NULL ;
1165+
11691166 if (!getsockaddrarg (s , addro , & addr , & addrlen ))
11701167 return NULL ;
11711168 Py_BEGIN_ALLOW_THREADS
@@ -1190,11 +1187,10 @@ sockets the address is a tuple (ifname, proto [,pkttype [,hatype]])";
11901187 will surely fail. */
11911188
11921189static PyObject *
1193- PySocketSock_close (PySocketSockObject * s , PyObject * args )
1190+ PySocketSock_close (PySocketSockObject * s )
11941191{
11951192 SOCKET_T fd ;
1196- if (!PyArg_ParseTuple (args , ":close" ))
1197- return NULL ;
1193+
11981194 if ((fd = s -> sock_fd ) != -1 ) {
11991195 s -> sock_fd = -1 ;
12001196 Py_BEGIN_ALLOW_THREADS
@@ -1214,14 +1210,12 @@ Close the socket. It cannot be used after this call.";
12141210/* s.connect(sockaddr) method */
12151211
12161212static PyObject *
1217- PySocketSock_connect (PySocketSockObject * s , PyObject * args )
1213+ PySocketSock_connect (PySocketSockObject * s , PyObject * addro )
12181214{
12191215 struct sockaddr * addr ;
12201216 int addrlen ;
12211217 int res ;
1222- PyObject * addro ;
1223- if (!PyArg_ParseTuple (args , "O:connect" , & addro ))
1224- return NULL ;
1218+
12251219 if (!getsockaddrarg (s , addro , & addr , & addrlen ))
12261220 return NULL ;
12271221 Py_BEGIN_ALLOW_THREADS
@@ -1243,14 +1237,12 @@ is a pair (host, port).";
12431237/* s.connect_ex(sockaddr) method */
12441238
12451239static PyObject *
1246- PySocketSock_connect_ex (PySocketSockObject * s , PyObject * args )
1240+ PySocketSock_connect_ex (PySocketSockObject * s , PyObject * addro )
12471241{
12481242 struct sockaddr * addr ;
12491243 int addrlen ;
12501244 int res ;
1251- PyObject * addro ;
1252- if (!PyArg_ParseTuple (args , "O:connect_ex" , & addro ))
1253- return NULL ;
1245+
12541246 if (!getsockaddrarg (s , addro , & addr , & addrlen ))
12551247 return NULL ;
12561248 Py_BEGIN_ALLOW_THREADS
@@ -1271,10 +1263,8 @@ instead of raising an exception when an error occurs.";
12711263/* s.fileno() method */
12721264
12731265static PyObject *
1274- PySocketSock_fileno (PySocketSockObject * s , PyObject * args )
1266+ PySocketSock_fileno (PySocketSockObject * s )
12751267{
1276- if (!PyArg_ParseTuple (args , ":fileno" ))
1277- return NULL ;
12781268#if SIZEOF_SOCKET_T <= SIZEOF_LONG
12791269 return PyInt_FromLong ((long ) s -> sock_fd );
12801270#else
@@ -1292,12 +1282,11 @@ Return the integer file descriptor of the socket.";
12921282/* s.dup() method */
12931283
12941284static PyObject *
1295- PySocketSock_dup (PySocketSockObject * s , PyObject * args )
1285+ PySocketSock_dup (PySocketSockObject * s )
12961286{
12971287 SOCKET_T newfd ;
12981288 PyObject * sock ;
1299- if (!PyArg_ParseTuple (args , ":dup" ))
1300- return NULL ;
1289+
13011290 newfd = dup (s -> sock_fd );
13021291 if (newfd < 0 )
13031292 return PySocket_Err ();
@@ -1321,14 +1310,12 @@ Return a new socket object connected to the same system resource.";
13211310/* s.getsockname() method */
13221311
13231312static PyObject *
1324- PySocketSock_getsockname (PySocketSockObject * s , PyObject * args )
1313+ PySocketSock_getsockname (PySocketSockObject * s )
13251314{
13261315 char addrbuf [256 ];
13271316 int res ;
13281317 socklen_t addrlen ;
13291318
1330- if (!PyArg_ParseTuple (args , ":getsockname" ))
1331- return NULL ;
13321319 if (!getsockaddrlen (s , & addrlen ))
13331320 return NULL ;
13341321 memset (addrbuf , 0 , addrlen );
@@ -1351,14 +1338,12 @@ info is a pair (hostaddr, port).";
13511338/* s.getpeername() method */
13521339
13531340static PyObject *
1354- PySocketSock_getpeername (PySocketSockObject * s , PyObject * args )
1341+ PySocketSock_getpeername (PySocketSockObject * s )
13551342{
13561343 char addrbuf [256 ];
13571344 int res ;
13581345 socklen_t addrlen ;
13591346
1360- if (!PyArg_ParseTuple (args , ":getpeername "))
1361- return NULL ;
13621347 if (!getsockaddrlen (s , & addrlen ))
13631348 return NULL ;
13641349 memset (addrbuf , 0 , addrlen ) ;
@@ -1382,11 +1367,13 @@ info is a pair (hostaddr, port).";
13821367/* s.listen(n) method */
13831368
13841369static PyObject *
1385- PySocketSock_listen (PySocketSockObject * s , PyObject * args )
1370+ PySocketSock_listen (PySocketSockObject * s , PyObject * arg )
13861371{
13871372 int backlog ;
13881373 int res ;
1389- if (!PyArg_ParseTuple (args , "i:listen" , & backlog ))
1374+
1375+ backlog = PyInt_AsLong (arg );
1376+ if (backlog == -1 && PyErr_Occurred ())
13901377 return NULL ;
13911378 Py_BEGIN_ALLOW_THREADS
13921379 if (backlog < 1 )
@@ -1606,11 +1593,13 @@ For IP sockets, the address is a pair (hostaddr, port).";
16061593/* s.shutdown(how) method */
16071594
16081595static PyObject *
1609- PySocketSock_shutdown (PySocketSockObject * s , PyObject * args )
1596+ PySocketSock_shutdown (PySocketSockObject * s , PyObject * arg )
16101597{
16111598 int how ;
16121599 int res ;
1613- if (!PyArg_ParseTuple (args , "i:shutdown" , & how ))
1600+
1601+ how = PyInt_AsLong (arg );
1602+ if (how == -1 && PyErr_Occurred ())
16141603 return NULL ;
16151604 Py_BEGIN_ALLOW_THREADS
16161605 res = shutdown (s -> sock_fd , how );
@@ -1631,31 +1620,31 @@ of the socket (flag == 1), or both ends (flag == 2).";
16311620/* List of methods for socket objects */
16321621
16331622static PyMethodDef PySocketSock_methods [] = {
1634- {"accept" , (PyCFunction )PySocketSock_accept , METH_VARARGS ,
1623+ {"accept" , (PyNoArgsFunction )PySocketSock_accept , METH_NOARGS ,
16351624 accept_doc },
1636- {"bind" , (PyCFunction )PySocketSock_bind , METH_VARARGS ,
1625+ {"bind" , (PyCFunction )PySocketSock_bind , METH_O ,
16371626 bind_doc },
1638- {"close" , (PyCFunction )PySocketSock_close , METH_VARARGS ,
1627+ {"close" , (PyNoArgsFunction )PySocketSock_close , METH_NOARGS ,
16391628 close_doc },
1640- {"connect" , (PyCFunction )PySocketSock_connect , METH_VARARGS ,
1629+ {"connect" , (PyCFunction )PySocketSock_connect , METH_O ,
16411630 connect_doc },
1642- {"connect_ex" , (PyCFunction )PySocketSock_connect_ex , METH_VARARGS ,
1631+ {"connect_ex" , (PyCFunction )PySocketSock_connect_ex , METH_O ,
16431632 connect_ex_doc },
16441633#ifndef NO_DUP
1645- {"dup" , (PyCFunction )PySocketSock_dup , METH_VARARGS ,
1634+ {"dup" , (PyNoArgsFunction )PySocketSock_dup , METH_NOARGS ,
16461635 dup_doc },
16471636#endif
1648- {"fileno" , (PyCFunction )PySocketSock_fileno , METH_VARARGS ,
1637+ {"fileno" , (PyNoArgsFunction )PySocketSock_fileno , METH_NOARGS ,
16491638 fileno_doc },
16501639#ifdef HAVE_GETPEERNAME
1651- {"getpeername" , (PyCFunction )PySocketSock_getpeername , METH_VARARGS ,
1652- getpeername_doc },
1640+ {"getpeername" , (PyNoArgsFunction )PySocketSock_getpeername ,
1641+ METH_NOARGS , getpeername_doc },
16531642#endif
1654- {"getsockname" , (PyCFunction )PySocketSock_getsockname , METH_VARARGS ,
1655- getsockname_doc },
1643+ {"getsockname" , (PyNoArgsFunction )PySocketSock_getsockname ,
1644+ METH_NOARGS , getsockname_doc },
16561645 {"getsockopt" , (PyCFunction )PySocketSock_getsockopt , METH_VARARGS ,
16571646 getsockopt_doc },
1658- {"listen" , (PyCFunction )PySocketSock_listen , METH_VARARGS ,
1647+ {"listen" , (PyCFunction )PySocketSock_listen , METH_O ,
16591648 listen_doc },
16601649#ifndef NO_DUP
16611650 {"makefile" , (PyCFunction )PySocketSock_makefile , METH_VARARGS ,
@@ -1669,11 +1658,11 @@ static PyMethodDef PySocketSock_methods[] = {
16691658 send_doc },
16701659 {"sendto" , (PyCFunction )PySocketSock_sendto , METH_VARARGS ,
16711660 sendto_doc },
1672- {"setblocking" , (PyCFunction )PySocketSock_setblocking , METH_VARARGS ,
1661+ {"setblocking" , (PyCFunction )PySocketSock_setblocking , METH_O ,
16731662 setblocking_doc },
16741663 {"setsockopt" , (PyCFunction )PySocketSock_setsockopt , METH_VARARGS ,
16751664 setsockopt_doc },
1676- {"shutdown" , (PyCFunction )PySocketSock_shutdown , METH_VARARGS ,
1665+ {"shutdown" , (PyCFunction )PySocketSock_shutdown , METH_O ,
16771666 shutdown_doc },
16781667#ifdef RISCOS
16791668 {"sleeptaskw" , (PyCFunction )PySocketSock_sleeptaskw , METH_VARARGS ,
0 commit comments