X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsys_socket.in.h;h=63c80fff0cc5b789f1b5f45991a1e85774672a08;hb=b314ca18dc36e59297f66b2508fd58535a1cd724;hp=145408fd65e72e038b9d600966d261024489a999;hpb=ce8789a332a21bd438de0bafebec6de3125308ff;p=gnulib.git diff --git a/lib/sys_socket.in.h b/lib/sys_socket.in.h index 145408fd6..63c80fff0 100644 --- a/lib/sys_socket.in.h +++ b/lib/sys_socket.in.h @@ -27,7 +27,9 @@ #if @HAVE_SYS_SOCKET_H@ +# if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ +# endif /* On many platforms, assumes prior inclusion of . */ @@ -98,6 +100,8 @@ # define SHUT_RDWR SD_BOTH # endif +/* The definition of GL_LINK_WARNING is copied here. */ + # if @HAVE_WINSOCK2_H@ /* Include headers needed by the emulation code. */ # include @@ -105,16 +109,20 @@ typedef int socklen_t; -# ifdef __cplusplus +# endif + +# ifdef __cplusplus extern "C" { -# endif +# endif -/* Re-define FD_ISSET to avoid a WSA call while we are not using +# if @HAVE_WINSOCK2_H@ + +/* Re-define FD_ISSET to avoid a WSA call while we are not using network sockets. */ static inline int -rpl_fd_isset (int fd, fd_set * set) +rpl_fd_isset (SOCKET fd, fd_set * set) { - int i; + u_int i; if (set == NULL) return 0; @@ -128,62 +136,266 @@ rpl_fd_isset (int fd, fd_set * set) # undef FD_ISSET # define FD_ISSET(fd, set) rpl_fd_isset(fd, set) +# endif + /* Wrap everything else to use libc file descriptors for sockets. */ +# if @HAVE_WINSOCK2_H@ && !defined _GL_UNISTD_H # undef close -# define close rpl_close -# undef socket -# define socket rpl_socket -# undef connect -# define connect rpl_connect -# undef accept -# define accept rpl_accept -# undef bind -# define bind rpl_bind -# undef getpeername -# define getpeername rpl_getpeername -# undef getsockname -# define getsockname rpl_getsockname -# undef getsockopt -# define getsockopt rpl_getsockopt -# undef listen -# define listen rpl_listen -# undef ioctl -# define ioctl rpl_ioctl -# undef recv -# define recv rpl_recv -# undef send -# define send rpl_send -# undef recvfrom -# define recvfrom rpl_recvfrom -# undef sendto -# define sendto rpl_sendto -# undef setsockopt -# define setsockopt rpl_setsockopt -# undef select -# define select select_used_without_including_sys_select_h +# define close close_used_without_including_unistd_h +# endif -extern int rpl_close(int); +# if @HAVE_WINSOCK2_H@ && !defined _GL_UNISTD_H +# undef gethostname +# define gethostname gethostname_used_without_including_unistd_h +# endif + +# if @GNULIB_SOCKET@ +# if @HAVE_WINSOCK2_H@ +# undef socket +# define socket rpl_socket extern int rpl_socket (int, int, int protocol); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef socket +# define socket socket_used_without_requesting_gnulib_module_socket +# elif defined GNULIB_POSIXCHECK +# undef socket +# define socket(d,t,p) \ + (GL_LINK_WARNING ("socket is not always POSIX compliant - " \ + "use gnulib module socket for portability"), \ + socket (d, t, p)) +# endif + +# if @GNULIB_CONNECT@ +# if @HAVE_WINSOCK2_H@ +# undef connect +# define connect rpl_connect extern int rpl_connect (int, struct sockaddr *, int); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef connect +# define connect socket_used_without_requesting_gnulib_module_connect +# elif defined GNULIB_POSIXCHECK +# undef connect +# define connect(s,a,l) \ + (GL_LINK_WARNING ("connect is not always POSIX compliant - " \ + "use gnulib module connect for portability"), \ + connect (s, a, l)) +# endif + +# if @GNULIB_ACCEPT@ +# if @HAVE_WINSOCK2_H@ +# undef accept +# define accept rpl_accept extern int rpl_accept (int, struct sockaddr *, int *); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef accept +# define accept accept_used_without_requesting_gnulib_module_accept +# elif defined GNULIB_POSIXCHECK +# undef accept +# define accept(s,a,l) \ + (GL_LINK_WARNING ("accept is not always POSIX compliant - " \ + "use gnulib module accept for portability"), \ + accept (s, a, l)) +# endif + +# if @GNULIB_BIND@ +# if @HAVE_WINSOCK2_H@ +# undef bind +# define bind rpl_bind extern int rpl_bind (int, struct sockaddr *, int); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef bind +# define bind bind_used_without_requesting_gnulib_module_bind +# elif defined GNULIB_POSIXCHECK +# undef bind +# define bind(s,a,l) \ + (GL_LINK_WARNING ("bind is not always POSIX compliant - " \ + "use gnulib module bind for portability"), \ + bind (s, a, l)) +# endif + +# if @GNULIB_GETPEERNAME@ +# if @HAVE_WINSOCK2_H@ +# undef getpeername +# define getpeername rpl_getpeername extern int rpl_getpeername (int, struct sockaddr *, int *); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef getpeername +# define getpeername getpeername_used_without_requesting_gnulib_module_getpeername +# elif defined GNULIB_POSIXCHECK +# undef getpeername +# define getpeername(s,a,l) \ + (GL_LINK_WARNING ("getpeername is not always POSIX compliant - " \ + "use gnulib module getpeername for portability"), \ + getpeername (s, a, l)) +# endif + +# if @GNULIB_GETSOCKNAME@ +# if @HAVE_WINSOCK2_H@ +# undef getsockname +# define getsockname rpl_getsockname extern int rpl_getsockname (int, struct sockaddr *, int *); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef getsockname +# define getsockname getsockname_used_without_requesting_gnulib_module_getsockname +# elif defined GNULIB_POSIXCHECK +# undef getsockname +# define getsockname(s,a,l) \ + (GL_LINK_WARNING ("getsockname is not always POSIX compliant - " \ + "use gnulib module getsockname for portability"), \ + getsockname (s, a, l)) +# endif + +# if @GNULIB_GETSOCKOPT@ +# if @HAVE_WINSOCK2_H@ +# undef getsockopt +# define getsockopt rpl_getsockopt extern int rpl_getsockopt (int, int, int, void *, int *); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef getsockopt +# define getsockopt getsockopt_used_without_requesting_gnulib_module_getsockopt +# elif defined GNULIB_POSIXCHECK +# undef getsockopt +# define getsockopt(s,lvl,o,v,l) \ + (GL_LINK_WARNING ("getsockopt is not always POSIX compliant - " \ + "use gnulib module getsockopt for portability"), \ + getsockopt (s, lvl, o, v, l)) +# endif + +# if @GNULIB_LISTEN@ +# if @HAVE_WINSOCK2_H@ +# undef listen +# define listen rpl_listen extern int rpl_listen (int, int); -extern int rpl_ioctl (int, unsigned long, char *); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef listen +# define listen listen_used_without_requesting_gnulib_module_listen +# elif defined GNULIB_POSIXCHECK +# undef listen +# define listen(s,b) \ + (GL_LINK_WARNING ("listen is not always POSIX compliant - " \ + "use gnulib module listen for portability"), \ + listen (s, b)) +# endif + +# if @GNULIB_RECV@ +# if @HAVE_WINSOCK2_H@ +# undef recv +# define recv rpl_recv extern int rpl_recv (int, void *, int, int); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef recv +# define recv recv_used_without_requesting_gnulib_module_recv +# elif defined GNULIB_POSIXCHECK +# undef recv +# define recv(s,b,n,f) \ + (GL_LINK_WARNING ("recv is not always POSIX compliant - " \ + "use gnulib module recv for portability"), \ + recv (s, b, n, f)) +# endif + +# if @GNULIB_SEND@ +# if @HAVE_WINSOCK2_H@ +# undef send +# define send rpl_send extern int rpl_send (int, const void *, int, int); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef send +# define send send_used_without_requesting_gnulib_module_send +# elif defined GNULIB_POSIXCHECK +# undef send +# define send(s,b,n,f) \ + (GL_LINK_WARNING ("send is not always POSIX compliant - " \ + "use gnulib module send for portability"), \ + send (s, b, n, f)) +# endif + +# if @GNULIB_RECVFROM@ +# if @HAVE_WINSOCK2_H@ +# undef recvfrom +# define recvfrom rpl_recvfrom extern int rpl_recvfrom (int, void *, int, int, struct sockaddr *, int *); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef recvfrom +# define recvfrom recvfrom_used_without_requesting_gnulib_module_recvfrom +# elif defined GNULIB_POSIXCHECK +# undef recvfrom +# define recvfrom(s,b,n,f,a,l) \ + (GL_LINK_WARNING ("recvfrom is not always POSIX compliant - " \ + "use gnulib module recvfrom for portability"), \ + recvfrom (s, b, n, f, a, l)) +# endif + +# if @GNULIB_SENDTO@ +# if @HAVE_WINSOCK2_H@ +# undef sendto +# define sendto rpl_sendto extern int rpl_sendto (int, const void *, int, int, struct sockaddr *, int); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef sendto +# define sendto sendto_used_without_requesting_gnulib_module_sendto +# elif defined GNULIB_POSIXCHECK +# undef sendto +# define sendto(s,b,n,f,a,l) \ + (GL_LINK_WARNING ("sendto is not always POSIX compliant - " \ + "use gnulib module sendto for portability"), \ + sendto (s, b, n, f, a, l)) +# endif + +# if @GNULIB_SETSOCKOPT@ +# if @HAVE_WINSOCK2_H@ +# undef setsockopt +# define setsockopt rpl_setsockopt extern int rpl_setsockopt (int, int, int, const void *, int); +# endif +# elif @HAVE_WINSOCK2_H@ +# undef setsockopt +# define setsockopt setsockopt_used_without_requesting_gnulib_module_setsockopt +# elif defined GNULIB_POSIXCHECK +# undef setsockopt +# define setsockopt(s,lvl,o,v,l) \ + (GL_LINK_WARNING ("setsockopt is not always POSIX compliant - " \ + "use gnulib module setsockopt for portability"), \ + setsockopt (s, lvl, o, v, l)) +# endif -# ifdef __cplusplus -} +# if @GNULIB_SHUTDOWN@ +# if @HAVE_WINSOCK2_H@ +# undef shutdown +# define shutdown rpl_shutdown +extern int rpl_shutdown (int, int); # endif +# elif @HAVE_WINSOCK2_H@ +# undef shutdown +# define shutdown shutdown_used_without_requesting_gnulib_module_shutdown +# elif defined GNULIB_POSIXCHECK +# undef shutdown +# define shutdown(s,h) \ + (GL_LINK_WARNING ("shutdown is not always POSIX compliant - " \ + "use gnulib module shutdown for portability"), \ + shutdown (s, h)) +# endif + +# if @HAVE_WINSOCK2_H@ +# undef select +# define select select_used_without_including_sys_select_h +# endif -# endif /* HAVE_WINSOCK2_H */ +# ifdef __cplusplus +} +# endif #endif /* HAVE_SYS_SOCKET_H */