OSDN Git Service

* include/cygwin/in.h (in_attr_t): Define new type.
authorcgf <cgf>
Mon, 10 Feb 2003 22:43:28 +0000 (22:43 +0000)
committercgf <cgf>
Mon, 10 Feb 2003 22:43:28 +0000 (22:43 +0000)
* include/arpa/inet.h (inet_addr): Change return type to in_addr_t.
(inet_lnaof): Ditto.
(inet_netof): Ditto.
(inet_network): Ditto.
* include/cygwin/types.h: Move many *_t typedefs here.  Protect them with
ifdefs.
* fhandler_disk_file.cc (fhandler_disk_file::fstat): Change ntsec_atts to
mode_t.
* security.cc (get_attribute_from_acl): Accept mode_t attribute.
(get_nt_attribute): Ditto.
(get_file_attribute): Ditto.
(get_nt_object_attribute): Ditto.
(get_object_attribute): Ditto.
* security.h: Reflect above changes.
* syscalls.cc (chown_worker): Change attrib to mode_t.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_disk_file.cc
winsup/cygwin/include/arpa/inet.h
winsup/cygwin/include/cygwin/in.h
winsup/cygwin/include/cygwin/types.h
winsup/cygwin/security.cc
winsup/cygwin/security.h
winsup/cygwin/syscalls.cc

index 0eaea5f..2733b40 100644 (file)
@@ -1,3 +1,24 @@
+2003-02-10  Ralf Habacker <ralf.habacker@freenet.de>
+
+       * include/cygwin/in.h (in_attr_t): Define new type.
+       * include/arpa/inet.h (inet_addr): Change return type to in_addr_t.
+       (inet_lnaof): Ditto.
+       (inet_netof): Ditto.
+       (inet_network): Ditto.
+
+2003-02-10  Christopher Faylor  <cgf@redhat.com>
+
+       * include/cygwin/types.h: Move many *_t typedefs here.  Protect them
+       with ifdefs.
+       * fhandler_disk_file.cc (fhandler_disk_file::fstat): Change ntsec_atts to mode_t.
+       * security.cc (get_attribute_from_acl): Accept mode_t attribute.
+       (get_nt_attribute): Ditto.
+       (get_file_attribute): Ditto.
+       (get_nt_object_attribute): Ditto.
+       (get_object_attribute): Ditto.
+       * security.h: Reflect above changes.
+       * syscalls.cc (chown_worker): Change attrib to mode_t.
+
 2003-02-08  Christopher Faylor  <cgf@redhat.com>
 
        * include/cygwin/version.h: Bump DLL minor number to 21.
