Mercurial > cpython-lru_cache-weakref
diff Modules/socketmodule.c @ 309:382323f92fce legacy-trunk
Connection sockets now have the proper family/type/proto values.
Fix argument handling bug in socket(f,t,p) call.
Fix some comments.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Mon, 01 Jul 1991 18:51:33 +0000 |
| parents | d7a38dece86a |
| children | a81020d505bf |
line wrap: on
line diff
--- a/Modules/socketmodule.c Mon Jul 01 18:48:44 1991 +0000 +++ b/Modules/socketmodule.c Mon Jul 01 18:51:33 1991 +0000 @@ -32,14 +32,14 @@ - only AF_INET and AF_UNIX address families are supported - no asynchronous I/O - no read/write operations (use send/recv instead) -- no flags on send/recv operations +- no flags on sendto/recvfrom operations - no setsockopt() call Interface: - socket.gethostbyname(hostname) --> host IP address (string: 'dd.dd.dd.dd') -- socket.getservbyname(server, type) --> port number -- socket.socket(family, type) --> new socket object +- socket.getservbyname(servername, protocolname) --> port number +- socket.socket(family, type [, proto]) --> new socket object - family and type constants from <socket.h> are accessed as socket.AF_INET etc. - errors are reported as the exception socket.error - an Internet socket address is a pair (hostname, port) @@ -325,7 +325,10 @@ return socket_error(); /* Create the new object with unspecified family, to avoid calls to bind() etc. on it. */ - res = makepair((object *) newsockobject(newfd, AF_UNSPEC, 0, 0), + res = makepair((object *) newsockobject(newfd, + s->sock_family, + s->sock_type, + s->sock_proto), makesockaddr((struct sockaddr *) addrbuf, addrlen)); if (res == NULL) close(newfd); @@ -666,7 +669,7 @@ sockobject *s; int family, type, proto, fd; if (args != NULL && is_tupleobject(args) && gettuplesize(args) == 3) { - if (!getintintarg(args, &family, &type, &proto)) + if (!getintintintarg(args, &family, &type, &proto)) return NULL; } else {
