From d4c5c96f0c94e3f930dcda29a2b843baac37b07f Mon Sep 17 00:00:00 2001 From: Arthur de Jong Date: Sat, 9 Mar 2013 19:30:18 +0100 Subject: Parse the nscd_invalidate option --- pynslcd/cfg.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'pynslcd') diff --git a/pynslcd/cfg.py b/pynslcd/cfg.py index b03b8c7..eaeaff0 100644 --- a/pynslcd/cfg.py +++ b/pynslcd/cfg.py @@ -89,6 +89,7 @@ nss_nested_groups = False validnames = re.compile(r'^[a-z0-9._@$][a-z0-9._@$ \\~-]{0,98}[a-z0-9._@$~-]$', re.IGNORECASE) pam_authz_searches = [] pam_password_prohibit_message = None +nscd_invalidate = set() # allowed boolean values @@ -312,6 +313,16 @@ def read(filename): flags = 0 | re.IGNORECASE if m.group('flags') == 'i' else 0 validnames = re.compile(m.group('value'), flags=flags) continue + # nscd_invalidate ,,... + m = re.match('nscd_invalidate\s+(?P\S.*)', + line, re.IGNORECASE) + if m: + dbs = re.split('[ ,]+', m.group('value').lower()) + for db in dbs: + if db not in maps: + raise ParseError(filename, lineno, 'map %s unknown' % db) + nscd_invalidate.update(dbs) + continue # unrecognised line raise ParseError(filename, lineno, 'error parsing line %r' % line) # if logging is not configured, default to syslog -- cgit v1.2.3