[Python-checkins] CVS: python/dist/src/Modules socketmodule.c,1.111,1.112

Fred L. Drake python-dev@python.org
2000年6月30日 20:40:15 -0700


Update of /cvsroot/python/python/dist/src/Modules
In directory slayer.i.sourceforge.net:/tmp/cvs-serv11696
Modified Files:
	socketmodule.c 
Log Message:
Restore strict checking of socket address values; addresses passed to
the bind(), connect(), and connect_ex() methods must be a single
parameter.
Originally part of 1.98, reverted in 1.100.
Index: socketmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.c,v
retrieving revision 1.111
retrieving revision 1.112
diff -C2 -r1.111 -r1.112
*** socketmodule.c	2000年06月30日 23:58:05	1.111
--- socketmodule.c	2000年07月01日 03:40:12	1.112
***************
*** 46,58 ****
 
 Socket methods:
- (NB: an argument list of the form (sockaddr...) means that multiple
- arguments are treated the same as a single tuple argument, for backwards
- compatibility. This is deprecated, and will be removed in future versions.)
 
 - s.accept() --> new socket object, sockaddr
! - s.bind(sockaddr...) --> None
 - s.close() --> None
! - s.connect(sockaddr...) --> None
! - s.connect_ex(sockaddr...) --> 0 or errno (handy for e.g. async connect)
 - s.fileno() --> file descriptor
 - s.dup() --> same as socket.fromfd(os.dup(s.fileno(), ...)
--- 46,55 ----
 
 Socket methods:
 
 - s.accept() --> new socket object, sockaddr
! - s.bind(sockaddr) --> None
 - s.close() --> None
! - s.connect(sockaddr) --> None
! - s.connect_ex(sockaddr) --> 0 or errno (handy for e.g. async connect)
 - s.fileno() --> file descriptor
 - s.dup() --> same as socket.fromfd(os.dup(s.fileno(), ...)
***************
*** 857,861 ****
 
 
! /* s.bind(sockaddr...) method */
 
 static PyObject *
--- 854,858 ----
 
 
! /* s.bind(sockaddr) method */
 
 static PyObject *
***************
*** 865,869 ****
 	int addrlen;
 	int res;
! 	if (!getsockaddrarg(s, args, &addr, &addrlen))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
--- 862,869 ----
 	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
***************
*** 908,912 ****
 
 
! /* s.connect(sockaddr...) method */
 
 static PyObject *
--- 908,912 ----
 
 
! /* s.connect(sockaddr) method */
 
 static PyObject *
***************
*** 916,921 ****
 	int addrlen;
 	int res;
! 	if (!getsockaddrarg(s, args, &addr, &addrlen))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
 	res = connect(s->sock_fd, addr, addrlen);
--- 916,924 ----
 	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
 	res = connect(s->sock_fd, addr, addrlen);
***************
*** 934,938 ****
 
 
! /* s.connect_ex(sockaddr...) method */
 
 static PyObject *
--- 937,941 ----
 
 
! /* s.connect_ex(sockaddr) method */
 
 static PyObject *
***************
*** 942,946 ****
 	int addrlen;
 	int res;
! 	if (!getsockaddrarg(s, args, &addr, &addrlen))
 		return NULL;
 	Py_BEGIN_ALLOW_THREADS
--- 945,952 ----
 	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
***************
*** 1322,1332 ****
 	{"accept",		(PyCFunction)PySocketSock_accept, 1,
 				accept_doc},
! 	{"bind",		(PyCFunction)PySocketSock_bind, 0,
 				bind_doc},
 	{"close",		(PyCFunction)PySocketSock_close, 1,
 				close_doc},
! 	{"connect",		(PyCFunction)PySocketSock_connect, 0,
 				connect_doc},
! 	{"connect_ex",		(PyCFunction)PySocketSock_connect_ex, 0,
 				connect_ex_doc},
 #ifndef NO_DUP
--- 1328,1338 ----
 	{"accept",		(PyCFunction)PySocketSock_accept, 1,
 				accept_doc},
! 	{"bind",		(PyCFunction)PySocketSock_bind, 1,
 				bind_doc},
 	{"close",		(PyCFunction)PySocketSock_close, 1,
 				close_doc},
! 	{"connect",		(PyCFunction)PySocketSock_connect, 1,
 				connect_doc},
! 	{"connect_ex",		(PyCFunction)PySocketSock_connect_ex, 1,
 				connect_ex_doc},
 #ifndef NO_DUP

AltStyle によって変換されたページ (->オリジナル) /