summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2019-02-16 18:36:21 +0100
committerCorinna Vinschen <corinna@vinschen.de>2019-02-16 18:36:21 +0100
commit7c34811440be0bf1e749d9f075f54320c706cb4b (patch)
tree26ca5509f3dafc53288164fe7b5d120815131985
parent538e7abc3697c4d482ad3017169fe9fa6cbb1bcf (diff)
downloadcygnal-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.cc10
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);