Mercurial > flash_v2
changeset 398:a3b06a9328a7
Fix getsocknemt(), add <sys/uio.h>
| author | gthomas |
|---|---|
| date | Sun, 03 Nov 2002 19:49:43 +0000 |
| parents | 9fc33f5be435 |
| children | e997e6708ee7 |
| files | packages/net/bsd_tcpip/current/ChangeLog packages/net/bsd_tcpip/current/include/sys/uio.h packages/net/bsd_tcpip/current/src/sys/kern/sockio.c |
| diffstat | 3 files changed, 75 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/net/bsd_tcpip/current/ChangeLog +++ b/packages/net/bsd_tcpip/current/ChangeLog @@ -1,3 +1,10 @@ +2002-11-03 Gary Thomas <gthomas@ecoscentric.com> + + * src/sys/kern/sockio.c (bsd_getname): Fix error where getsockname() + was actually performing getpeername(). + + * include/sys/uio.h: New file - compatability wrapper. + 2002-07-31 Gary Thomas <gary@chez-thomas.org> * src/sys/netinet/in_cksum.c: Fix problem on big endian machines.
new file mode 100644 --- /dev/null +++ b/packages/net/bsd_tcpip/current/include/sys/uio.h @@ -0,0 +1,67 @@ +//========================================================================== +// +// net/sys/uio.h +// +// Compatability wrapper for <sys/uio.h> +// +//========================================================================== +//####ECOSGPLCOPYRIGHTBEGIN#### +// ------------------------------------------- +// This file is part of eCos, the Embedded Configurable Operating System. +// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. +// Copyright (C) 2002 Gary Thomas +// +// eCos is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 or (at your option) any later version. +// +// eCos 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 General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License along +// with eCos; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// As a special exception, if other files instantiate templates or use macros +// or inline functions from this file, or you compile this file and link it +// with other works to produce a work based on this file, this file does not +// by itself cause the resulting work to be covered by the GNU General Public +// License. However the source code for this file must still be made available +// in accordance with section (3) of the GNU General Public License. +// +// This exception does not invalidate any other reasons why a work based on +// this file might be covered by the GNU General Public License. +// +// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. +// at http://sources.redhat.com/ecos/ecos-license/ +// ------------------------------------------- +//####ECOSGPLCOPYRIGHTEND#### +//========================================================================== +//#####DESCRIPTIONBEGIN#### +// +// Author(s): gthomas +// Contributors: gthomas +// Date: 2002-11-03 +// Purpose: +// Description: +// +// +//####DESCRIPTIONEND#### +// +//========================================================================== + +#ifndef _CYGONCE_SYS_UIO_H_ +#define _CYGONCE_SYS_UIO_H_ + +#include <pkgconf/io_fileio.h> // IOVEC_MAX +#include <cyg/io/file.h> // Definition of 'struct iovec' + +#define UIO_MAXIOV CYGNUM_FILEIO_IOVEC_MAX + +// Function prototypes +__externC ssize_t readv(int fd, const struct iovec *iov, int iov_len); +__externC ssize_t writev(int fd, const struct iovec *iov, int iov_len); + +#endif // _CYGONCE_SYS_UIO_H_
--- a/packages/net/bsd_tcpip/current/src/sys/kern/sockio.c +++ b/packages/net/bsd_tcpip/current/src/sys/kern/sockio.c @@ -467,7 +467,6 @@ bsd_getname(cyg_file *fp, sockaddr *asa, struct socket *so; socklen_t len = 0; int error; - int type = peer ? PRU_PEERADDR : PRU_SOCKADDR; sockaddr *sa; if( alen != NULL) @@ -475,7 +474,7 @@ bsd_getname(cyg_file *fp, sockaddr *asa, so = (struct socket *)fp->f_data; sa = 0; - if (type) { + if (peer) { // getpeername() if ((so->so_state & (SS_ISCONNECTED|SS_ISCONFIRMING)) == 0) { return (ENOTCONN);
