support for binary attribute values in LDAP XPCOM SDK (bug 119380). r=peterv@netscape.com, sr=sspitzer@netscape.com/mscott@netscape.com

This commit is contained in:
dmose%netscape.com 2002-06-14 00:38:18 +00:00
parent 9202384131
commit 1ff8c12305
17 changed files with 496 additions and 15 deletions

View File

@ -6,3 +6,4 @@ nsILDAPMessageListener.idl
nsILDAPErrors.idl
nsILDAPServer.idl
nsILDAPService.idl
nsILDAPBERValue.idl

View File

@ -50,6 +50,7 @@ XPIDLSRCS = \
nsILDAPErrors.idl \
nsILDAPServer.idl \
nsILDAPService.idl \
nsILDAPBERValue.idl \
$(NULL)
ifdef MOZ_LDAP_XPCOM_EXPERIMENTAL

View File

@ -33,6 +33,7 @@ XPIDLSRCS= .\nsILDAPConnection.idl \
.\nsILDAPErrors.idl \
.\nsILDAPServer.idl \
.\nsILDAPService.idl \
.\nsILDAPBERValue.idl \
!if defined(ENABLE_LDAP_EXPERIMENTAL)
!endif
$(NULL)

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the mozilla.org LDAP XPCOM SDK.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 2002 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): Dan Mosedale <dmose@netscape.com> (original author)
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU General Public License Version 2 or later (the
* "GPL"), in which case the provisions of the GPL are applicable
* instead of those above. If you wish to allow use of your
* version of this file only under the terms of the GPL and not to
* allow others to use your version of this file under the MPL,
* indicate your decision by deleting the provisions above and
* replace them with the notice and other provisions required by
* the GPL. If you do not delete the provisions above, a recipient
* may use your version of this file under either the MPL or the
* GPL.
*/
#include "nsISupports.idl"
/**
* Representation of a BER value as an interface containing an array of
* bytes. Someday this should perhaps be obsoleted by a better, more
* generalized version of nsIByteBuffer, but that's currently not even
* scriptable (see bug 125596).
*/
[scriptable, uuid(c817c5fe-1dd1-11b2-a10b-ae9885762ea9)]
interface nsILDAPBERValue : nsISupports
{
/**
* Set the BER value from an array of bytes (copies).
*
* @exception NS_ERROR_OUT_OF_MEMORY couldn't allocate buffer to copy to
*/
void set(in unsigned long aCount,
[array, size_is(aCount)] in octet aValue);
/**
* Set the BER value from a UTF8 string (copies).
*
* @exception NS_ERROR_OUT_OF_MEMORY couldn't allocate buffer to copy to
*/
void setFromUTF8(in AUTF8String aValue);
/**
* Get the BER value as an array of bytes. Note that if this value is
* zero-length, aCount and aRetVal will both be 0. This means that
* (in C++ anyway) the caller MUST test either aCount or aRetval before
* dereferencing aRetVal.
*
* @exception NS_ERROR_OUT_OF_MEMORY couldn't allocate buffer to copy to
*/
void get(out unsigned long aCount,
[retval, array, size_is(aCount)] out octet aRetVal);
};

View File

@ -33,13 +33,15 @@
*/
#include "nsISupports.idl"
#include "nsILDAPOperation.idl"
/* hack around XPIDL bug 78848; when that's fixed, this can disappear */
%{C++
#include "nsAString.h"
%}
interface nsILDAPBERValue;
interface nsILDAPOperation;
[scriptable, uuid(973ff50f-2002-4f0c-b57d-2242156139a2)]
interface nsILDAPMessage : nsISupports
{
@ -178,4 +180,20 @@ interface nsILDAPMessage : nsISupports
* it also returns the closest existing DN to the entry requested.
*/
readonly attribute AString matchedDn;
/**
* Get an array of all the attribute values in this message (a wrapper
* around the LDAP C SDK's get_values_len()).
*
* @param attr The attribute whose values are to be returned
* @param count Number of values in the outbound array.
* @param values Array of nsILDAPBERValue objects
*
* @exception NS_ERROR_UNEXPECTED Bug or memory corruption
* @exception NS_ERROR_LDAP_DECODING_ERROR Attribute not found or other
* decoding error.
* @exception NS_ERROR_OUT_OF_MEMORY
*/
void getBinaryValues(in string attr, out unsigned long count,
[retval, array, size_is(count)] out nsILDAPBERValue values);
};

