summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-04-28 12:04:49 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-04-28 12:04:49 -0400
commitf8f2d51cb2002d620788d614f68e50342bb3a058 (patch)
treeb97f0512fdc618d5229ae8bb09fb9392404b34da
parent961992006cb274bb2b1f21ad94a1a57ca48df1a4 (diff)
downloadslapi-nis-f8f2d51cb2002d620788d614f68e50342bb3a058.tar.gz
slapi-nis-f8f2d51cb2002d620788d614f68e50342bb3a058.tar.xz
slapi-nis-f8f2d51cb2002d620788d614f68e50342bb3a058.zip
- note why i like having the cache as an intermediate
-rw-r--r--doc/design.txt30
1 files changed, 20 insertions, 10 deletions
diff --git a/doc/design.txt b/doc/design.txt
index aa64e04..e17de42 100644
--- a/doc/design.txt
+++ b/doc/design.txt
@@ -66,7 +66,8 @@ above is asked for this information, it has at least these options:
- This keeps clients from ever noticing that a map has changed.
c) return the latest revision of any of the results which formed the
contents of the map
- - This could severely load a directory server.
+ - This could severely load a directory server if the information
+ needs to be generated dynamically and frequently.
NIS also requires that a server be able to answer whether or not it
services a specified domain, and which maps it serves for a domain that
@@ -122,17 +123,26 @@ configurable via internal APIs -- the map cache itself has no forehand
knowledge of domain names, map names, or formats, as it merely models
data in the way that a NIS server might.
+Forcing queries to use the cache provides a couple of benefits over an
+alternate approach of performing an LDAP query for each NIS query:
+* While the directory server is generally only case-preserving, the NIS
+ server can be case-sensitive, which is preferred by NIS clients and
+ a requirement for some customers.
+* Because the query used is never used to construct an LDAP filter or
+ query, we don't have to worry about escaping text to avoid string injection
+ attacks.
+
== Back End ==
-The backend interface module sets up and maintains the map cache. At
-startup time, it configures the map cache with the list of domains and
-maps, and populates the maps with initial data. [Using postoperation
-plugin hooks, the backend interface also notes when entries are added,
-modified, renamed (modrdn'd), or deleted from the directory server. It
-uses this information to create or destroy maps in the map cache, and to
-add, remove, or update entries in the map cache's maps, thereby ensuring
-that the map cache always reflects the current contents of the directory
-server.]
+The backend interface module sets up, populates, and maintains the map
+cache. At startup time, it configures the map cache with the list of
+domains and maps, and populates the maps with initial data. [Using
+postoperation plugin hooks, the backend interface also notes when
+entries are added, modified, renamed (modrdn'd), or deleted from the
+directory server. It uses this information to create or destroy maps in
+the map cache, and to add, remove, or update entries in the map cache's
+maps, thereby ensuring that the map cache always reflects the current
+contents of the directory server.]
The backend interface reads the configuration it should use for the map
cache from its configuration area in the directory server. Beneath the