diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2019-02-16 18:36:21 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2019-02-16 18:36:21 +0100 |
commit | 7c34811440be0bf1e749d9f075f54320c706cb4b (patch) | |
tree | 26ca5509f3dafc53288164fe7b5d120815131985 | |
parent | 538e7abc3697c4d482ad3017169fe9fa6cbb1bcf (diff) | |
download | cygnal-7c34811440be0bf1e749d9f075f54320c706cb4b.tar.gz cygnal-7c34811440be0bf1e749d9f075f54320c706cb4b.tar.bz2 cygnal-7c34811440be0bf1e749d9f075f54320c706cb4b.zip |
Cygwin: passwd/group: allow specifying "." as local computername
Convenience only. The resulting passwd/group antry is still
fully qualified.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r-- | winsup/cygwin/uinfo.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index 53efc2117..47fe24725 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -2008,7 +2008,15 @@ pwdgrp::fetch_account_from_windows (fetch_user_arg_t &arg, cyg_ldap *pldap) if ((p = wcschr (name, cygheap->pg.nss_separator ()[0]))) { fq_name = true; - *p = L'\\'; + /* Convenience: Translate domain name "." to local machine. */ + if (p == name + 1 && name[0] == L'.') + { + p = wcpcpy (name, cygheap->dom.account_flat_name ()); + *p = L'\\'; + sys_mbstowcs (p + 1, UNLEN + 1, arg.name + 2); + } + else + *p = L'\\'; } sid = csid; ret = LookupAccountNameW (NULL, name, sid, &slen, dom, &dlen, &acc_type); |