View File

@ -58,6 +58,7 @@ CPPSRCS = \
nsLDAPURL.cpp \
nsLDAPServer.cpp \
nsLDAPService.cpp \
nsLDAPBERValue.cpp \
$(NULL)
ifdef MOZ_LDAP_XPCOM_EXPERIMENTAL

View File

@ -41,6 +41,7 @@ CPP_OBJS = .\$(OBJDIR)\nsLDAPURL.obj \
.\$(OBJDIR)\nsLDAPOperation.obj \
.\$(OBJDIR)\nsLDAPServer.obj \
.\$(OBJDIR)\nsLDAPService.obj \
.\$(OBJDIR)\nsLDAPBERValue.obj \
!if defined(ENABLE_LDAP_EXPERIMENTAL)
.\$(OBJDIR)\nsLDAPProtocolHandler.obj \
.\$(OBJDIR)\nsLDAPChannel.obj \

View File

@ -0,0 +1,138 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the mozilla.org LDAP XPCOM SDK.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 2002 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): Dan Mosedale <dmose@netscape.com>
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU General Public License Version 2 or later (the
* "GPL"), in which case the provisions of the GPL are applicable
* instead of those above. If you wish to allow use of your
* version of this file only under the terms of the GPL and not to
* allow others to use your version of this file under the MPL,
* indicate your decision by deleting the provisions above and
* replace them with the notice and other provisions required by
* the GPL. If you do not delete the provisions above, a recipient
* may use your version of this file under either the MPL or the
* GPL.
*/
#include "nsLDAPBERValue.h"
#include "nsMemory.h"
#include "nsString.h"
#include "nsReadableUtils.h"
NS_IMPL_THREADSAFE_ISUPPORTS1(nsLDAPBERValue, nsILDAPBERValue)
nsLDAPBERValue::nsLDAPBERValue() : mValue(0), mSize(0)
{
NS_INIT_ISUPPORTS();
}
nsLDAPBERValue::~nsLDAPBERValue()
{
if (mValue) {
nsMemory::Free(mValue);
}
}
// void get (out unsigned long aCount,
// [array, size_is (aCount), retval] out octet aRetVal); */
NS_IMETHODIMP
nsLDAPBERValue::Get(PRUint32 *aCount, PRUint8 **aRetVal)
{
PRUint8 *array;
// if mSize = 0, return a count of a 0 and a null pointer
if (mSize) {
// get a buffer to hold a copy of the data
//
array = NS_STATIC_CAST(PRUint8 *, nsMemory::Alloc(mSize));
if (!array) {
return NS_ERROR_OUT_OF_MEMORY;
}
// copy and return
//
memcpy(array, mValue, mSize);
}
*aCount = mSize;
*aRetVal = mSize ? array : 0;
return NS_OK;
}
// void set(in unsigned long aCount,
// [array, size_is(aCount)] in octet aValue);
NS_IMETHODIMP
nsLDAPBERValue::Set(PRUint32 aCount, PRUint8 *aValue)
{
// get rid of any old value being held here
//
if (mValue) {
nsMemory::Free(mValue);
}
// if this is a non-zero value, allocate a buffer and copy
//
if (aCount) {
// get a buffer to hold a copy of this data
//
mValue = NS_STATIC_CAST(PRUint8 *, nsMemory::Alloc(aCount));
if (!mValue) {
return NS_ERROR_OUT_OF_MEMORY;
}
// copy the data and return
//
memcpy(mValue, aValue, aCount);
} else {
// otherwise just set it to null
//
mValue = 0;
}
mSize = aCount;
return NS_OK;
}
// void setFromUTF8(in AUTF8String aValue);
//
NS_IMETHODIMP
nsLDAPBERValue::SetFromUTF8(const nsACString & aValue)
{
// get rid of any old value being held here
//
if (mValue) {
nsMemory::Free(mValue);
}
// copy the data and return
//
// XXXdmose should really be ToNewUTF8String, once the appropriate
// signature for that exists
//
mSize = aValue.Length();
if (mSize) {
mValue = NS_REINTERPRET_CAST(PRUint8 *, ToNewCString(aValue));
} else {
mValue = 0;
}
return NS_OK;
}

