From 02bc90ea442f5d115df17de0ebd0bbfdf214c1a5 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 3 Dec 1997 04:20:39 +0000 Subject: change the "username map" option to allow the user to stop the processing part way through the file if a match is found. If a line starts with ! and a match is made by that line then processing stops. This allows better wildcard handling. (patch from Anselm.Kruis@Physik.Uni-Muenchen.DE) (This used to be commit af57bc05fe0f248aaef329358c583abcffe1657c) --- source3/lib/username.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source3/lib') diff --git a/source3/lib/username.c b/source3/lib/username.c index a9f6425991..a7241d309f 100644 --- a/source3/lib/username.c +++ b/source3/lib/username.c @@ -82,11 +82,19 @@ void map_username(char *user) for (; (s=fgets_slash(NULL,80,f)); free(s)) { char *unixname = s; char *dosname = strchr(unixname,'='); + BOOL break_if_mapped = False; if (!dosname) continue; *dosname++ = 0; while (isspace(*unixname)) unixname++; + if ('!' == *unixname) + { + break_if_mapped = True; + unixname++; + while (*unixname && isspace(*unixname)) unixname++; + } + if (!*unixname || strchr("#;",*unixname)) continue; { @@ -102,6 +110,10 @@ void map_username(char *user) StrnCpy(last_from,user,sizeof(last_from)-1); sscanf(unixname,"%s",user); StrnCpy(last_to,user,sizeof(last_to)-1); + if(break_if_mapped) { + free(s); + break; + } } } -- cgit