index 21052e5..8deb7fb 100644 (file)
@@ -174,7 +174,7 @@ fhandler_disk_file::fstat (struct __stat64 *buf, path_conv *pc)
     oret = 0;
   else if (!(oret = open (pc, open_flags, 0)))
     {
-      int ntsec_atts = 0;
+      mode_t ntsec_atts = 0;
       /* If we couldn't open the file, try a "query open" with no permissions.
         This will allow us to determine *some* things about the file, at least. */
       set_query_open (true);
index dc144d6..284e98e 100644 (file)
@@ -1,6 +1,6 @@
 /* arpa/inet.h
 
-   Copyright 1997, 1998, 2001 Red Hat, Inc.
+   Copyright 1997, 1998, 2001, 2002, 2003 Red Hat, Inc.
 
 This file is part of Cygwin.
 
@@ -19,13 +19,13 @@ extern "C"
 #endif
 
 #ifndef __INSIDE_CYGWIN_NET__
-unsigned long   inet_addr (const char *);
-int             inet_aton (const char *, struct in_addr *);
-unsigned long   inet_lnaof (struct in_addr);
-struct in_addr  inet_makeaddr (unsigned long , unsigned long);
-unsigned int    inet_netof (struct in_addr);
-unsigned int    inet_network (const char *);
-char           *inet_ntoa (struct in_addr);
+in_addr_t inet_addr (const char *);
+int inet_aton (const char *, struct in_addr *);
+in_addr_t inet_lnaof (struct in_addr);
+struct in_addr inet_makeaddr (unsigned long , unsigned long);
+in_addr_t inet_netof (struct in_addr);
+in_addr_t inet_network (const char *);
+char *inet_ntoa (struct in_addr);
 #endif
 
 #ifdef __cplusplus
index ff69527..ed73b26 100644 (file)
@@ -21,7 +21,8 @@
 #include <cygwin/types.h>
 
 /* Standard well-defined IP protocols.  */
-enum {
+enum
+{
   IPPROTO_IP = 0,              /* Dummy protocol for TCP               */
   IPPROTO_ICMP = 1,            /* Internet Control Message Protocol    */
   IPPROTO_IGMP = 2,            /* Internet Gateway Management Protocol */
@@ -36,75 +37,77 @@ enum {
   IPPROTO_MAX
 };
 
+typedef uint16_t in_port_t;
 /* Standard well-known ports.  *//* from winsup/include/netinet/in.h */
 enum
-  {
-    IPPORT_ECHO = 7,           /* Echo service.  */
-    IPPORT_DISCARD = 9,                /* Discard transmissions service.  */
-    IPPORT_SYSTAT = 11,                /* System status service.  */
-    IPPORT_DAYTIME = 13,       /* Time of day service.  */
-    IPPORT_NETSTAT = 15,       /* Network status service.  */
-    IPPORT_FTP = 21,           /* File Transfer Protocol.  */
-    IPPORT_TELNET = 23,                /* Telnet protocol.  */
-    IPPORT_SMTP = 25,          /* Simple Mail Transfer Protocol.  */
-    IPPORT_TIMESERVER = 37,    /* Timeserver service.  */
-    IPPORT_NAMESERVER = 42,    /* Domain Name Service.  */
-    IPPORT_WHOIS = 43,         /* Internet Whois service.  */
-    IPPORT_MTP = 57,
-
-    IPPORT_TFTP = 69,          /* Trivial File Transfer Protocol.  */
-    IPPORT_RJE = 77,
-    IPPORT_FINGER = 79,                /* Finger service.  */
-    IPPORT_TTYLINK = 87,
-    IPPORT_SUPDUP = 95,                /* SUPDUP protocol.  */
-
-
-    IPPORT_EXECSERVER = 512,   /* execd service.  */
-    IPPORT_LOGINSERVER = 513,  /* rlogind service.  */
-    IPPORT_CMDSERVER = 514,
-    IPPORT_EFSSERVER = 520,
-
-    /* UDP ports.  */
-    IPPORT_BIFFUDP = 512,
-    IPPORT_WHOSERVER = 513,
-    IPPORT_ROUTESERVER = 520,
-
-    /* Ports less than this value are reserved for privileged processes.  */
-    IPPORT_RESERVED = 1024,
-
-    /* Ports greater this value are reserved for (non-privileged) servers.  */
-    IPPORT_USERRESERVED = 5000
-  };
-
+{
+  IPPORT_ECHO = 7,             /* Echo service.  */
+  IPPORT_DISCARD = 9,          /* Discard transmissions service.  */
+  IPPORT_SYSTAT = 11,          /* System status service.  */
+  IPPORT_DAYTIME = 13, /* Time of day service.  */
+  IPPORT_NETSTAT = 15, /* Network status service.  */
+  IPPORT_FTP = 21,             /* File Transfer Protocol.  */
+  IPPORT_TELNET = 23,          /* Telnet protocol.  */
+  IPPORT_SMTP = 25,            /* Simple Mail Transfer Protocol.  */
+  IPPORT_TIMESERVER = 37,      /* Timeserver service.  */
+  IPPORT_NAMESERVER = 42,      /* Domain Name Service.  */
+  IPPORT_WHOIS = 43,           /* Internet Whois service.  */
+  IPPORT_MTP = 57,
+
+  IPPORT_TFTP = 69,            /* Trivial File Transfer Protocol.  */
+  IPPORT_RJE = 77,
+  IPPORT_FINGER = 79,          /* Finger service.  */
+  IPPORT_TTYLINK = 87,
+  IPPORT_SUPDUP = 95,          /* SUPDUP protocol.  */
+
+
+  IPPORT_EXECSERVER = 512,     /* execd service.  */
+  IPPORT_LOGINSERVER = 513,    /* rlogind service.  */
+  IPPORT_CMDSERVER = 514,
+  IPPORT_EFSSERVER = 520,
+
+  /* UDP ports.  */
+  IPPORT_BIFFUDP = 512,
+  IPPORT_WHOSERVER = 513,
+  IPPORT_ROUTESERVER = 520,
+
+  /* Ports less than this value are reserved for privileged processes.  */
+  IPPORT_RESERVED = 1024,
+
+  /* Ports greater this value are reserved for (non-privileged) servers.  */
+  IPPORT_USERRESERVED = 5000
+};
 
+typedef uint32_t in_addr_t;
 /* Internet address. */
-struct in_addr {
-       unsigned int    s_addr;
+struct in_addr
+{
+  unsigned int s_addr;
 };
 
 /* Request struct for multicast socket ops */
 
 struct ip_mreq
 {
-       struct in_addr imr_multiaddr;   /* IP multicast address of group */
-       struct in_addr imr_interface;   /* local IP address of interface */
+  struct in_addr imr_multiaddr;        /* IP multicast address of group */
+  struct in_addr imr_interface;        /* local IP address of interface */
 };
 
 
 /* Structure describing an Internet (IP) socket address. */
 #define __SOCK_SIZE__  16              /* sizeof(struct sockaddr)      */
-struct sockaddr_in {
-  short int            sin_family;     /* Address family               */
-  unsigned short int   sin_port;       /* Port number                  */
-  struct in_addr       sin_addr;       /* Internet address             */
+struct sockaddr_in
+{
+  short int sin_family;        /* Address family               */
+  unsigned short int sin_port; /* Port number                  */
+  struct in_addr sin_addr;     /* Internet address             */
 
   /* Pad to size of `struct sockaddr'. */
-  unsigned char                __pad[__SOCK_SIZE__ - sizeof(short int) -
-                       sizeof(unsigned short int) - sizeof(struct in_addr)];
+  unsigned chari  __pad[__SOCK_SIZE__ - sizeof(short int)
+                       sizeof(unsigned short int) - sizeof(struct in_addr)];
 };
 #define sin_zero       __pad           /* for BSD UNIX comp. -FvK      */
 
-
 /*
  * Definitions of the bits in an Internet address integer.
  * On subnets, host and network parts are found according
@@ -167,22 +170,18 @@ struct sockaddr_in {
 
 #endif
 
-/*
- *     IPv6 definitions as we start to include them. This is just
- *     a beginning dont get excited 8)
- */
-
+/* IPv6 definitions as we start to include them. This is just
+   a beginning dont get excited 8) */
 struct in6_addr
 {
-       unsigned char s6_addr[16];
+  unsigned char s6_addr[16];
 };
 
 struct sockaddr_in6
 {
-       unsigned short sin6_family;
-       unsigned short sin6_port;
-       unsigned long sin6_flowinfo;
-       struct in6_addr sin6_addr;
+  unsigned short sin6_family;
+  unsigned short sin6_port;
+  unsigned long sin6_flowinfo;
+  struct in6_addr sin6_addr;
 };
-
 #endif /* _CYGWIN_IN_H */
index 2064e8a..c4ba3a6 100644 (file)
@@ -19,8 +19,18 @@ extern "C"
 
 #include <sys/sysmacros.h>
 
-typedef struct timespec timespec_t, timestruc_t;
-
+#ifndef __timespec_t_defined
+#define __timespec_t_defined
+typedef struct timespec timespec_t;
+#endif /*__timespec_t_defined*/
+
+#ifndef __timestruc_t_defined
+#define __timestruc_t_defined
+typedef struct timespec timestruc_t;
+#endif /*__timestruc_t_defined*/
+
+#ifndef __off_t_defined
+#define __off_t_defined
 typedef long __off32_t;
 typedef long long __off64_t;
 #ifdef __CYGWIN_USE_BIG_TYPES__
@@ -28,7 +38,10 @@ typedef __off64_t off_t;
 #else
 typedef __off32_t off_t;
 #endif
+#endif /*__off_t_defined*/
 
+#ifndef __dev_t_defined
+#define __dev_t_defined
 typedef short __dev16_t;
 typedef unsigned long __dev32_t;
 #ifdef __CYGWIN_USE_BIG_TYPES__
@@ -36,9 +49,15 @@ typedef __dev32_t dev_t;
 #else
 typedef __dev16_t dev_t;
 #endif
+#endif /*__dev_t_defined*/
 
+#ifndef __blksize_t_defined
+#define __blksize_t_defined
 typedef long blksize_t;
+#endif /*__blksize_t_defined*/
 
+#ifndef __blkcnt_t_defined
+#define __blkcnt_t_defined
 typedef long __blkcnt32_t;
 typedef long long __blkcnt64_t;
 #ifdef __CYGWIN_USE_BIG_TYPES__
@@ -46,18 +65,128 @@ typedef __blkcnt64_t  blkcnt_t;
 #else
 typedef __blkcnt32_t  blkcnt_t;
 #endif
+#endif /*__blkcnt_t_defined*/
 
+#ifndef __uid_t_defined
+#define __uid_t_defined
 typedef unsigned short __uid16_t;
-typedef unsigned short __gid16_t;
 typedef unsigned long  __uid32_t;
-typedef unsigned long  __gid32_t;
 #ifdef __CYGWIN_USE_BIG_TYPES__
 typedef __uid32_t uid_t;
-typedef __gid32_t gid_t;
 #else
 typedef __uid16_t uid_t;
+#endif
+#endif /*__uid_t_defined*/
+
+#ifndef __gid_t_defined
+#define __gid_t_defined
+typedef unsigned short __gid16_t;
+typedef unsigned long  __gid32_t;
+#ifdef __CYGWIN_USE_BIG_TYPES__
+typedef __gid32_t gid_t;
+#else
 typedef __gid16_t gid_t;
 #endif
+#endif /*__gid_t_defined*/
+
+#ifndef __ino_t_defined
+#define __ino_t_defined
+#ifdef __CYGWIN_USE_BIG_TYPES1__
+typedef unsigned long long ino_t;
+#else
+typedef unsigned long ino_t;
+#endif
+#endif /*__ino_t_defined*/
+
+#ifndef __BIT_TYPES_DEFINED
+#define __BIT_TYPES_DEFINED__ 1
+
+#ifndef __vm_offset_t
+#define __vm_offset_t_defined
+typedef unsigned long vm_offset_t;
+#endif /*__vm_offset_t_defined*/
+
+#ifndef __vm_size_t
+#define __vm_size_t_defined
+typedef unsigned long vm_size_t;
+#endif /*__vm_size_t_defined*/
+
+#ifndef __int8_t_defined
+#define __int8_t_defined
+typedef char int8_t;
+#endif
+#ifndef __int16_t_defined
+#define __int16_t_defined
+typedef __int16_t int16_t;
+#endif
+#ifndef __int32_t_defined
+#define __int32_t_defined
+typedef __int32_t int32_t;
+#endif
+#ifndef __int64_t_defined
+#define __int64_t_defined
+typedef __int64_t int64_t;
+#endif
+
+#ifndef __uint8_t_defined
+#define __uint8_t_defined
+typedef unsigned char uint8_t;
+#endif
+#ifndef __uint16_t_defined
+#define __uint16_t_defined
+typedef __uint16_t uint16_t;
+#endif
+#ifndef __uint32_t_defined
+#define __uint32_t_defined
+typedef __uint32_t uint32_t;
+#endif
+#ifndef __uint64_t_defined
+#define __uint64_t_defined
+typedef __uint64_t uint64_t;
+#endif
+
+#ifndef __uint8_t_defined
+#define __uint8_t_defined
+typedef unsigned char u_int8_t;
+#endif
+#ifndef __uint16_t_defined
+#define __uint16_t_defined
+typedef __uint16_t u_int16_t;
+#endif
+#ifndef __uint32_t_defined
+#define __uint32_t_defined
+typedef __uint32_t u_int32_t;
+#endif
+#ifndef __uint64_t_defined
+#define __uint64_t_defined
+typedef __uint64_t u_int64_t;
+#endif
+
+#ifndef __uintptr_t_defined
+#define __uintptr_t_defined
+typedef unsigned long uintptr_t;
+#endif
+
+#ifndef __intptr_t_defined
+#define __intptr_t_defined
+typedef long intptr_t;
+#endif
+
+#ifndef __register_t_defined
+#define __register_t_defined
+typedef __int32_t register_t;
+#endif
+
+#ifndef __addr_t_defined
+#define __addr_t_defined
+typedef char *addr_t;
+#endif
+
+#ifndef __mode_t_defined
+#define __mode_t_defined
+typedef unsigned mode_t;
+#endif
+#endif /*__BIT_TYPES_DEFINED*/
 
 #if !defined(__INSIDE_CYGWIN__) || !defined(__cplusplus)
 
index 33b529d..35ac5cf 100644 (file)
@@ -1224,7 +1224,7 @@ write_sd (const char *file, PSECURITY_DESCRIPTOR sd_buf, DWORD sd_size)
 }
 
 static void
-get_attribute_from_acl (int * attribute, PACL acl, PSID owner_sid,
+get_attribute_from_acl (mode_t *attribute, PACL acl, PSID owner_sid,
                        PSID group_sid, BOOL grp_member)
 {
   ACCESS_ALLOWED_ACE *ace;
@@ -1319,7 +1319,7 @@ get_attribute_from_acl (int * attribute, PACL acl, PSID owner_sid,
 }
 
 static int
-get_nt_attribute (const char *file, int *attribute,
+get_nt_attribute (const char *file, mode_t *attribute,
                  __uid32_t *uidret, __gid32_t *gidret)
 {
   if (!wincap.has_security ())
@@ -1387,7 +1387,7 @@ get_nt_attribute (const char *file, int *attribute,
 
 int
 get_file_attribute (int use_ntsec, const char *file,
-                   int *attribute, __uid32_t *uidret, __gid32_t *gidret)
+                   mode_t *attribute, __uid32_t *uidret, __gid32_t *gidret)
 {
   int res;
 
@@ -1435,7 +1435,7 @@ get_file_attribute (int use_ntsec, const char *file,
 
 static int
 get_nt_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type,
-                        int *attribute, __uid32_t *uidret, __gid32_t *gidret)
+                        mode_t *attribute, __uid32_t *uidret, __gid32_t *gidret)
 {
   if (!wincap.has_security ())
     return 0;
@@ -1492,7 +1492,7 @@ get_nt_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type,
 
 int
 get_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type,
-                     int *attribute, __uid32_t *uidret, __gid32_t *gidret)
+                     mode_t *attribute, __uid32_t *uidret, __gid32_t *gidret)
 {
   if (allow_ntsec)
     {
index a99ac0a..9cbea2f 100644 (file)
@@ -215,11 +215,11 @@ extern BOOL allow_smbntsec;
 
 /* File manipulation */
 int __stdcall set_process_privileges ();
-int __stdcall get_file_attribute (int, const char *, int *,
+int __stdcall get_file_attribute (int, const char *, mode_t *,
                                  __uid32_t * = NULL, __gid32_t * = NULL);
 int __stdcall set_file_attribute (int, const char *, int);
 int __stdcall set_file_attribute (int, const char *, __uid32_t, __gid32_t, int);
-int __stdcall get_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type, int *,
+int __stdcall get_object_attribute (HANDLE handle, SE_OBJECT_TYPE object_type, mode_t *,
                                  __uid32_t * = NULL, __gid32_t * = NULL);
 LONG __stdcall read_sd(const char *file, PSECURITY_DESCRIPTOR sd_buf, LPDWORD sd_size);
 LONG __stdcall write_sd(const char *file, PSECURITY_DESCRIPTOR sd_buf, DWORD sd_size);
index cf16433..59bb531 100644 (file)
@@ -803,12 +803,12 @@ chown_worker (const char *name, unsigned fmode, __uid32_t uid, __gid32_t gid)
          goto done;
        }
 
-      DWORD attrib = 0;
+      mode_t attrib = 0;
       if (win32_path.isdir ())
        attrib |= S_IFDIR;
       res = get_file_attribute (win32_path.has_acls (),
                                win32_path.get_win32 (),
-                               (int *) &attrib);
+                               &attrib);
       if (!res)
         res = set_file_attribute (win32_path.has_acls (), win32_path, uid,
                                   gid, attrib);