View File

@ -0,0 +1,61 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the mozilla.org LDAP XPCOM SDK.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 2002 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): Dan Mosedale <dmose@netscape.com>
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU General Public License Version 2 or later (the
* "GPL"), in which case the provisions of the GPL are applicable
* instead of those above. If you wish to allow use of your
* version of this file only under the terms of the GPL and not to
* allow others to use your version of this file under the MPL,
* indicate your decision by deleting the provisions above and
* replace them with the notice and other provisions required by
* the GPL. If you do not delete the provisions above, a recipient
* may use your version of this file under either the MPL or the
* GPL.
*/
#ifndef _nsLDAPBERValue_h_
#define _nsLDAPBERValue_h_
#include "ldap.h"
#include "nsILDAPBERValue.h"
// 7c9fa10e-1dd2-11b2-a097-ac379e6803b2
//
#define NS_LDAPBERVALUE_CID \
{ 0x7c9fa10e, 0x1dd2, 0x11b2, \
{0xa0, 0x97, 0xac, 0x37, 0x9e, 0x68, 0x03, 0xb2 }}
class nsLDAPBERValue : public nsILDAPBERValue
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSILDAPBERVALUE
nsLDAPBERValue();
virtual ~nsLDAPBERValue();
private:
PRUint8 *mValue; // pointer to an array
PRUint32 mSize; // size of the value, in bytes
};
#endif // _nsLDAPBERValue_h_

View File

@ -45,6 +45,8 @@
#include "nsIInterfaceRequestor.h"
#include "nsIInterfaceRequestorUtils.h"
#include "nsIStreamListener.h"
#include "nsILDAPConnection.h"
#include "nsILDAPOperation.h"
#include "nsILDAPMessageListener.h"
#include "nsIProgressEventSink.h"
#include "nsILDAPURL.h"

View File

