2007-01-21 Corinna Vinschen * autoload.cc (WSAIoctl): Define. (SendARP): Define. * cygwin.din: Export if_freenameindex, if_indextoname, if_nameindex and if_nametoindex. * fhandler_procnet.cc: Drop including wchar.h. Drop definitions of GAA_FLAG_INCLUDE_ALL_INTERFACES, IP_ADAPTER_UNICAST_ADDRESS_VISTA. (fhandler_procnet::exists): Check for has_gaa_prefixes. Call get_adapters_addresses here. (fhandler_procnet::readdir): Ditto. (prefix): Move to net.cc. (fhandler_procnet::fill_filebuf): Call get_adapters_addresses here. Simplify allocation. Use AdapterName rather than FriendlyName as interface name. Use IfIndex if available, Ipv6IfIndex otherwise. (in6_are_prefix_equal): Move to net.cc. * fhandler_socket.cc: Define old SIOCGxxx values. (CONV_OLD_TO_NEW_SIO): Convert old SIOCGxxx value to new one. (struct __old_ifreq): Define old struct ifreq. (fhandler_socket::ioctl): Handle old SIOCGxxx values. Handle new SIOCGIFFRNDLYNAM command. Simplify copying ifreq data to user space. Call get_ifconf with additional SOCKET parameter. * net.cc (IP_ADAPTER_UNICAST_ADDRESS_LH): Define. (IP_ADAPTER_ADDRESSES_LH): Define. (SIO_GET_INTERFACE_LIST): Define. (sockaddr_in6_old): Define. (sockaddr_gen): Define. (INTERFACE_INFO): Define. (IN_LOOPBACK): Define. (in_are_prefix_equal): New static function. (ip_addr_prefix): New function, replaces prefix function, add AF_INET handling. (GAA_FLAG_INCLUDE_ALL_INTERFACES): Define. (get_adapters_addresses): New function. (WS_IFF_xxx): Define Winsock interface flag values. (convert_ifr_flags): New function to convert Winsock interface flag values to Cygwin interface flag values. (get_xp_ifconf): New get_ifconf implementation for XP SP1 and above. (get_2k_ifconf): Fix interface index. Fix formatting. (get_nt_ifconf): Fix formatting. (get_95_ifconf): Ditto. (get_ifconf): Take additional SOCKET parameter. Call get_xp_ifconf on XP SP1 and above. (if_nametoindex): New function. (if_indextoname): New function. (if_nameindex): New function. (if_freenameindex): New function. (in6_are_prefix_equal): Moved here from fhandler_procnet.cc. * wincap.cc (wincap_xp): Define has_gaa_prefixes as true by default. (wincapc::init): Assume has_osversioninfoex by default. Call GetVersionEx with OSVERSIONINFOEX first. Call with OSVERSIONINFO only if that fails. Simplify NT4 case and try to avoid strcmp. Check XP Service Pack using version.wServicePackMajor to avoid strcmp. * include/asm/socket.h (SIOCGIFFRNDLYNAM): Define. * include/cygwin/if.h: Fix formatting. (IFF_POINTTOPOINT): Define. (IFF_NOARP): Define. (IFF_LOWER_UP): Define. (IFF_DORMANT): Define. (struct if_nameindex): Define. (IFRF_FRIENDLYNAMESIZ): Define. (struct ifreq_frndlyname): Define. (IFNAMSIZ): Redefine as 44. (IF_NAMESIZE): Define. (struct ifreq): Redefine ifru_flags as int. Define ifru_data. Pad size to sizeof sockaddr_in6 for further extensions. (ifr_data): Define. (ifr_frndlyname): Define. (if_nametoindex): Declare. (if_indextoname): Declare. (if_nameindex): Declare. (if_freenameindex): Declare. * include/cygwin/version.h: Bump API minor number. (CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ): Define check for old vs. new ifreq structure. 2007-01-18 Corinna Vinschen * spawn.cc (spawn_guts): Don't set cwd for non-Cygwin child processes on NT to allow starting them in virtual directories. 2007-01-18 Corinna Vinschen * mmap.cc (list::hash): Fix type to __ino64_t. (list::get_hash): Ditto. (list::set): Add struct stat parameter. Use that instead of calling fstat. (map::get_list_by_fd): Ditto. (map::add_list): Ditto. (mmap_is_attached_or_noreserve): Call get_list_by_fd appropriately. (mmap_worker): Add pameters for map list and file stat information. Propagate to called functions. (mmap64): Use fstat on files early. Replace call to GetFileSize. Call get_list_by_fd and mmap_worker appropriately. 2007-01-18 Corinna Vinschen * fhandler_procnet.cc: Drop declaration of htonl and ntohs. Include asm/byteorder.h instead. 2007-01-18 Corinna Vinschen * include/cygwin/in6.h: Drop inclusion of asm/byteorder.h. * fhandler_procnet.cc: Declare htonl and ntohs here. 2007-01-17 Corinna Vinschen * Makefile.in (DLL_OFILES): Add fhandler_procnet.o. * autoload.cc (GetAdaptersAddresses): Define. * devices.h (FH_PROCNET): Define new device. * devices.in (dev_procnet_storage): Add "/proc/net" entry. * devices.cc: Regenerate. * dir.cc (readdir_worker): Use isproc_dev macro. * dtable.cc (build_fh_pc): Add FH_PROCNET. * fhandler.h (class fhandler_procnet): New class. * fhandler_proc.cc: Add "net" subdirectory handling. * fhandler_procnet.cc: New file handling "/proc/net" directory. * path.cc (isvirtual_dev): Move to path.h. * path.h (isproc_dev): New macro to identify /proc files by device. (isvirtual_dev): Moved here. Define using isproc_dev. * syscalls.cc (unlink): Use isproc_dev macro. * wincap.h (wincapc::has_gaa_prefixes): New element. (wincapc::has_gaa_on_link_prefix): New element. * wincap.cc: Implement above elements throughout. (wincapc::init): Check XP for service pack and set has_gaa_prefixes appropriately. * include/cygwin/in6.h: Include asm/byteorder.h. 2007-01-17 Corinna Vinschen * include/asm/socket.h (SIOGIFINDEX): Define. 2007-01-17 Corinna Vinschen * mmap.cc (MapView9x): Note possible uselessness of retrying. (MapViewNT): Ditto. (mmap64): Fix pre-reservation to work for non NULL, non MAP_FIXED. 2007-01-16 Corinna Vinschen * autoload.cc (RtlAnsiStringToUnicodeString): Define. (RtlOemStringToUnicodeString): Define. * ntdll.h (struct _RTL_USER_PROCESS_PARAMETERS): Define. (struct _PEB): Redefine with a bit of content. (RtlAnsiStringToUnicodeString): Declare. (RtlOemStringToUnicodeString): Declare. * path.cc: Include ntdll.h. (_upp): New global variable pointing to user process parameter block. (get_user_proc_parms): New static function to retrieve user process parameter block. (close_user_proc_parms_cwd_handle): New function to close handle to current working directory in user process parameter block. (cwdstuff::init): Drop redundant declaration of dynamically_loaded. Set current dir only on 9x. Call close_user_proc_parms_cwd_handle on NT instead. (cwdstuff::keep_in_sync): Only on 9x. (cwdstuff::set): Keep behaviour on 9x. On NT write cwd path into user process parameter block and set cwd handle to NULL. Fix comments to reflect new behaviour. 2007-01-16 Corinna Vinschen * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFINDEX. * net.cc (get_2k_ifconf): Ditto. (get_nt_ifconf): Fake SIOCGIFINDEX. (get_95_ifconf): Ditto. (get_ifconf): Handle SIOCGIFINDEX. Fake it for loopback on systems not supporting IP Helper Lib. * include/asm/socket.h (SIOCGIFINDEX): Define. * include/cygwin/if.h (struct ifreq): Add member for interface index. (ifr_ifindex): Define. 2007-01-16 Corinna Vinschen * include/cygwin/in6.h (struct ipv6_mreq): Change type of interface member to uint32_t. (struct in6_pktinfo): Ditto. 2007-01-16 Corinna Vinschen * include/cygwin/in.h (struct ip_mreq_source): Define. (struct ip_msfilter): Define. (IP_MSFILTER_SIZE): Define. (struct in_pktinfo): Define. (struct group_req): Define. (struct group_source_req): Define. (struct group_filter): Define. (GROUP_FILTER_SIZE): Define. (INADDR_ALLRTRS_GROUP): Define. * include/cygwin/socket.h: Define protocol agnostic multicast options. 2007-01-15 Corinna Vinschen * CYGWIN_LICENSE: Fix web pages and contact information. 2007-01-15 Corinna Vinschen * ntdll.h: Adjust status definitions. 2007-01-15 Corinna Vinschen * cygheap.cc (cygheap_init): Add TODO comment. 2007-01-15 Corinna Vinschen * ntdll.h (STATUS_SHARING_VIOLATION): Define. 2007-01-13 Corinna Vinschen * syscalls.cc (unlink_nt): Don't move files to recycle bin which are not in use. 2007-01-13 Christopher Faylor * glob.cc: Update copyright notice with latest from FreeBSD. (glob0): Use correct type for c variable to propagate previously detected protection. 2007-01-12 Corinna Vinschen * cygheap.cc (_csbrk): Fix off-by-one error. * cygwin.sc: Give .cygheap a minimum size of 512K. 2007-01-12 Christopher Faylor * external.cc (sync_winenv): Use cur_environ () rather than __cygwin_environ. 2007-01-12 Corinna Vinschen * fork.cc (child_copy): Add missing Windows PID in debug output. 2007-01-12 Corinna Vinschen * syscalls.cc: Update copyright. 2007-01-10 Corinna Vinschen * mmap.cc (mmap64): Pre-Reserve space for the whole mapping to get a useful, valid address before the actual mappings take place. Fix typo in comment. 2007-01-10 Corinna Vinschen * syscalls.cc (sync): Use b_drive for B: drive (Thanks to Howard Chu). 2007-01-09 Corinna Vinschen * syscalls.cc (getpagesize): Change condition for clarity. (getsystempagesize): Ditto. 2007-01-09 Corinna Vinschen * mmap.cc: Do bookkeeping in 4K pages, rather than in 64K chunks. 2007-01-07 Corinna Vinschen * security.h (setacl): Add parameter for writability flag. * sec_acl.cc (setacl): Ditto. Set to true if any ACE with write permissions is created. * fhandler_disk_file.cc (fhandler_disk_file::facl): Reset FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions. 2007-01-05 Corinna Vinschen * include/strings.h: Don't include string.h. Only declare functions according to SUSv3. 2007-01-04 Corinna Vinschen (get_ifconf): Set MTU for loopback to more correct value. 2007-01-04 Corinna Vinschen * fhandler_socket.cc (fhandler_socket::ioctl): Don't fake results for SIOCGIFFLAGS here. Call get_ifconf instead. * net.cc (get_2k_ifconf): Clean up code to generate interface name. Handle SIOCGIFFLAGS here. (get_nt_ifconf): Fake SIOCGIFFLAGS here. (get_95_ifconf): Ditto. (get_ifconf): Don't fake loopback on systems with IP Helper Lib. Set MTU for loopback to a more "modern" value. 2007-01-04 Brian Ford Corinna Vinschen * fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K. * fhandler.cc (fhandler_base::fstat): Set st_blksize to PREFERRED_IO_BLKSIZE. * fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto. * fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto. * fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto. 2007-01-01 Christopher Faylor * spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin _P_NOWAIT process.