Browse Source

Implement hidden listen, use the hidden listen/accept

Peter S. Mazinger 18 years ago
parent
commit
fa9147bb8f

+ 2 - 0
libc/inet/rpc/rcmd.c

@@ -53,6 +53,8 @@ static char sccsid[] = "@(#)rcmd.c	8.3 (Berkeley) 3/26/94";
 #define sigblock __sigblock
 #define snprintf __snprintf
 #define poll __poll
+#define accept __accept
+#define listen __listen
 
 #define __FORCE_GLIBC
 #include <features.h>

+ 2 - 0
libc/inet/rpc/rexec.c

@@ -35,6 +35,8 @@
 #define atoi __atoi
 #define connect __connect
 #define snprintf __snprintf
+#define accept __accept
+#define listen __listen
 
 #define __FORCE_GLIBC
 #include <features.h>

+ 2 - 0
libc/inet/rpc/svc_tcp.c

@@ -53,6 +53,8 @@ static char sccsid[] = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro";
 #define bind __bind
 #define bindresvport __bindresvport
 #define poll __poll
+#define accept __accept
+#define listen __listen
 
 #define __FORCE_GLIBC
 #define _GNU_SOURCE

+ 2 - 0
libc/inet/rpc/svc_unix.c

@@ -53,6 +53,8 @@
 #define recvmsg __recvmsg
 #define sendmsg __sendmsg
 #define poll __poll
+#define accept __accept
+#define listen __listen
 
 #define __FORCE_GLIBC
 #include <features.h>

+ 4 - 2
libc/inet/socketcalls.c

@@ -139,9 +139,10 @@ int getsockopt(int fd, int level, int optname, __ptr_t optval,
 
 #ifdef L_listen
 #ifdef __NR_listen
-_syscall2(int, listen, int, sockfd, int, backlog);
+#define __NR___listen __NR_listen
+attribute_hidden _syscall2(int, __listen, int, sockfd, int, backlog);
 #elif defined(__NR_socketcall)
-int listen(int sockfd, int backlog)
+int attribute_hidden __listen(int sockfd, int backlog)
 {
 	unsigned long args[2];
 
@@ -150,6 +151,7 @@ int listen(int sockfd, int backlog)
 	return __socketcall(SYS_LISTEN, args);
 }
 #endif
+strong_alias(__listen,listen)
 #endif
 
 #ifdef L_recv

+ 1 - 0
libc/stdio/_stdio.h

@@ -44,6 +44,7 @@ extern int __vfwprintf (__FILE *__restrict __s,
 extern int __vfwscanf (__FILE *__restrict __s,
 		     __const wchar_t *__restrict __format,
 		     __gnuc_va_list __arg) attribute_hidden;
+
 extern int __vswscanf (__const wchar_t *__restrict __s,
 		     __const wchar_t *__restrict __format,
 		     __gnuc_va_list __arg) __THROW attribute_hidden;