diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2014-02-22 19:38:12 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2014-02-22 19:38:12 +0000 |
commit | b211f4c17e1939f2bd00c07af2d30a8f1fec67df (patch) | |
tree | 3975b6ccdeeb0a623059395d88c26c5d827d38a7 /winsup/cygwin/external.cc | |
parent | 98cc373860377673c6634edcb529b21e10807618 (diff) | |
download | cygnal-b211f4c17e1939f2bd00c07af2d30a8f1fec67df.tar.gz cygnal-b211f4c17e1939f2bd00c07af2d30a8f1fec67df.tar.bz2 cygnal-b211f4c17e1939f2bd00c07af2d30a8f1fec67df.zip |
* external.cc (cygwin_internal): Add cases for CW_GETNSSSEP,
CW_GETPWSID and CW_GETGRSID.
* grp.cc (internal_getgrsid_from_db): New function.
* passwd.cc (internal_getpwsid_from_db): New function.
(pg_ent::setent): Add special case for call from mkpasswd/mkgroup.
* pwdgrp.h (internal_getpwsid_from_db): Declare.
(internal_getgrsid_from_db): Declare.
(enum nss_enum_t): Move to include/sys/cygwin.h.
(class pg_ent): Add comment.
* uinfo.cc (pwdgrp::fetch_account_from_windows): Fix typo in comment.
Change "UNIX" to "Unix" in domain name.
* include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GETNSSSEP,
CW_GETPWSID and CW_GETGRSID.
(enum nss_enum_t): Define here.
Diffstat (limited to 'winsup/cygwin/external.cc')
-rw-r--r-- | winsup/cygwin/external.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc index eb602fbf6..a99cfef33 100644 --- a/winsup/cygwin/external.cc +++ b/winsup/cygwin/external.cc @@ -595,6 +595,30 @@ cygwin_internal (cygwin_getinfo_types t, ...) } break; + case CW_GETNSSSEP: + res = (uintptr_t) cygheap->pg.nss_separator (); + break; + + case CW_GETPWSID: + { + int db_only = va_arg (arg, int); + PSID psid = va_arg (arg, PSID); + cygpsid sid (psid); + res = (uintptr_t) (db_only ? internal_getpwsid_from_db (sid) + : internal_getpwsid (sid)); + } + break; + + case CW_GETGRSID: + { + int db_only = va_arg (arg, int); + PSID psid = va_arg (arg, PSID); + cygpsid sid (psid); + res = (uintptr_t) (db_only ? internal_getgrsid_from_db (sid) + : internal_getgrsid (sid)); + } + break; + default: set_errno (ENOSYS); } |