diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-04-03 17:13:27 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-04-03 17:13:27 +0400 |
commit | 2657d3f4862f0e2dc6800aed7759c7cdd05c14eb (patch) | |
tree | da271e730d13ef449f2488c14d19c8f2605b377c /libc/debian/patches | |
parent | 06524515cb36cb7ebb9eeaf8b6445198ef80beb9 (diff) | |
download | illumos-packaging-2657d3f4862f0e2dc6800aed7759c7cdd05c14eb.tar.gz |
Implemented accept through the old syscall
Diffstat (limited to 'libc/debian/patches')
-rw-r--r-- | libc/debian/patches/libc-accept.patch | 93 | ||||
-rw-r--r-- | libc/debian/patches/series | 1 |
2 files changed, 94 insertions, 0 deletions
diff --git a/libc/debian/patches/libc-accept.patch b/libc/debian/patches/libc-accept.patch new file mode 100644 index 0000000..2d28208 --- /dev/null +++ b/libc/debian/patches/libc-accept.patch @@ -0,0 +1,93 @@ +Index: libc/usr/src/lib/libc/common/sys/_so_accept.s +=================================================================== +--- libc.orig/usr/src/lib/libc/common/sys/_so_accept.s 2014-03-01 16:18:11.000000000 +0400 ++++ libc/usr/src/lib/libc/common/sys/_so_accept.s 2014-04-03 15:11:34.941679423 +0400 +@@ -33,8 +33,8 @@ + + /* C library -- __so_accept */ + /* +- * int __so_accept(int sock, struct sockaddr *addr, int *addrlen, int vers, +- * int flags) ++ * int __so_accept(int sock, struct sockaddr *addr, int *addrlen, int vers) ++ * int __so_accept4(int sock, struct sockaddr *addr, int *addrlen, int vers, int flags) + */ + + #include "SYS.h" +@@ -42,3 +42,7 @@ + SYSCALL2_RVAL1(__so_accept,accept) + RET + SET_SIZE(__so_accept) ++ ++ SYSCALL2_RVAL1(__so_accept4,accept4) ++ RET ++ SET_SIZE(__so_accept4) +Index: libc/usr/src/lib/libc/port/threads/scalls.c +=================================================================== +--- libc.orig/usr/src/lib/libc/port/threads/scalls.c 2014-04-03 10:50:29.980299122 +0400 ++++ libc/usr/src/lib/libc/port/threads/scalls.c 2014-04-03 15:12:54.000556865 +0400 +@@ -1024,13 +1024,22 @@ + } + + int +-_so_accept(int sock, struct sockaddr *addr, uint_t *addrlen, int version, ++_so_accept(int sock, struct sockaddr *addr, uint_t *addrlen, int version) ++{ ++ extern int __so_accept(int, struct sockaddr *, uint_t *, int); ++ int rv; ++ ++ PERFORM(__so_accept(sock, addr, addrlen, version)) ++} ++ ++int ++_so_accept4(int sock, struct sockaddr *addr, uint_t *addrlen, int version, + int flags) + { +- extern int __so_accept(int, struct sockaddr *, uint_t *, int, int); ++ extern int __so_accept4(int, struct sockaddr *, uint_t *, int, int); + int rv; + +- PERFORM(__so_accept(sock, addr, addrlen, version, flags)) ++ PERFORM(__so_accept4(sock, addr, addrlen, version, flags)) + } + + int +Index: libc/usr/src/lib/libsocket/socket/weaks.c +=================================================================== +--- libc.orig/usr/src/lib/libsocket/socket/weaks.c 2014-04-03 10:50:46.271670133 +0400 ++++ libc/usr/src/lib/libsocket/socket/weaks.c 2014-04-03 15:25:55.056118010 +0400 +@@ -61,6 +61,7 @@ + extern int _so_bind(); + extern int _so_listen(); + extern int _so_accept(); ++extern int _so_accept4(); + extern int _so_connect(); + extern int _so_shutdown(); + extern int _so_recv(); +@@ -93,13 +94,13 @@ + int + _accept(int sock, struct sockaddr *addr, int *addrlen) + { +- return (_so_accept(sock, addr, addrlen, SOV_DEFAULT, 0)); ++ return (_so_accept(sock, addr, addrlen, SOV_DEFAULT)); + } + + int + _accept4(int sock, struct sockaddr *addr, int *addrlen, int flags) + { +- return (_so_accept(sock, addr, addrlen, SOV_DEFAULT, flags)); ++ return (_so_accept4(sock, addr, addrlen, SOV_DEFAULT, flags)); + } + + int +Index: libc/usr/src/lib/libc/port/mapfile-vers +=================================================================== +--- libc.orig/usr/src/lib/libc/port/mapfile-vers 2014-04-03 10:50:48.920489683 +0400 ++++ libc/usr/src/lib/libc/port/mapfile-vers 2014-04-03 15:29:38.052488239 +0400 +@@ -120,6 +120,7 @@ + + SYMBOL_VERSION DYSON_1 { + global: ++ _so_accept4; + cfmakeraw; + error; + error_at_line; diff --git a/libc/debian/patches/series b/libc/debian/patches/series index e0c008c..8a4040c 100644 --- a/libc/debian/patches/series +++ b/libc/debian/patches/series @@ -103,3 +103,4 @@ syslog-names.patch syslog-LOG_PERROR.patch illumos-4688-getlogin_r.patch libc-pipe.patch +libc-accept.patch |