@@ -45,15 +45,12 @@ Module interface:
4545- a UNIX domain socket address is a string specifying the pathname
4646
4747Socket methods:
48- (NB: an argument list of the form (sockaddr...) means that multiple
49- arguments are treated the same as a single tuple argument, for backwards
50- compatibility. This is deprecated, and will be removed in future versions.)
5148
5249- s.accept() --> new socket object, sockaddr
53- - s.bind(sockaddr... ) --> None
50+ - s.bind(sockaddr) --> None
5451- s.close() --> None
55- - s.connect(sockaddr... ) --> None
56- - s.connect_ex(sockaddr... ) --> 0 or errno (handy for e.g. async connect)
52+ - s.connect(sockaddr) --> None
53+ - s.connect_ex(sockaddr) --> 0 or errno (handy for e.g. async connect)
5754- s.fileno() --> file descriptor
5855- s.dup() --> same as socket.fromfd(os.dup(s.fileno(), ...)
5956- s.getpeername() --> sockaddr
@@ -856,15 +853,18 @@ If a nonzero buffersize argument is given, the return value is a\n\
856853string of that length; otherwise it is an integer." ;
857854
858855
859- /* s.bind(sockaddr... ) method */
856+ /* s.bind(sockaddr) method */
860857
861858static PyObject *
862859BUILD_FUNC_DEF_2 (PySocketSock_bind ,PySocketSockObject * ,s , PyObject * ,args )
863860{
864861 struct sockaddr * addr ;
865862 int addrlen ;
866863 int res ;
867- if (!getsockaddrarg (s , args , & addr , & addrlen ))
864+ PyObject * addro ;
865+ if (!PyArg_ParseTuple (args , "O:bind" , & addro ))
866+ return NULL ;
867+ if (!getsockaddrarg (s , addro , & addr , & addrlen ))
868868 return NULL ;
869869 Py_BEGIN_ALLOW_THREADS
870870 res = bind (s -> sock_fd , addr , addrlen );
@@ -907,15 +907,18 @@ static char close_doc[] =
907907Close the socket. It cannot be used after this call." ;
908908
909909
910- /* s.connect(sockaddr... ) method */
910+ /* s.connect(sockaddr) method */
911911
912912static PyObject *
913913BUILD_FUNC_DEF_2 (PySocketSock_connect ,PySocketSockObject * ,s , PyObject * ,args )
914914{
915915 struct sockaddr * addr ;
916916 int addrlen ;
917917 int res ;
918- if (!getsockaddrarg (s , args , & addr , & addrlen ))
918+ PyObject * addro ;
919+ if (!PyArg_ParseTuple (args , "O:connect" , & addro ))
920+ return NULL ;
921+ if (!getsockaddrarg (s , addro , & addr , & addrlen ))
919922 return NULL ;
920923 Py_BEGIN_ALLOW_THREADS
921924 res = connect (s -> sock_fd , addr , addrlen );
@@ -933,15 +936,18 @@ Connect the socket to a remote address. For IP sockets, the address\n\
933936is a pair (host, port)." ;
934937
935938
936- /* s.connect_ex(sockaddr... ) method */
939+ /* s.connect_ex(sockaddr) method */
937940
938941static PyObject *
939942BUILD_FUNC_DEF_2 (PySocketSock_connect_ex ,PySocketSockObject * ,s , PyObject * ,args )
940943{
941944 struct sockaddr * addr ;
942945 int addrlen ;
943946 int res ;
944- if (!getsockaddrarg (s , args , & addr , & addrlen ))
947+ PyObject * addro ;
948+ if (!PyArg_ParseTuple (args , "O:connect_ex" , & addro ))
949+ return NULL ;
950+ if (!getsockaddrarg (s , addro , & addr , & addrlen ))
945951 return NULL ;
946952 Py_BEGIN_ALLOW_THREADS
947953 res = connect (s -> sock_fd , addr , addrlen );
@@ -1321,13 +1327,13 @@ of the socket (flag == 1), or both ends (flag == 2).";
13211327static PyMethodDef PySocketSock_methods [] = {
13221328 {"accept" , (PyCFunction )PySocketSock_accept , 1 ,
13231329 accept_doc },
1324- {"bind" , (PyCFunction )PySocketSock_bind , 0 ,
1330+ {"bind" , (PyCFunction )PySocketSock_bind , 1 ,
13251331 bind_doc },
13261332 {"close" , (PyCFunction )PySocketSock_close , 1 ,
13271333 close_doc },
1328- {"connect" , (PyCFunction )PySocketSock_connect , 0 ,
1334+ {"connect" , (PyCFunction )PySocketSock_connect , 1 ,
13291335 connect_doc },
1330- {"connect_ex" , (PyCFunction )PySocketSock_connect_ex , 0 ,
1336+ {"connect_ex" , (PyCFunction )PySocketSock_connect_ex , 1 ,
13311337 connect_ex_doc },
13321338#ifndef NO_DUP
13331339 {"dup" , (PyCFunction )PySocketSock_dup , 1 ,
0 commit comments