* autoload.cc (WSAIoctl): Remove.
* cygwin.din: Export freeifaddrs, getifaddrs. * fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter from get_ifconf. * net.cc: Include ifaddrs.h. (in_are_prefix_equal): Match addresses in network byte order. (ip_addr_prefix): Convert address into host byte order before testing with IN_LOOPBACK. (struct ifall): Define. (get_xp_ifs): Replace get_xp_ifconf. Return struct ifall array. (get_2k_ifs): Ditto, replace get_2k_ifconf. (get_nt_ifs): Ditto, replace get_nt_ifconf. (getifaddrs): New function. (freeifaddrs): New function. (get_ifconf): Call matching get_XX_ifs function and create ifc content from here. Drop lo fake since it's now in get_nt_ifs. * posix.sgml: Add freeifaddrs and getifaddrs to list of implemented BSD functions. * wincap.h (wincapc::has_broken_if_oper_status): New element. * wincap.cc: Implement above element throughout. * include/ifaddrs.h: New file. * include/cygwin/version.h: Bump API minor number.
This commit is contained in:
parent
d3c73d4999
commit
a71ecb55de
|
@ -1,3 +1,28 @@
|
||||||
|
2007-06-21 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* autoload.cc (WSAIoctl): Remove.
|
||||||
|
* cygwin.din: Export freeifaddrs, getifaddrs.
|
||||||
|
* fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter
|
||||||
|
from get_ifconf.
|
||||||
|
* net.cc: Include ifaddrs.h.
|
||||||
|
(in_are_prefix_equal): Match addresses in network byte order.
|
||||||
|
(ip_addr_prefix): Convert address into host byte order before
|
||||||
|
testing with IN_LOOPBACK.
|
||||||
|
(struct ifall): Define.
|
||||||
|
(get_xp_ifs): Replace get_xp_ifconf. Return struct ifall array.
|
||||||
|
(get_2k_ifs): Ditto, replace get_2k_ifconf.
|
||||||
|
(get_nt_ifs): Ditto, replace get_nt_ifconf.
|
||||||
|
(getifaddrs): New function.
|
||||||
|
(freeifaddrs): New function.
|
||||||
|
(get_ifconf): Call matching get_XX_ifs function and create
|
||||||
|
ifc content from here. Drop lo fake since it's now in get_nt_ifs.
|
||||||
|
* posix.sgml: Add freeifaddrs and getifaddrs to list of implemented
|
||||||
|
BSD functions.
|
||||||
|
* wincap.h (wincapc::has_broken_if_oper_status): New element.
|
||||||
|
* wincap.cc: Implement above element throughout.
|
||||||
|
* include/ifaddrs.h: New file.
|
||||||
|
* include/cygwin/version.h: Bump API minor number.
|
||||||
|
|
||||||
2007-06-20 Eric Blake <ebb9@byu.net>
|
2007-06-20 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
* cygwin.din: Export exp10, exp10f, pow10, pow10f, strcasestr,
|
* cygwin.din: Export exp10, exp10f, pow10, pow10f, strcasestr,
|
||||||
|
|
|
@ -383,7 +383,6 @@ LoadDLLfunc (WSACloseEvent, 4, ws2_32)
|
||||||
LoadDLLfunc (WSACreateEvent, 0, ws2_32)
|
LoadDLLfunc (WSACreateEvent, 0, ws2_32)
|
||||||
LoadDLLfunc (WSAEnumNetworkEvents, 12, ws2_32)
|
LoadDLLfunc (WSAEnumNetworkEvents, 12, ws2_32)
|
||||||
LoadDLLfunc (WSAEventSelect, 12, ws2_32)
|
LoadDLLfunc (WSAEventSelect, 12, ws2_32)
|
||||||
LoadDLLfunc (WSAIoctl, 36, ws2_32)
|
|
||||||
LoadDLLfunc (WSAGetLastError, 0, ws2_32)
|
LoadDLLfunc (WSAGetLastError, 0, ws2_32)
|
||||||
LoadDLLfunc (WSARecvFrom, 36, ws2_32)
|
LoadDLLfunc (WSARecvFrom, 36, ws2_32)
|
||||||
LoadDLLfunc (WSASendTo, 36, ws2_32)
|
LoadDLLfunc (WSASendTo, 36, ws2_32)
|
||||||
|
|
|
@ -489,6 +489,7 @@ _fread = fread SIGFE
|
||||||
free SIGFE
|
free SIGFE
|
||||||
_free = free SIGFE
|
_free = free SIGFE
|
||||||
freeaddrinfo = cygwin_freeaddrinfo SIGFE
|
freeaddrinfo = cygwin_freeaddrinfo SIGFE
|
||||||
|
freeifaddrs SIGFE
|
||||||
freopen SIGFE
|
freopen SIGFE
|
||||||
_freopen = freopen SIGFE
|
_freopen = freopen SIGFE
|
||||||
_freopen64 = freopen64 SIGFE
|
_freopen64 = freopen64 SIGFE
|
||||||
|
@ -605,6 +606,7 @@ gethostbyname = cygwin_gethostbyname SIGFE
|
||||||
gethostid SIGFE
|
gethostid SIGFE
|
||||||
gethostname = cygwin_gethostname SIGFE
|
gethostname = cygwin_gethostname SIGFE
|
||||||
_gethostname = cygwin_gethostname SIGFE
|
_gethostname = cygwin_gethostname SIGFE
|
||||||
|
getifaddrs SIGFE
|
||||||
getitimer SIGFE
|
getitimer SIGFE
|
||||||
getline = __getline SIGFE
|
getline = __getline SIGFE
|
||||||
__getline SIGFE
|
__getline SIGFE
|
||||||
|
|
|
@ -1455,7 +1455,7 @@ struct __old_ifreq {
|
||||||
int
|
int
|
||||||
fhandler_socket::ioctl (unsigned int cmd, void *p)
|
fhandler_socket::ioctl (unsigned int cmd, void *p)
|
||||||
{
|
{
|
||||||
extern int get_ifconf (SOCKET s, struct ifconf *ifc, int what); /* net.cc */
|
extern int get_ifconf (struct ifconf *ifc, int what); /* net.cc */
|
||||||
int res;
|
int res;
|
||||||
struct ifconf ifc, *ifcp;
|
struct ifconf ifc, *ifcp;
|
||||||
struct ifreq *ifrp;
|
struct ifreq *ifrp;
|
||||||
|
@ -1480,7 +1480,7 @@ fhandler_socket::ioctl (unsigned int cmd, void *p)
|
||||||
ifc.ifc_len = ifcp->ifc_len;
|
ifc.ifc_len = ifcp->ifc_len;
|
||||||
ifc.ifc_buf = ifcp->ifc_buf;
|
ifc.ifc_buf = ifcp->ifc_buf;
|
||||||
}
|
}
|
||||||
res = get_ifconf (get_socket (), &ifc, cmd);
|
res = get_ifconf (&ifc, cmd);
|
||||||
if (res)
|
if (res)
|
||||||
debug_printf ("error in get_ifconf");
|
debug_printf ("error in get_ifconf");
|
||||||
if (CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ)
|
if (CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ)
|
||||||
|
@ -1544,7 +1544,7 @@ fhandler_socket::ioctl (unsigned int cmd, void *p)
|
||||||
ifc.ifc_req[i].ifr_frndlyname = &iff[i];
|
ifc.ifc_req[i].ifr_frndlyname = &iff[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
res = get_ifconf (get_socket (), &ifc, cmd);
|
res = get_ifconf (&ifc, cmd);
|
||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
debug_printf ("error in get_ifconf");
|
debug_printf ("error in get_ifconf");
|
||||||
|
|
|
@ -312,12 +312,13 @@ details. */
|
||||||
170: Export insque, remque.
|
170: Export insque, remque.
|
||||||
171: Export exp10, exp10f, pow10, pow10f, strcasestr, funopen,
|
171: Export exp10, exp10f, pow10, pow10f, strcasestr, funopen,
|
||||||
fopencookie.
|
fopencookie.
|
||||||
|
172: Export getifaddrs, freeifaddrs.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
||||||
|
|
||||||
#define CYGWIN_VERSION_API_MAJOR 0
|
#define CYGWIN_VERSION_API_MAJOR 0
|
||||||
#define CYGWIN_VERSION_API_MINOR 171
|
#define CYGWIN_VERSION_API_MINOR 172
|
||||||
|
|
||||||
/* There is also a compatibity version number associated with the
|
/* There is also a compatibity version number associated with the
|
||||||
shared memory regions. It is incremented when incompatible
|
shared memory regions. It is incremented when incompatible
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
/* $OpenBSD: ifaddrs.h,v 1.4 2004/01/22 21:48:02 espie Exp $ */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1995, 1999
|
||||||
|
* Berkeley Software Design, Inc. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY Berkeley Software Design, Inc. ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL Berkeley Software Design, Inc. BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* BSDI ifaddrs.h,v 2.5 2000/02/23 14:51:59 dab Exp
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _IFADDRS_H_
|
||||||
|
#define _IFADDRS_H_
|
||||||
|
|
||||||
|
struct ifaddrs {
|
||||||
|
struct ifaddrs *ifa_next;
|
||||||
|
char *ifa_name;
|
||||||
|
unsigned int ifa_flags;
|
||||||
|
struct sockaddr *ifa_addr;
|
||||||
|
struct sockaddr *ifa_netmask;
|
||||||
|
struct sockaddr *ifa_dstaddr;
|
||||||
|
void *ifa_data;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This may have been defined in <net/if.h>. Note that if <net/if.h> is
|
||||||
|
* to be included it must be included before this header file.
|
||||||
|
*/
|
||||||
|
/* CV 2007-06-20: Not a problem on Cygwin right now. */
|
||||||
|
#ifndef ifa_broadaddr
|
||||||
|
#define ifa_broadaddr ifa_dstaddr /* broadcast address interface */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sys/cdefs.h>
|
||||||
|
|
||||||
|
__BEGIN_DECLS
|
||||||
|
extern int getifaddrs(struct ifaddrs **);
|
||||||
|
extern void freeifaddrs(struct ifaddrs *);
|
||||||
|
__END_DECLS
|
||||||
|
|
||||||
|
#endif
|
1017
winsup/cygwin/net.cc
1017
winsup/cygwin/net.cc
File diff suppressed because it is too large
Load Diff
|
@ -836,6 +836,7 @@ also ISO/IEC 9945:2003 and IEEE Std 1003.1-2001 (POSIX.1-2001).</para>
|
||||||
fiprintf
|
fiprintf
|
||||||
flock
|
flock
|
||||||
forkpty
|
forkpty
|
||||||
|
freeifaddrs
|
||||||
fstatfs
|
fstatfs
|
||||||
fts_children
|
fts_children
|
||||||
fts_close
|
fts_close
|
||||||
|
@ -851,6 +852,7 @@ also ISO/IEC 9945:2003 and IEEE Std 1003.1-2001 (POSIX.1-2001).</para>
|
||||||
gammaf
|
gammaf
|
||||||
gammaf_r
|
gammaf_r
|
||||||
getdtablesize
|
getdtablesize
|
||||||
|
getifaddrs
|
||||||
getpagesize
|
getpagesize
|
||||||
getpeereid
|
getpeereid
|
||||||
getprogname
|
getprogname
|
||||||
|
|
|
@ -18,6 +18,7 @@ static NO_COPY wincaps wincap_unknown = {
|
||||||
is_server:false,
|
is_server:false,
|
||||||
has_security_descriptor_control:false,
|
has_security_descriptor_control:false,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
|
has_broken_if_oper_status:false,
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_process_io_counters:false,
|
has_process_io_counters:false,
|
||||||
has_terminal_services:false,
|
has_terminal_services:false,
|
||||||
|
@ -45,6 +46,7 @@ static NO_COPY wincaps wincap_nt4 = {
|
||||||
is_server:false,
|
is_server:false,
|
||||||
has_security_descriptor_control:false,
|
has_security_descriptor_control:false,
|
||||||
has_ip_helper_lib:false,
|
has_ip_helper_lib:false,
|
||||||
|
has_broken_if_oper_status:false,
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_process_io_counters:false,
|
has_process_io_counters:false,
|
||||||
has_terminal_services:false,
|
has_terminal_services:false,
|
||||||
|
@ -72,6 +74,7 @@ static NO_COPY wincaps wincap_nt4sp4 = {
|
||||||
is_server:false,
|
is_server:false,
|
||||||
has_security_descriptor_control:false,
|
has_security_descriptor_control:false,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
|
has_broken_if_oper_status:true,
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_process_io_counters:false,
|
has_process_io_counters:false,
|
||||||
has_terminal_services:false,
|
has_terminal_services:false,
|
||||||
|
@ -99,6 +102,7 @@ static NO_COPY wincaps wincap_2000 = {
|
||||||
is_server:false,
|
is_server:false,
|
||||||
has_security_descriptor_control:true,
|
has_security_descriptor_control:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
|
has_broken_if_oper_status:false,
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_process_io_counters:true,
|
has_process_io_counters:true,
|
||||||
has_terminal_services:true,
|
has_terminal_services:true,
|
||||||
|
@ -126,6 +130,7 @@ static NO_COPY wincaps wincap_xp = {
|
||||||
is_server:false,
|
is_server:false,
|
||||||
has_security_descriptor_control:true,
|
has_security_descriptor_control:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
|
has_broken_if_oper_status:false,
|
||||||
has_physical_mem_access:true,
|
has_physical_mem_access:true,
|
||||||
has_process_io_counters:true,
|
has_process_io_counters:true,
|
||||||
has_terminal_services:true,
|
has_terminal_services:true,
|
||||||
|
@ -153,6 +158,7 @@ static NO_COPY wincaps wincap_2003 = {
|
||||||
is_server:true,
|
is_server:true,
|
||||||
has_security_descriptor_control:true,
|
has_security_descriptor_control:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
|
has_broken_if_oper_status:false,
|
||||||
has_physical_mem_access:false,
|
has_physical_mem_access:false,
|
||||||
has_process_io_counters:true,
|
has_process_io_counters:true,
|
||||||
has_terminal_services:true,
|
has_terminal_services:true,
|
||||||
|
@ -180,6 +186,7 @@ static NO_COPY wincaps wincap_vista = {
|
||||||
is_server:false,
|
is_server:false,
|
||||||
has_security_descriptor_control:true,
|
has_security_descriptor_control:true,
|
||||||
has_ip_helper_lib:true,
|
has_ip_helper_lib:true,
|
||||||
|
has_broken_if_oper_status:false,
|
||||||
has_physical_mem_access:false,
|
has_physical_mem_access:false,
|
||||||
has_process_io_counters:true,
|
has_process_io_counters:true,
|
||||||
has_terminal_services:true,
|
has_terminal_services:true,
|
||||||
|
|
|
@ -18,6 +18,7 @@ struct wincaps
|
||||||
unsigned is_server : 1;
|
unsigned is_server : 1;
|
||||||
unsigned has_security_descriptor_control : 1;
|
unsigned has_security_descriptor_control : 1;
|
||||||
unsigned has_ip_helper_lib : 1;
|
unsigned has_ip_helper_lib : 1;
|
||||||
|
unsigned has_broken_if_oper_status : 1;
|
||||||
unsigned has_physical_mem_access : 1;
|
unsigned has_physical_mem_access : 1;
|
||||||
unsigned has_process_io_counters : 1;
|
unsigned has_process_io_counters : 1;
|
||||||
unsigned has_terminal_services : 1;
|
unsigned has_terminal_services : 1;
|
||||||
|
@ -61,6 +62,7 @@ public:
|
||||||
bool IMPLEMENT (is_server)
|
bool IMPLEMENT (is_server)
|
||||||
bool IMPLEMENT (has_security_descriptor_control)
|
bool IMPLEMENT (has_security_descriptor_control)
|
||||||
bool IMPLEMENT (has_ip_helper_lib)
|
bool IMPLEMENT (has_ip_helper_lib)
|
||||||
|
bool IMPLEMENT (has_broken_if_oper_status)
|
||||||
bool IMPLEMENT (has_physical_mem_access)
|
bool IMPLEMENT (has_physical_mem_access)
|
||||||
bool IMPLEMENT (has_process_io_counters)
|
bool IMPLEMENT (has_process_io_counters)
|
||||||
bool IMPLEMENT (has_terminal_services)
|
bool IMPLEMENT (has_terminal_services)
|
||||||
|
|
Loading…
Reference in New Issue