From: Joe Guo Date: Sun, 28 Oct 2018 21:16:02 +0000 (+1300) Subject: netcmd/ldapcmp: avoid list comprehension in for loop X-Git-Tag: tdb-1.3.17~698 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86882bd12e506e3a7ceac4f3e9e282df55398a7f;p=thirdparty%2Fsamba.git netcmd/ldapcmp: avoid list comprehension in for loop The list comprehension will repeat for each item. For large database, this make the command freeze. Signed-off-by: Joe Guo Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett --- diff --git a/python/samba/netcmd/ldapcmp.py b/python/samba/netcmd/ldapcmp.py index 9bfa8531e81..51f3c7dea54 100644 --- a/python/samba/netcmd/ldapcmp.py +++ b/python/samba/netcmd/ldapcmp.py @@ -751,9 +751,13 @@ class LDAPBundle(object): # It does not matter if they are in the same DC, in two DC in one domain or in two # different domains. if self.search_scope != SCOPE_BASE: + + self_dns = [q.upper() for q in self.dn_list] + other_dns = [q.upper() for q in other.dn_list] + title = "\n* DNs found only in %s:" % self.con.host for x in self.dn_list: - if not x.upper() in [q.upper() for q in other.dn_list]: + if not x.upper() in other_dns: if title and not self.skip_missing_dn: self.log(title) title = None @@ -764,7 +768,7 @@ class LDAPBundle(object): # title = "\n* DNs found only in %s:" % other.con.host for x in other.dn_list: - if not x.upper() in [q.upper() for q in self.dn_list]: + if not x.upper() in self_dns: if title and not self.skip_missing_dn: self.log(title) title = None