diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2014-02-27 12:57:27 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2014-02-27 12:57:27 +0000 |
commit | b39fa2c88da849c7a0bd6a745357b57690501e3d (patch) | |
tree | 2afd52e206518e41fc2f38525932ae58f0c7d3b1 /winsup/cygwin/passwd.cc | |
parent | 8033fd9a65476b2b7d2113f81ad6f4f7dc841816 (diff) | |
download | cygnal-b39fa2c88da849c7a0bd6a745357b57690501e3d.tar.gz cygnal-b39fa2c88da849c7a0bd6a745357b57690501e3d.tar.bz2 cygnal-b39fa2c88da849c7a0bd6a745357b57690501e3d.zip |
* autoload.cc (CheckTokenMembership): Import.
* external.cc (cygwin_internal): Call get_uid/get_gid instead of get_id.
* grp.cc (internal_getgrsid): Take additional cyg_ldap pointer.
Forward to pwdgrp::add_group_from_windows.
(internal_getgrnam): Ditto.
(internal_getgrgid): Ditto.
(gr_ent::enumerate_local): Drop ugid_caching bool from call to
pwdgrp::fetch_account_from_windows.
(getgroups32): Rename from internal_getgroups and drop getgroups32 stub.
Drop srchsid parameter and code handling it. Add local cyg_ldap
instance and forward to internal_getgrXXX.
(getgroups): Call getgroups32.
(get_groups): Add local cyg_ldap instance and forward to
internal_getgrXXX.
(getgrouplist): Ditto.
(setgroups32): Ditto.
* ldap.cc (cyg_ldap::open): Don't call close. Return true if connection
is already open.
(cyg_ldap::remap_uid): Forward this to internal_getpwsid.
(cyg_ldap::remap_gid): Forward this to internal_getgrsid.
* passwd.cc (internal_getpwsid): Take additional cyg_ldap pointer.
Forward to pwdgrp::add_user_from_windows.
(internal_getpwnam): Ditto.
(internal_getpwuid): Ditto.
(pg_ent::enumerate_builtin): Drop ugid_caching bool from call to
pwdgrp::fetch_account_from_windows.
(pg_ent::enumerate_sam): Ditto.
(pg_ent::enumerate_ad): Ditto. Forward local cldap instead.
* pwdgrp.h (internal_getpwsid): Align declaration to above change.
(internal_getpwnam): Ditto.
(internal_getpwuid): Ditto.
(internal_getgrsid): Ditto.
(internal_getgrgid): Ditto.
(internal_getgrnam): Ditto.
(internal_getgroups): Drop declaration.
(pwdgrp::add_account_from_windows): Align declaration to below change.
(pwdgrp::add_user_from_windows): Ditto.
(pwdgrp::add_group_from_windows): Ditto.
* sec_acl.cc (setacl): Add local cyg_ldap instance and forward to
internal_getpwuid and internal_getgrgid.
(getacl): Add local cyg_ldap instance and forward to cygpsid::get_id.
(aclfromtext32): Add local cyg_ldap instance and forward to
internal_getpwnam and internal_getgrnam.
* sec_helper.cc (cygpsid::get_id): Take additional cyg_ldap pointer.
Forward to internal_getgrsid and internal_getpwsid.
(get_sids_info): Drop ldap_open. Forward local cldap to
internal_getpwsid and internal_getgrXXX. Call CheckTokenMembership
rather than internal_getgroups.
* security.h (cygpsid::get_id): Add cyg_ldap pointer, drop default
parameter.
(cygpsid::get_uid): Add cyg_ldap pointer. Call get_id accordingly.
(cygpsid::get_gid): Ditto.
* uinfo.cc (internal_getlogin): Add local cyg_ldap instance and forward
to internal_getpwXXX and internal_getgrXXX calls.
(pwdgrp::add_account_from_windows): Take additional cyg_ldap pointer.
Forward to pwdgrp::fetch_account_from_windows.
(fetch_posix_offset): Drop ldap_open argument and handling. Get
cyg_ldap instance as pointer.
(pwdgrp::fetch_account_from_windows): Take additional cyg_ldap pointer.
Use it if it's not NULL, local instance otherwise. Drop ldap_open.
Drop fetching extended group arguments from AD for speed.
Diffstat (limited to 'winsup/cygwin/passwd.cc')
-rw-r--r-- | winsup/cygwin/passwd.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/winsup/cygwin/passwd.cc b/winsup/cygwin/passwd.cc index 1a5564904..d27f424b1 100644 --- a/winsup/cygwin/passwd.cc +++ b/winsup/cygwin/passwd.cc @@ -101,7 +101,7 @@ pwdgrp::find_user (uid_t uid) } struct passwd * -internal_getpwsid (cygpsid &sid) +internal_getpwsid (cygpsid &sid, cyg_ldap *pldap) { struct passwd *ret; @@ -118,7 +118,7 @@ internal_getpwsid (cygpsid &sid) { if ((ret = cygheap->pg.pwd_cache.win.find_user (sid))) return ret; - return cygheap->pg.pwd_cache.win.add_user_from_windows (sid); + return cygheap->pg.pwd_cache.win.add_user_from_windows (sid, pldap); } return NULL; } @@ -132,7 +132,7 @@ internal_getpwsid_from_db (cygpsid &sid) } struct passwd * -internal_getpwnam (const char *name) +internal_getpwnam (const char *name, cyg_ldap *pldap) { struct passwd *ret; @@ -149,13 +149,13 @@ internal_getpwnam (const char *name) { if ((ret = cygheap->pg.pwd_cache.win.find_user (name))) return ret; - return cygheap->pg.pwd_cache.win.add_user_from_windows (name); + return cygheap->pg.pwd_cache.win.add_user_from_windows (name, pldap); } return NULL; } struct passwd * -internal_getpwuid (uid_t uid) +internal_getpwuid (uid_t uid, cyg_ldap *pldap) { struct passwd *ret; @@ -172,7 +172,7 @@ internal_getpwuid (uid_t uid) { if ((ret = cygheap->pg.pwd_cache.win.find_user (uid))) return ret; - return cygheap->pg.pwd_cache.win.add_user_from_windows (uid); + return cygheap->pg.pwd_cache.win.add_user_from_windows (uid, pldap); } else if (uid == ILLEGAL_UID) return cygheap->pg.pwd_cache.win.add_user_from_windows (uid); @@ -500,7 +500,7 @@ pg_ent::enumerate_builtin () fetch_user_arg_t arg; arg.type = SID_arg; arg.sid = &sid; - char *line = pg.fetch_account_from_windows (arg, group, false); + char *line = pg.fetch_account_from_windows (arg, group); return pg.add_account_post_fetch (line, false); } @@ -547,7 +547,7 @@ pg_ent::enumerate_sam () fetch_user_arg_t arg; arg.type = SID_arg; arg.sid = &sid; - char *line = pg.fetch_account_from_windows (arg, group, false); + char *line = pg.fetch_account_from_windows (arg, group); if (line) return pg.add_account_post_fetch (line, false); } @@ -596,7 +596,7 @@ pg_ent::enumerate_ad () fetch_user_arg_t arg; arg.type = SID_arg; arg.sid = &sid; - char *line = pg.fetch_account_from_windows (arg, group, false); + char *line = pg.fetch_account_from_windows (arg, group, &cldap); if (line) return pg.add_account_post_fetch (line, false); } |