@ -699,7 +699,8 @@ CheckLDAPOperationResult(nsHashKey *aKey, void *aData, void* aClosure)
// we want nsLDAPMessage specifically, not a compatible, since
// we're sharing native objects used by the LDAP C SDK
//
nsLDAPMessage *rawMsg = new nsLDAPMessage();
nsLDAPMessage *rawMsg;
NS_NEWXPCOM(rawMsg, nsLDAPMessage);
if (!rawMsg) {
NS_ERROR("CheckLDAPOperationResult(): couldn't allocate memory"
" for new LDAP message; search entry dropped");

View File

@ -39,6 +39,8 @@
#include "nsCRT.h"
#include "nsLDAPConnection.h"
#include "nsReadableUtils.h"
#include "nsISupportsUtils.h"
#include "nsLDAPBERValue.h"
NS_IMPL_THREADSAFE_ISUPPORTS1(nsLDAPMessage, nsILDAPMessage);
@ -539,6 +541,98 @@ nsLDAPMessage::GetValues(const char *aAttr, PRUint32 *aCount,
return NS_OK;
}
// wrapper for get_values_len
//
NS_IMETHODIMP
nsLDAPMessage::GetBinaryValues(const char *aAttr, PRUint32 *aCount,
nsILDAPBERValue ***aValues)
{
struct berval **values;
PR_LOG(gLDAPLogModule, PR_LOG_DEBUG,
("nsLDAPMessage::GetBinaryValues(): called with aAttr = '%s'",
aAttr));
values = ldap_get_values_len(mConnectionHandle, mMsgHandle, aAttr);
// bail out if there was a problem
//
if (!values) {
PRInt32 lderrno = ldap_get_lderrno(mConnectionHandle, 0, 0);
if ( lderrno == LDAP_DECODING_ERROR ) {
// this may not be an error; it could just be that the
// caller has asked for an attribute that doesn't exist.
//
PR_LOG(gLDAPLogModule, PR_LOG_WARNING,
("nsLDAPMessage::GetBinaryValues(): ldap_get_values "
"returned LDAP_DECODING_ERROR"));
return NS_ERROR_LDAP_DECODING_ERROR;
} else if ( lderrno == LDAP_PARAM_ERROR ) {
NS_ERROR("nsLDAPMessage::GetBinaryValues(): internal error: 1");
return NS_ERROR_UNEXPECTED;
} else {
NS_ERROR("nsLDAPMessage::GetBinaryValues(): internal error: 2");
return NS_ERROR_UNEXPECTED;
}
}
// count the values
//
PRUint32 numVals = ldap_count_values_len(values);
// create the out array
//
*aValues =
NS_STATIC_CAST(nsILDAPBERValue **,
nsMemory::Alloc(numVals * sizeof(nsILDAPBERValue)));
if (!aValues) {
ldap_value_free_len(values);
return NS_ERROR_OUT_OF_MEMORY;
}
// clone the array (except for the trailing NULL entry) using the
// shared allocator for XPCOM correctness
//
PRUint32 i;
nsresult rv;
nsCOMPtr<nsILDAPBERValue> berValue;
for ( i = 0 ; i < numVals ; i++ ) {
// create an nsBERValue object
//
NS_NEWXPCOM(berValue, nsLDAPBERValue);
if (!berValue) {
NS_ERROR("nsLDAPMessage::GetBinaryValues(): out of memory"
" creating nsBERValue object");
NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(i, aValues);
ldap_value_free_len(values);
return rv == NS_ERROR_OUT_OF_MEMORY ? rv : NS_ERROR_UNEXPECTED;
}
// copy the value from the struct into the nsBERValue
//
rv = berValue->Set(values[i]->bv_len,
NS_REINTERPRET_CAST(PRUint8 *, values[i]->bv_val));
if (NS_FAILED(rv)) {
NS_ERROR("nsLDAPMessage::GetBinaryValues(): error setting"
" nsBERValue");
ldap_value_free_len(values);
return rv == NS_ERROR_OUT_OF_MEMORY ? rv : NS_ERROR_UNEXPECTED;
}
// put the nsIBERValue object into the out array
//
NS_ADDREF( (*aValues)[i] = berValue.get() );
}
*aCount = numVals;
ldap_value_free_len(values);
return NS_OK;
}
// readonly attribute nsILDAPOperation operation;
NS_IMETHODIMP nsLDAPMessage::GetOperation(nsILDAPOperation **_retval)
{

View File

@ -40,6 +40,7 @@
#include "nsLDAPMessage.h"
#include "nsLDAPServer.h"
#include "nsLDAPService.h"
#include "nsLDAPBERValue.h"
#include "ldappr.h"
#ifdef MOZ_LDAP_XPCOM_EXPERIMENTAL
@ -55,13 +56,13 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsLDAPMessage);
NS_GENERIC_FACTORY_CONSTRUCTOR(nsLDAPServer);
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsLDAPURL, Init);
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsLDAPService, Init);
NS_GENERIC_FACTORY_CONSTRUCTOR(nsLDAPBERValue);
#ifdef MOZ_LDAP_XPCOM_EXPERIMENTAL
NS_GENERIC_FACTORY_CONSTRUCTOR(nsLDAPProtocolHandler);
#endif
// a table of the CIDs implemented by this module (in this case, just one)
// a table of the CIDs implemented by this module
//
static const nsModuleComponentInfo components[] =
{
@ -83,7 +84,9 @@ static const nsModuleComponentInfo components[] =
nsLDAPProtocolHandlerConstructor },
#endif
{ "LDAP URL", NS_LDAPURL_CID,
"@mozilla.org/network/ldap-url;1", nsLDAPURLConstructor }
"@mozilla.org/network/ldap-url;1", nsLDAPURLConstructor },
{ "LDAP BER Value", NS_LDAPBERVALUE_CID,
"@mozilla.org/network/ldap-ber-value;1", nsLDAPBERValueConstructor }
};
PR_STATIC_CALLBACK(nsresult)
@ -92,7 +95,8 @@ nsLDAPInitialize(nsIModule *aSelf)
#ifdef PR_LOGGING
gLDAPLogModule = PR_NewLogModule("ldap");
if (!gLDAPLogModule) {
PR_fprintf(PR_STDERR, "LDAP_Initialize(): PR_NewLogModule() failed\n");
PR_fprintf(PR_STDERR,
"nsLDAP_Initialize(): PR_NewLogModule() failed\n");
return NS_ERROR_NOT_AVAILABLE;
}
#endif
@ -103,7 +107,7 @@ nsLDAPInitialize(nsIModule *aSelf)
if (rv != LDAP_SUCCESS) {
PR_LOG(gLDAPLogModule, PR_LOG_ERROR,
("LDAPInitialize(): pr_ldap_install_routines() failed: %s\n",
("nsLDAPInitialize(): pr_ldap_install_routines() failed: %s\n",
ldap_err2string(rv)));
return NS_ERROR_FAILURE;
}
@ -115,7 +119,7 @@ nsLDAPInitialize(nsIModule *aSelf)
10000);
if (rv != LDAP_SUCCESS) {
PR_LOG(gLDAPLogModule, PR_LOG_ERROR,
("LDAPInitialize(): error setting PRLDAP_OPT_IO_MAX_TIMEOUT:"
("nsLDAPInitialize(): error setting PRLDAP_OPT_IO_MAX_TIMEOUT:"
" %s\n", ldap_err2string(rv)));
return NS_ERROR_FAILURE;
}

View File

@ -1072,6 +1072,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
@ -1149,6 +1156,11 @@
<PATH>nsLDAPSecurityGlue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
<TARGET>
@ -2170,6 +2182,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
@ -2247,6 +2266,11 @@
<PATH>nsLDAPSecurityGlue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
<TARGET>
@ -3282,6 +3306,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
@ -3369,6 +3400,11 @@
<PATH>nsLDAPSecurityGlue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
<TARGET>
@ -4404,6 +4440,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS>Debug</FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
@ -4491,6 +4534,11 @@
<PATH>nsLDAPSecurityGlue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
</TARGETLIST>
@ -4507,7 +4555,7 @@
<FILEREF>
<TARGETNAME>mozldapDebug.shlb</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPServer.cpp</PATH>
<PATH>nsLDAPBERValue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
@ -4546,6 +4594,18 @@
<PATH>nsLDAPProtocolModule.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>mozldapDebug.shlb</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPSecurityGlue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>mozldapDebug.shlb</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPServer.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>mozldapDebug.shlb</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
@ -4558,12 +4618,6 @@
<PATH>nsLDAPURL.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>mozldapDebug.shlb</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsLDAPSecurityGlue.cpp</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</GROUP>
<GROUP><NAME>NS Libraries</NAME>
<GROUP><NAME>Optimized</NAME>

View File

@ -776,6 +776,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsILDAPBERValue.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
@ -818,6 +825,11 @@
<PATH>nsILDAPService.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsILDAPBERValue.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
<TARGET>
@ -1543,6 +1555,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsILDAPBERValue.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
</FILELIST>
<LINKORDER>
<FILEREF>
@ -1585,6 +1604,11 @@
<PATH>nsILDAPService.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsILDAPBERValue.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</LINKORDER>
</TARGET>
</TARGETLIST>
@ -1643,6 +1667,12 @@
<PATH>nsILDAPService.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>headers</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsILDAPBERValue.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
</GROUPLIST>
</PROJECT>

View File

@ -39,6 +39,7 @@
#include "nsCOMPtr.h"
#include "nsILDAPConnection.h"
#include "nsILDAPOperation.h"
#include "nsILDAPMessageListener.h"
#include "nsILDAPURL.h"
#include "nsString.h"

View File

@ -24,6 +24,7 @@
#include "nsCOMPtr.h"
#include "nsIAutoCompleteSession.h"
#include "nsILDAPConnection.h"
#include "nsILDAPOperation.h"
#include "nsILDAPMessageListener.h"
#include "nsILDAPAutoCompleteSession.h"
#include "nsILDAPAutoCompFormatter.h"