Mercurial > cpython-lru_cache-weakref
diff Modules/socketmodule.c @ 1094:d2af6bdcb6d0 legacy-trunk
* config.c: Added audioop to lists.
* Makefile: change default source directory
* socketmodule.c: added getsockname and getpeername
* bltinmodule.c: corrected typo in type() error message
* Added new built-in functions str() and repr(): repr(x) == `x`;
str(x) == x if x is a string, otherwise str(x) == repr(x).
* Added joinfields to stropmodule.c (string.join calls joinfields now)
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 26 Nov 1992 08:54:07 +0000 |
| parents | 6aa0ee14ac2e |
| children | 3dd7b8255619 |
line wrap: on
line diff
--- a/Modules/socketmodule.c Mon Nov 16 16:56:04 1992 +0000 +++ b/Modules/socketmodule.c Thu Nov 26 08:54:07 1992 +0000 @@ -57,6 +57,8 @@ - s.getsockopt(level, optname) --> flag - s.bind(sockaddr) --> None - s.connect(sockaddr) --> None +- s.getsockname() --> sockaddr +- s.getpeername() --> sockaddr - s.listen(n) --> None - s.makefile(mode) --> file object - s.recv(nbytes) --> string @@ -564,6 +566,50 @@ } +/* s.getsockname() method */ + +static object * +sock_getsockname(s, args) + sockobject *s; + object *args; +{ + char addrbuf[256]; + int addrlen, res; + if (!getnoarg(args)) + return NULL; + if (!getsockaddrlen(s, &addrlen)) + return NULL; + BGN_SAVE + res = getsockname(s->sock_fd, (struct sockaddr *) addrbuf, &addrlen); + END_SAVE + if (res < 0) + return socket_error(); + return makesockaddr((struct sockaddr *) addrbuf, addrlen); +} + + +/* s.getpeername() method */ + +static object * +sock_getpeername(s, args) + sockobject *s; + object *args; +{ + char addrbuf[256]; + int addrlen, res; + if (!getnoarg(args)) + return NULL; + if (!getsockaddrlen(s, &addrlen)) + return NULL; + BGN_SAVE + res = getpeername(s->sock_fd, (struct sockaddr *) addrbuf, &addrlen); + END_SAVE + if (res < 0) + return socket_error(); + return makesockaddr((struct sockaddr *) addrbuf, addrlen); +} + + /* s.listen(n) method */ static object * @@ -753,6 +799,8 @@ {"close", sock_close}, {"connect", sock_connect}, {"fileno", sock_fileno}, + {"getsockname", sock_getsockname}, + {"getpeername", sock_getpeername}, {"listen", sock_listen}, {"makefile", sock_makefile}, {"recv", sock_recv},
