summaryrefslogtreecommitdiff
path: root/pynslcd/common.py
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2013-03-24 19:58:28 +0100
committerArthur de Jong <arthur@arthurdejong.org>2013-03-24 22:48:13 +0100
commitd6a6e8b436fc2b3aabc8a6edd62ad60bd70e0c4c (patch)
treeac420f4f5b4dc2d3b2ffeae77d7abb7f695c0069 /pynslcd/common.py
parent41ba574974a22e709bde5728e90de5dd0c2ce82d (diff)
Implement support for nested groups in pynslcd
Diffstat (limited to 'pynslcd/common.py')
-rw-r--r--pynslcd/common.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/pynslcd/common.py b/pynslcd/common.py
index bbffef4..3a59cbe 100644
--- a/pynslcd/common.py
+++ b/pynslcd/common.py
@@ -82,18 +82,23 @@ class Request(object):
stream."""
pass
+ def get_results(self, parameters):
+ """Provide the result entries by performing a search."""
+ for dn, attributes in self.search(self.conn, parameters=parameters):
+ for values in self.convert(dn, attributes, parameters):
+ yield values
+
def handle_request(self, parameters):
"""This method handles the request based on the parameters read
with read_parameters()."""
try:
#with cache.con:
if True:
- for dn, attributes in self.search(self.conn, parameters=parameters):
- for values in self.convert(dn, attributes, parameters):
- self.fp.write_int32(constants.NSLCD_RESULT_BEGIN)
- self.write(*values)
- if self.cache:
- self.cache.store(*values)
+ for values in self.get_results(parameters):
+ self.fp.write_int32(constants.NSLCD_RESULT_BEGIN)
+ self.write(*values)
+ if self.cache:
+ self.cache.store(*values)
except ldap.SERVER_DOWN:
if self.cache:
logging.debug('read from cache')