summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/ldap.h
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2014-11-26 19:46:59 +0000
committerCorinna Vinschen <corinna@vinschen.de>2014-11-26 19:46:59 +0000
commit93d15b36efe67e26e89bcd4def82c4d73c7a6dcb (patch)
tree15661bd5ab69acf7b742e30925c631bf4abcc659 /winsup/cygwin/ldap.h
parent8a2ab1aea1ccd84400d4f7dfd1ac87fa67485036 (diff)
downloadcygnal-93d15b36efe67e26e89bcd4def82c4d73c7a6dcb.tar.gz
cygnal-93d15b36efe67e26e89bcd4def82c4d73c7a6dcb.tar.bz2
cygnal-93d15b36efe67e26e89bcd4def82c4d73c7a6dcb.zip
* Makefile.in (install): Add install-ldif target.
(install-ldif): New target to install cygwin.ldif. * cygheap.h (class cygheap_pwdgrp): Rename pfx_t to nss_pfx_t. Add PFX to enum value. Add nss_scheme_method enum and nss_scheme_t structure. Add home_scheme, shell_scheme and gecos_scheme members. (NSS_SCHEME_MAX): Define. (cygheap_pwdgrp::get_home): Declare. (cygheap_pwdgrp::get_shell): Declare. (cygheap_pwdgrp::get_gecos): Declare. * cygwin.ldif: New file. * ldap.cc (std_user_attr): New array, just defining the standard attributes. (group_attr): Add cygwinUnixGid. (user_attr): Convert to macro pointing to cygheap->pg.ldap_user_attr. (cygheap_pwdgrp::init_ldap_user_attr): New method. (cyg_ldap::fetch_ad_account): Call cygheap_pwdgrp::init_ldap_user_attr if user_attr initialization is required. Fix comment. (cyg_ldap::get_string_attribute): Implement taking attribute name as argument. * ldap.h: Drop unused macros. (cyg_ldap::get_gecos): Remove. (cyg_ldap::get_home): Remove. (cyg_ldap::get_shell): Remove. (cyg_ldap::get_string_attribute): Declare name argument variant public. * uinfo.cc (cygheap_user::ontherange): Fix indentation. (cygheap_pwdgrp::init): Initialize new home_scheme, shell_scheme and gecos_scheme members. Align comment. (NSS_NCMP): Define comparison macro. (NSS_CMP): Ditto. (cygheap_pwdgrp::nss_init_line): Use aforementioned macros throughout. Fix comment handling. Add db_home, db_shell and db_gecos handling. (fetch_from_description): New function to fetch XML-style attributes from (description) string. (fetch_from_path): New function to evaluate path string with wildcards. (cygheap_pwdgrp::get_home): New methods to fetch pw_dir value. (cygheap_pwdgrp::get_shell): Ditto for pw_shell. (cygheap_pwdgrp::get_gecos): Ditto for pw_gecos. (colon_to_semicolon): Move up. (pwdgrp::fetch_account_from_windows): Convert home, shell, gecos variables to char*. Drop statement breaking extended group info. Fetch home, shell and gecos values using new methods. Use fetch_from_description calls to fetch UNIX id and primary groups from SAM comment field. Accommodate uxid being a char* now. Accommodate the fact that extended info is malloc'ed, rather then alloca'ed. Create linebuf content as multibyte string. Create line buffer by just calling cstrdup.
Diffstat (limited to 'winsup/cygwin/ldap.h')
-rw-r--r--winsup/cygwin/ldap.h16
1 files changed, 5 insertions, 11 deletions
diff --git a/winsup/cygwin/ldap.h b/winsup/cygwin/ldap.h
index 7f90a3821..d3c28fcbd 100644
--- a/winsup/cygwin/ldap.h
+++ b/winsup/cygwin/ldap.h
@@ -17,14 +17,11 @@ details. */
#include <ntldap.h>
#pragma pop_macro ("DECLSPEC_IMPORT")
-#define LDAP_USER_PGRP_ATTR 0
-#define LDAP_USER_GECOS_ATTR 1
-#define LDAP_USER_HOME_ATTR 2
-#define LDAP_USER_SHELL_ATTR 3
-#define LDAP_USER_UID_ATTR 4
+#define LDAP_USER_PGRP_ATTR 0
+#define LDAP_USER_UID_ATTR 1
-#define LDAP_GROUP_NAME_ATTR 0
-#define LDAP_GROUP_GID_ATTR 1
+#define LDAP_GROUP_NAME_ATTR 0
+#define LDAP_GROUP_GID_ATTR 1
class cyg_ldap {
PLDAP lh;
@@ -68,13 +65,10 @@ public:
gid_t remap_gid (gid_t gid);
/* User only */
gid_t get_primary_gid () { return get_num_attribute (LDAP_USER_PGRP_ATTR); }
- PWCHAR get_gecos () { return get_string_attribute (LDAP_USER_GECOS_ATTR); }
- PWCHAR get_home ()
- { return get_string_attribute (LDAP_USER_HOME_ATTR); }
- PWCHAR get_shell () { return get_string_attribute (LDAP_USER_SHELL_ATTR); }
gid_t get_unix_uid () { return get_num_attribute (LDAP_USER_UID_ATTR); }
/* group only */
PWCHAR get_group_name ()
{ return get_string_attribute (LDAP_GROUP_NAME_ATTR); }
gid_t get_unix_gid () { return get_num_attribute (LDAP_GROUP_GID_ATTR); }
+ PWCHAR get_string_attribute (PCWSTR name);
};