diff options
author | Gerald Carter <jerry@samba.org> | 2003-10-20 16:50:14 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-10-20 16:50:14 +0000 |
commit | bfcb776abd1ead323963912efef2641e0bc41a03 (patch) | |
tree | 5b493e2b7f6e1bc4078fca8a452ceff03c9df17e /source3/auth/auth_util.c | |
parent | 1db4a703a8aa1caf53da68a9dd085b6ff0a25505 (diff) | |
download | samba-bfcb776abd1ead323963912efef2641e0bc41a03.tar.gz samba-bfcb776abd1ead323963912efef2641e0bc41a03.tar.bz2 samba-bfcb776abd1ead323963912efef2641e0bc41a03.zip |
more 2.2.x compatibility fixes - allow user looksup in the kerb5
sesssetup to fall back to 'user' instaed of failing is REA.LM\user
doesn't exist.
also fix include line in smb_acls.h as requested by metze
(This used to be commit 5ccf6baad7ffb1f992aaf24b41ef5c83362cf613)
Diffstat (limited to 'source3/auth/auth_util.c')
-rw-r--r-- | source3/auth/auth_util.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c index 3803741466..71634f08ed 100644 --- a/source3/auth/auth_util.c +++ b/source3/auth/auth_util.c @@ -942,7 +942,7 @@ static NTSTATUS fill_sam_account(TALLOC_CTX *mem_ctx, /* This is pointless -- there is no suport for differeing unix and windows names. Make sure to always store the - one we actuall looked up and succeeded. Have I mentioned + one we actually looked up and succeeded. Have I mentioned why I hate the 'winbind use default domain' parameter? --jerry */ @@ -951,6 +951,30 @@ static NTSTATUS fill_sam_account(TALLOC_CTX *mem_ctx, return pdb_init_sam_pw(sam_account, passwd); } +/**************************************************************************** + Wrapper to allow the getpwnam() call to styrip the domain name and + try again in case a local UNIX user is already there. + ****************************************************************************/ + +struct passwd *smb_getpwnam( char *domuser ) +{ + struct passwd *pw; + char *p; + + pw = Get_Pwnam( domuser ); + if ( pw ) + return pw; + + /* fallback to looking up just the username */ + + p = strchr( domuser, *lp_winbind_separator() ); + + if ( p ) + return Get_Pwnam(p+1); + + return NULL; +} + /*************************************************************************** Make a server_info struct from the info3 returned by a domain logon ***************************************************************************/ |