QcSlapd - A port of slapd to Windows NT provided by QUALCOMM Incorporated SUMMARY ------- QcSlapd is a port of the University of Michigan LDAP Server (slapd) to Microsoft Windows NT. It uses the SleepyCat Berkeley Database (DB2) as backend database (see http://www.sleepycat.com for more information). It runs as a service under Windows NT, and also has a debug mode in which it runs interactively from a command line. QcSlapd is distributed in source code format. Installation ------------ Unzip the sources to a directory of your choosing. You will need Microsoft Visual C++ 5.0 to compile the sources. A project workspace is provided that can be used to build the product. The QcSlapd project is organized into a number of sub-projects. QcSlapd is the main project that builds the QcSlapd server. This project uses a number of libraries that are maintained as separate projects. The libraries used by QcSlapd and the corresponding MSVC projects are given below. Libraries: Library Project Name ----------- ------------ Avl.lib libavl Ber.lib liblber Ldbm.lib libldbm Thread liblthread Ldif.lib libldif Utils.lib libutils (used by ldif2ldbm and ldbmcat applications) Executables: Executable Project Name ----------- ------------ QcSlapd.exe slapd ldif2ldbm.exe ldif2ldbm ldbmcat.exe ldbmcat Building QcSlapd: The underlying database for slapd was selected to be LDBM. LDBM type can be supported by GNU's gdb or Berkely's db or the Sleepycat's db. QcSlapd uses Sleepcat, Inc's LDBM DB3 as the backend. The slapd code is written to use the interface of db version 1.85. QcSlapd uses the old db 1.85 interface to the Sleepycat's db. Instructions on obtaining and compiling Sleepycat's db code: Sleepycat's db is available from www.sleepycat.com. For WIN32 platform, Sleepycat provides a project that compiles the db into a dll. This project is Db_dll.dsp and is under the build.win32 directory of the db distribution. Since QcSlapd uses the db 1.85 interface, this DLL project has to be modified to allow db 1.85 interface. For this, add db185.c file from db185 directory to the Db_DLL project. Export the function dbopen from the dll. In order to do this, modify libdb.def file in the build.win32 directory and add a line similar to "dbopen @52". The number 52 above must not conflict with other calls, so please select a number that is unique. Compile the project. The resulting library should be named as "libdb226.lib". The library will be linked with QcSlapd project to generate a QcSlapd executable. Keep the libdb226.dll with the QcSlapd or in a system directory so that Qcslapd can access it. A quick start guide to QcSlapd QcSlapd is a port of the University of Michigan's(Umich) slapd to Windows NT. Documentation and Configuration: The main configuration of QcSlapd is done through the configuration file "slapd.conf". The file must be present in the same directory where the QcSlapd resides. A sample slapd.conf file is provided in the distribution. The configuration uses the semantics as the Umich configuration file. Please refer to the The SLAPD and SLURPD Administrators Guide available at "http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/" for documentation of slapd. More documentation is available from their web page at "http://www.umich.edu/~dirsvcs/ldap/index.html". Slapd schema is provided by object classes and attributes and are usually kept in "slapd.oc.conf" and "slapd.at.conf" respectively. Slapd.conf usually includes these two files using include option. These two files are provided in the conf/ directory of the slapd distribution. Directory Option to specify database files directory: An extra option supported by QcSlapd is directory to locate a directory in which the database files will reside. The syntax is given below. Directory example: directory "d:/program files/worldmail/" Make sure the above mentioned directory exists. Log Files: Log files are created in a directory "log" in directory in which QcSlapd resides. Make sure this directory exists. Other tools are ported and available in this distribution. Ldif2ldbm: Ldif2ldbm tool is used to convert the data from LDIF format to ldbm. This tool directly generates the db files without going through LDAP protocol. It uses slapd.conf file for configuration information. The usage is "ldif2ldbm . Input file has data in LDIF format and config file is "slapd.conf" as used by the QcSlapd service. To run QcSlapd: Copy QcSlapd to a directory assigned for running the slapd service. Create or copy the slapd.conf file and modify the needed options such as the locations of "slapd.at.conf" and "slapd.oc.conf" files. Provide a directory for the database files. Use ldif2ldbm to provide a database using LDIF format input files. Install QcSlapd with install argument. QcSlapd becomes a service with the service name of "EUDORA.IDS". You can use this name to start or stop the service. You can also this service from Service Control Manager provided by NT. The name of the service is "Eudora WorldMail Directory Service". The following options are provided as arguments. QcSlapd -install to as NT service. QcSlapd -remove to remove as service. QcSlapd -debug to run in interactive mode. Log messages are sent to console to aid debugging. ------- Support ------- Future versions and ports of the Eudora LDAP Server will be made available at this web site, www.eudora.com. You may also write to qcslapd@qualcomm.com for any patches, questions, and suggestions. All messages are read and all constructive suggestions are considered for development. Because of time and resource limitations, we can't answer all messages. -------------------------------------------------------------- License Terms for Eudora WorldMail Directory Service (QcSlapd) -------------------------------------------------------------- QUALCOMM grants to the user a nonexclusive license to use this Software solely for User's own personal or internal business purposes. The user may not commercially distribute, sublicense, resell, or otherwise transfer for any consideration, or reproduce for any such purposes, the Software or any modification or derivation thereof, either alone or in conjunction with any other product or program, except as provided herein. Further, the user may not modify the Software, other than for User's own personal or internal business use. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistribution of source code must retain the below copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: This product includes software developed by the University of Michigan at Ann Arbor, the University of California, Berkeley, the Harvard University and their contributors. 4. Neither the University nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THE SOFTWARE IS PROVIDED TO THE USER ''AS IS.'' QUALCOMM, THE TRUSTEES AND CONTRIBUTORS (HEREINAFTER THE "LICENSORS") MAKE NO WARRANTIES, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE AND/OR ASSOCIATED MATERIALS PROVIDED TO THE USER, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR AGAINST INFRINGEMENT. THE LICENSORS DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE SOFTWARE WILL BE CORRECTED. FURTHERMORE, THE LICENSORS DO NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OR THE RESULTS OF THE USE OF THE SOFTWARE OR ANY DOCUMENTATION PROVIDED THEREWITH IN TERMS OF THEIR CORRECTNESS, ACCURACY, RELIABILITY, OR OTHERWISE. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY QUALCOMM OR A QUALCOMM AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY. LIMITATION OF LIABILITY - IN NO EVENT SHALL LICENSORS ARE NOT LIABLE FOR ANY CLAIMS OR DAMAGES WHATSOEVER, EITHER DIRECT OR INDIRECT, INCLUDING PROPERTY DAMAGE; PERSONAL INJURY; INTELLECTUAL PROPERTY INFRINGEMENT; LOSS OF USE, DATA OR PROFITS; PROCUREMENT OF SUBSTITUTE GOODS; OR INTERRUPTION OF BUSINESS, OR FOR ANY SPECIAL, EXEMPLARY, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED, WHETHER ARISING OUT OF BREACH OF WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY, OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright (c) 1992-1996 Regents of the University of Michigan. All rights reserved. Copyright (c) 1990, 1993, 1994, 1995, 1996, 1997 Sleepycat Software. All rights reserved. Copyright (c) 1990, 1993, 1994, 1995 The Regents of the University of California. All rights reserved. Copyright (c) 1995, 1996 The President and Fellows of Harvard University. All rights reserved. Copyright (c) 1997 QUALCOMM Incorporated. All rights reserved. QUALCOMM is a registered trademark and registered service mark of QUALCOMM Incorporated. All other trademarks and service marks are the property of their respective owners. ----------------------------------- License Terms for SLAPD source code ----------------------------------- Copyright (c) 1992-1996 Regents of the University of Michigan. All rights reserved. Redistribution and use in source and binary forms are permitted provided that this notice is preserved and that due credit is given to the University of Michigan at Ann Arbor. The name of the University may not be used to endorse or promote products derived from this software without specific prior written permission. This software is provided ``as is'' without express or implied warranty. --------------------------------------------------------- License Terms for Sleepycat, Inc's Berkeley Database (DB) --------------------------------------------------------- The following are the copyrights and redistribution conditions that apply to this copy of the DB software. For a license to use, redistribute or sell DB software under conditions other than those described here, or to purchase support for this software, please contact Sleepycat Software at one of the following addresses: Sleepycat Software db@sleepycat.com 394 E. Riding Dr. +1-508-287-4781 Carlisle, MA 01741 USA Copyright (c) 1990, 1993, 1994, 1995, 1996, 1997 Sleepycat Software. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Redistributions in any form must be accompanied by information on how to obtain complete source code for the DB software and any accompanying software that uses the DB software. The source code must either be included in the distribution or be available for no more than the cost of distribution plus a nominal fee, and must be freely redistributable under reasonable conditions. For an executable file, complete source code means the source code for all modules it contains. It does not mean source code for modules or files that typically accompany the operating system on which the executable file runs, e.g., standard library modules or system header files. THIS SOFTWARE IS PROVIDED BY SLEEPYCAT SOFTWARE ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SLEEPYCAT SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright (c) 1990, 1993, 1994, 1995 The Regents of the University of California. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright (c) 1995, 1996 The President and Fellows of Harvard University. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by Harvard University and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 12/18/97