From 0ecb606cb6cf65de1d9fc8a919bceb4be476c602 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 12 Jul 2007 18:26:36 +0000 Subject: 2.5-18.1 --- socket/Makefile | 4 +-- socket/accept.c | 40 +++++++++++++++++++++++++++++ socket/bind.c | 36 ++++++++++++++++++++++++++ socket/bits/socket2.h | 56 ++++++++++++++++++++++++++++++++++++++++ socket/connect.c | 38 +++++++++++++++++++++++++++ socket/getpeername.c | 36 ++++++++++++++++++++++++++ socket/getsockname.c | 36 ++++++++++++++++++++++++++ socket/getsockopt.c | 38 +++++++++++++++++++++++++++ socket/isfdtype.c | 31 ++++++++++++++++++++++ socket/listen.c | 37 +++++++++++++++++++++++++++ socket/opensock.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++ socket/recv.c | 37 +++++++++++++++++++++++++++ socket/recvfrom.c | 41 +++++++++++++++++++++++++++++ socket/recvmsg.c | 37 +++++++++++++++++++++++++++ socket/send.c | 37 +++++++++++++++++++++++++++ socket/sendmsg.c | 37 +++++++++++++++++++++++++++ socket/sendto.c | 40 +++++++++++++++++++++++++++++ socket/setsockopt.c | 40 +++++++++++++++++++++++++++++ socket/shutdown.c | 39 ++++++++++++++++++++++++++++ socket/sockatmark.c | 33 ++++++++++++++++++++++++ socket/socket.c | 38 +++++++++++++++++++++++++++ socket/socketpair.c | 39 ++++++++++++++++++++++++++++ socket/sys/socket.h | 8 +++++- 23 files changed, 846 insertions(+), 3 deletions(-) create mode 100644 socket/accept.c create mode 100644 socket/bind.c create mode 100644 socket/bits/socket2.h create mode 100644 socket/connect.c create mode 100644 socket/getpeername.c create mode 100644 socket/getsockname.c create mode 100644 socket/getsockopt.c create mode 100644 socket/isfdtype.c create mode 100644 socket/listen.c create mode 100644 socket/opensock.c create mode 100644 socket/recv.c create mode 100644 socket/recvfrom.c create mode 100644 socket/recvmsg.c create mode 100644 socket/send.c create mode 100644 socket/sendmsg.c create mode 100644 socket/sendto.c create mode 100644 socket/setsockopt.c create mode 100644 socket/shutdown.c create mode 100644 socket/sockatmark.c create mode 100644 socket/socket.c create mode 100644 socket/socketpair.c (limited to 'socket') diff --git a/socket/Makefile b/socket/Makefile index 594e609db5..aa0776e5bf 100644 --- a/socket/Makefile +++ b/socket/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. +# Copyright (C) 1991,1995-2001,2005 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,7 @@ subdir := socket headers := sys/socket.h sys/un.h bits/sockaddr.h bits/socket.h \ - sys/socketvar.h net/if.h + bits/socket2.h sys/socketvar.h net/if.h routines := accept bind connect getpeername getsockname getsockopt \ listen recv recvfrom recvmsg send sendmsg sendto \ diff --git a/socket/accept.c b/socket/accept.c new file mode 100644 index 0000000000..dad34ceddd --- /dev/null +++ b/socket/accept.c @@ -0,0 +1,40 @@ +/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Await a connection on socket FD. + When a connection arrives, open a new socket to communicate with it, + set *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting + peer and *ADDR_LEN to the address's actual length, and return the + new socket's descriptor, or -1 for errors. */ +int +accept (fd, addr, addr_len) + int fd; + __SOCKADDR_ARG addr; + socklen_t *addr_len; +{ + __set_errno (ENOSYS); + return -1; +} +libc_hidden_def (accept) + + +stub_warning (accept) +#include diff --git a/socket/bind.c b/socket/bind.c new file mode 100644 index 0000000000..382e29db16 --- /dev/null +++ b/socket/bind.c @@ -0,0 +1,36 @@ +/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Give the socket FD the local address ADDR (which is LEN bytes long). */ +int +__bind (fd, addr, len) + int fd; + __CONST_SOCKADDR_ARG addr; + socklen_t len; +{ + __set_errno (ENOSYS); + return -1; +} + +weak_alias (__bind, bind) + +stub_warning (bind) +#include diff --git a/socket/bits/socket2.h b/socket/bits/socket2.h new file mode 100644 index 0000000000..2543ea37d4 --- /dev/null +++ b/socket/bits/socket2.h @@ -0,0 +1,56 @@ +/* Checking macros for socket functions. + Copyright (C) 2005 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _SYS_SOCKET_H +# error "Never include directly; use instead." +#endif + +extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen, + int __flags); +extern ssize_t __REDIRECT (__recv_alias, (int __fd, void *__buf, size_t __n, + int __flags), recv); + +extern __always_inline ssize_t +recv (int __fd, void *__buf, size_t __n, int __flags) +{ + if (__bos0 (__buf) != (size_t) -1 + && (!__builtin_constant_p (__n) || __n > __bos0 (__buf))) + return __recv_chk (__fd, __buf, __n, __bos0 (__buf), __flags); + return __recv_alias (__fd, __buf, __n, __flags); +} + +extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n, + size_t __buflen, int __flags, + __SOCKADDR_ARG __addr, + socklen_t *__restrict __addr_len); +extern ssize_t __REDIRECT (__recvfrom_alias, + (int __fd, void *__restrict __buf, size_t __n, + int __flags, __SOCKADDR_ARG __addr, + socklen_t *__restrict __addr_len), recvfrom); + +extern __always_inline ssize_t +recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, + __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) +{ + if (__bos0 (__buf) != (size_t) -1 + && (!__builtin_constant_p (__n) || __n > __bos0 (__buf))) + return __recvfrom_chk (__fd, __buf, __n, __bos0 (__buf), __flags, + __addr, __addr_len); + return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len); +} diff --git a/socket/connect.c b/socket/connect.c new file mode 100644 index 0000000000..55093313c9 --- /dev/null +++ b/socket/connect.c @@ -0,0 +1,38 @@ +/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Open a connection on socket FD to peer at ADDR (which LEN bytes long). + For connectionless socket types, just set the default address to send to + and the only address from which to accept transmissions. + Return 0 on success, -1 for errors. */ +int +__connect (fd, addr, len) + int fd; + __CONST_SOCKADDR_ARG addr; + socklen_t len; +{ + __set_errno (ENOSYS); + return -1; +} +weak_alias (__connect, connect) + +stub_warning (connect) +#include diff --git a/socket/getpeername.c b/socket/getpeername.c new file mode 100644 index 0000000000..6507387bd1 --- /dev/null +++ b/socket/getpeername.c @@ -0,0 +1,36 @@ +/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Put the address of the peer connected to socket FD into *ADDR + (which is *LEN bytes long), and its actual length into *LEN. */ +int +getpeername (fd, addr, len) + int fd; + __SOCKADDR_ARG addr; + socklen_t *len; +{ + __set_errno (ENOSYS); + return -1; +} + + +stub_warning (getpeername) +#include diff --git a/socket/getsockname.c b/socket/getsockname.c new file mode 100644 index 0000000000..b698bdbb7a --- /dev/null +++ b/socket/getsockname.c @@ -0,0 +1,36 @@ +/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Put the local address of FD into *ADDR and its length in *LEN. */ +int +__getsockname (fd, addr, len) + int fd; + __SOCKADDR_ARG addr; + socklen_t *len; +{ + __set_errno (ENOSYS); + return -1; +} + +weak_alias (__getsockname, getsockname) + +stub_warning (getsockname) +#include diff --git a/socket/getsockopt.c b/socket/getsockopt.c new file mode 100644 index 0000000000..8f4fa89578 --- /dev/null +++ b/socket/getsockopt.c @@ -0,0 +1,38 @@ +/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Put the current value for socket FD's option OPTNAME at protocol level LEVEL + into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's + actual length. Returns 0 on success, -1 for errors. */ +int +getsockopt (fd, level, optname, optval, optlen) + int fd; + int level; + int optname; + void *optval; + socklen_t *optlen; +{ + __set_errno (ENOSYS); + return -1; +} + +stub_warning (getsockopt) +#include diff --git a/socket/isfdtype.c b/socket/isfdtype.c new file mode 100644 index 0000000000..ba10912c9f --- /dev/null +++ b/socket/isfdtype.c @@ -0,0 +1,31 @@ +/* isfdtype - Determine whether descriptor has given property. Stub version. + Copyright (C) 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + + +int +isfdtype (int fildes, int fdtype) +{ + __set_errno (ENOSYS); + return -1; +} +stub_warning (isfdtype) +#include diff --git a/socket/listen.c b/socket/listen.c new file mode 100644 index 0000000000..cbdd8b9d18 --- /dev/null +++ b/socket/listen.c @@ -0,0 +1,37 @@ +/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Prepare to accept connections on socket FD. + N connection requests will be queued before further requests are refused. + Returns 0 on success, -1 for errors. */ +int +__listen (fd, n) + int fd; + int n; +{ + __set_errno (ENOSYS); + return -1; +} + +weak_alias (__listen, listen) + +stub_warning (listen) +#include diff --git a/socket/opensock.c b/socket/opensock.c new file mode 100644 index 0000000000..4a4d5dd385 --- /dev/null +++ b/socket/opensock.c @@ -0,0 +1,71 @@ +/* Copyright (C) 1999 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include + +/* Return a socket of any type. The socket can be used in subsequent + ioctl calls to talk to the kernel. */ +int internal_function +__opensock (void) +{ + /* Cache the last AF that worked, to avoid many redundant calls to + socket(). */ + static int sock_af = -1; + int fd = -1; + __libc_lock_define_initialized (static, lock); + + if (sock_af != -1) + { + fd = __socket (sock_af, SOCK_DGRAM, 0); + if (fd != -1) + return fd; + } + + __libc_lock_lock (lock); + + if (sock_af != -1) + fd = __socket (sock_af, SOCK_DGRAM, 0); + + if (fd == -1) + { +#ifdef AF_INET + fd = __socket (sock_af = AF_INET, SOCK_DGRAM, 0); +#endif +#ifdef AF_INET6 + if (fd < 0) + fd = __socket (sock_af = AF_INET6, SOCK_DGRAM, 0); +#endif +#ifdef AF_IPX + if (fd < 0) + fd = __socket (sock_af = AF_IPX, SOCK_DGRAM, 0); +#endif +#ifdef AF_AX25 + if (fd < 0) + fd = __socket (sock_af = AF_AX25, SOCK_DGRAM, 0); +#endif +#ifdef AF_APPLETALK + if (fd < 0) + fd = __socket (sock_af = AF_APPLETALK, SOCK_DGRAM, 0); +#endif + } + + __libc_lock_unlock (lock); + return fd; +} diff --git a/socket/recv.c b/socket/recv.c new file mode 100644 index 0000000000..62af8fedf2 --- /dev/null +++ b/socket/recv.c @@ -0,0 +1,37 @@ +/* Copyright (C) 1991,1995,1996,1997,2001,2005 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Read N bytes into BUF from socket FD. + Returns the number read or -1 for errors. */ +ssize_t +__recv (fd, buf, n, flags) + int fd; + void *buf; + size_t n; + int flags; +{ + __set_errno (ENOSYS); + return -1; +} +weak_alias (__recv, recv) + +stub_warning (recv) +#include diff --git a/socket/recvfrom.c b/socket/recvfrom.c new file mode 100644 index 0000000000..4f6a045077 --- /dev/null +++ b/socket/recvfrom.c @@ -0,0 +1,41 @@ +/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Read N bytes into BUF through socket FD from peer + at address ADDR (which is ADDR_LEN bytes long). + Returns the number read or -1 for errors. */ +ssize_t +__recvfrom (fd, buf, n, flags, addr, addr_len) + int fd; + void *buf; + size_t n; + int flags; + __SOCKADDR_ARG addr; + socklen_t *addr_len; +{ + __set_errno (ENOSYS); + return -1; +} + +weak_alias (__recvfrom, recvfrom) + +stub_warning (recvfrom) +#include diff --git a/socket/recvmsg.c b/socket/recvmsg.c new file mode 100644 index 0000000000..419415cd75 --- /dev/null +++ b/socket/recvmsg.c @@ -0,0 +1,37 @@ +/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Receive a message as described by MESSAGE from socket FD. + Returns the number of bytes read or -1 for errors. */ +ssize_t +__recvmsg (fd, message, flags) + int fd; + struct msghdr *message; + int flags; +{ + __set_errno (ENOSYS); + return -1; +} + +weak_alias (__recvmsg, recvmsg) + +stub_warning (recvmsg) +#include diff --git a/socket/send.c b/socket/send.c new file mode 100644 index 0000000000..7f94fbb093 --- /dev/null +++ b/socket/send.c @@ -0,0 +1,37 @@ +/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Send N bytes of BUF to socket FD. Returns the number sent or -1. */ +ssize_t +__send (fd, buf, n, flags) + int fd; + __const __ptr_t buf; + size_t n; + int flags; +{ + __set_errno (ENOSYS); + return -1; +} +libc_hidden_def (__send) +weak_alias (__send, send) + +stub_warning (send) +#include diff --git a/socket/sendmsg.c b/socket/sendmsg.c new file mode 100644 index 0000000000..a4a3cea950 --- /dev/null +++ b/socket/sendmsg.c @@ -0,0 +1,37 @@ +/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Send a message described MESSAGE on socket FD. + Returns the number of bytes sent, or -1 for errors. */ +ssize_t +__sendmsg (fd, message, flags) + int fd; + const struct msghdr *message; + int flags; +{ + __set_errno (ENOSYS); + return -1; +} + +weak_alias (__sendmsg, sendmsg) + +stub_warning (sendmsg) +#include diff --git a/socket/sendto.c b/socket/sendto.c new file mode 100644 index 0000000000..823c9dd1c7 --- /dev/null +++ b/socket/sendto.c @@ -0,0 +1,40 @@ +/* Copyright (C) 1991,1995,1996,1997,2001,2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Send N bytes of BUF on socket FD to peer at address ADDR (which is + ADDR_LEN bytes long). Returns the number sent, or -1 for errors. */ +ssize_t +__sendto (fd, buf, n, flags, addr, addr_len) + int fd; + __const __ptr_t buf; + size_t n; + int flags; + __CONST_SOCKADDR_ARG addr; + socklen_t addr_len; +{ + __set_errno (ENOSYS); + return -1; +} + +weak_alias (__sendto, sendto) + +stub_warning (sendto) +#include diff --git a/socket/setsockopt.c b/socket/setsockopt.c new file mode 100644 index 0000000000..aca73623fe --- /dev/null +++ b/socket/setsockopt.c @@ -0,0 +1,40 @@ +/* Copyright (C) 1991,1995,1996,1997,1998,2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Set socket FD's option OPTNAME at protocol level LEVEL + to *OPTVAL (which is OPTLEN bytes long). + Returns 0 on success, -1 for errors. */ +int +__setsockopt (fd, level, optname, optval, optlen) + int fd; + int level; + int optname; + const __ptr_t optval; + socklen_t optlen; +{ + __set_errno (ENOSYS); + return -1; +} + +weak_alias (__setsockopt, setsockopt) + +stub_warning (setsockopt) +#include diff --git a/socket/shutdown.c b/socket/shutdown.c new file mode 100644 index 0000000000..6fb25a4bc1 --- /dev/null +++ b/socket/shutdown.c @@ -0,0 +1,39 @@ +/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Shut down all or part of the connection open on socket FD. + HOW determines what to shut down: + 0 = No more receptions; + 1 = No more transmissions; + 2 = No more receptions or transmissions. + Returns 0 on success, -1 for errors. */ +int +shutdown (fd, how) + int fd; + int how; +{ + __set_errno (ENOSYS); + return -1; +} + + +stub_warning (shutdown) +#include diff --git a/socket/sockatmark.c b/socket/sockatmark.c new file mode 100644 index 0000000000..402ef9b4d0 --- /dev/null +++ b/socket/sockatmark.c @@ -0,0 +1,33 @@ +/* Copyright (C) 2001 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Determine wheter socket is at a out-of-band mark. */ +int +sockatmark (fd) + int fd; +{ + __set_errno (ENOSYS); + return -1; +} + + +stub_warning (sockatmark) +#include diff --git a/socket/socket.c b/socket/socket.c new file mode 100644 index 0000000000..94e70bc4ea --- /dev/null +++ b/socket/socket.c @@ -0,0 +1,38 @@ +/* Copyright (C) 1991, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Create a new socket of type TYPE in domain DOMAIN, using + protocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically. + Returns a file descriptor for the new socket, or -1 for errors. */ +int +__socket (domain, type, protocol) + int domain; + int type; + int protocol; +{ + __set_errno (ENOSYS); + return -1; +} + + +weak_alias (__socket, socket) +stub_warning (socket) +#include diff --git a/socket/socketpair.c b/socket/socketpair.c new file mode 100644 index 0000000000..ad277c00e5 --- /dev/null +++ b/socket/socketpair.c @@ -0,0 +1,39 @@ +/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + +/* Create two new sockets, of type TYPE in domain DOMAIN and using + protocol PROTOCOL, which are connected to each other, and put file + descriptors for them in FDS[0] and FDS[1]. If PROTOCOL is zero, + one will be chosen automatically. Returns 0 on success, -1 for errors. */ +int +socketpair (domain, type, protocol, fds) + int domain; + int type; + int protocol; + int fds[2]; +{ + __set_errno (ENOSYS); + return -1; +} + + +stub_warning (socketpair) +#include diff --git a/socket/sys/socket.h b/socket/sys/socket.h index 4ae1ea9808..4112852ebb 100644 --- a/socket/sys/socket.h +++ b/socket/sys/socket.h @@ -1,5 +1,5 @@ /* Declarations of socket constants, types, and functions. - Copyright (C) 1991,92,1994-2001,2003 Free Software Foundation, Inc. + Copyright (C) 1991,92,1994-2001,2003,2005 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -231,6 +231,12 @@ extern int sockatmark (int __fd) __THROW; extern int isfdtype (int __fd, int __fdtype) __THROW; #endif + +/* Define some macros helping to catch buffer overflows. */ +#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus +# include +#endif + __END_DECLS #endif /* sys/socket.h */ -- cgit v1.2.3