Fix getters and setters of various LDAP URL spec pieces to actually allow a spec to be built up from the individual pieces (bug 70420). Patch from Leif Hedstrom <leif@netscape.com>. r=dmose@netscape.com, sr=shaver@mozilla.org
git-svn-id: svn://10.0.0.236/trunk@92044 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
a5fc876b99
commit
b02af4908d
@ -18,6 +18,7 @@
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s): Dan Mosedale <dmose@mozilla.org>
|
||||
* Leif Hedstrom <leif@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
|
||||
@ -40,28 +41,27 @@ interface nsILDAPURL : nsIURI {
|
||||
/**
|
||||
* the distinguished name of the URL (ie the base DN for the search)
|
||||
*
|
||||
* XXXdmose NS_ERROR_NOT_INITIALIZED may become unneccessary once
|
||||
* it becomes possible to build up the URL by using the setters for its
|
||||
* constituent parts
|
||||
*
|
||||
* for the getter:
|
||||
*
|
||||
* @exception NS_ERROR_ILLEGAL_VALUE null pointer passed in
|
||||
* @exception NS_ERROR_NOT_INITIALIZED URL spec not set
|
||||
* @exception NS_ERROR_OUT_OF_MEMORY ran out of memory
|
||||
* @exception NS_ERROR_NULL_POINTER NULL pointer to GET method
|
||||
* @exception NS_ERROR_OUT_OF_MEMORY ran out of memory
|
||||
*/
|
||||
attribute string dn;
|
||||
|
||||
/**
|
||||
* the LDAP attributes to return. defaults to all attributes.
|
||||
* This is currently not implemented, and the setter is also
|
||||
* missing.
|
||||
*
|
||||
* XXXdmose - there should be a setter for this too
|
||||
*/
|
||||
void getAttributes(out unsigned long count,
|
||||
[retval, array, size_is(count)] out string values);
|
||||
|
||||
/**
|
||||
* the scope of the search. defaults to NS_LDAP_SCOPE_BASE.
|
||||
* the scope of the search. defaults to SCOPE_BASE.
|
||||
*
|
||||
* @exception NS_ERROR_NULL_POINTER NULL pointer to GET method
|
||||
* @exception NS_ERROR_MALFORMED_URI Illegal base to SET method
|
||||
*/
|
||||
attribute long scope;
|
||||
|
||||
@ -87,12 +87,15 @@ interface nsILDAPURL : nsIURI {
|
||||
|
||||
/**
|
||||
* any options defined for this URL (check options using a bitwise and)
|
||||
*
|
||||
* @exception NS_ERROR_NULL_POINTER NULL pointer to GET method
|
||||
* @exception NS_ERROR_OUT_OF_MEMORY ran out of memory
|
||||
*/
|
||||
attribute unsigned long options;
|
||||
|
||||
/**
|
||||
* if this is set, this is an ldaps: URL, not an ldap: URL
|
||||
* if this is set/true, this is an ldaps: URL, not an ldap: URL
|
||||
*/
|
||||
const unsigned long NS_LDAP_URL_OPT_SECURE = 0x01;
|
||||
const unsigned long OPT_SECURE = 0x01;
|
||||
|
||||
};
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s): Dan Mosedale <dmose@mozilla.org>
|
||||
* Leif Hedstrom <leif@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
|
||||
@ -34,20 +35,28 @@
|
||||
|
||||
#include "nsLDAPURL.h"
|
||||
|
||||
// The two schemes we support, LDAP and LDAPS
|
||||
//
|
||||
static const char *kLDAPScheme = "ldap";
|
||||
static const char *kLDAPSSLScheme = "ldaps";
|
||||
|
||||
|
||||
// Constructor and destructor
|
||||
//
|
||||
NS_IMPL_THREADSAFE_ISUPPORTS2(nsLDAPURL, nsILDAPURL, nsIURI)
|
||||
|
||||
nsLDAPURL::nsLDAPURL()
|
||||
: mPort(0),
|
||||
mScope(SCOPE_BASE),
|
||||
mOptions(0)
|
||||
{
|
||||
NS_INIT_ISUPPORTS();
|
||||
}
|
||||
|
||||
nsLDAPURL::~nsLDAPURL()
|
||||
{
|
||||
ldap_free_urldesc(mDesc);
|
||||
}
|
||||
|
||||
static const char *kEmptyString = "";
|
||||
|
||||
// A string representation of the URI. Setting the spec
|
||||
// causes the new spec to be parsed, initializing the URI. Setting
|
||||
// the spec (or any of the accessors) causes also any currently
|
||||
@ -56,98 +65,147 @@ static const char *kEmptyString = "";
|
||||
// attribute string spec;
|
||||
//
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::GetSpec(char* *aSpec)
|
||||
nsLDAPURL::GetSpec(char **_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aSpec);
|
||||
nsCAutoString spec;
|
||||
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetSpec: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// copy it out
|
||||
//
|
||||
*aSpec = mSpec.ToNewCString();
|
||||
spec = ((mOptions & OPT_SECURE) ? kLDAPSSLScheme : kLDAPScheme);
|
||||
spec.Append("://");
|
||||
if (mHost.Length() > 0) {
|
||||
spec.Append(mHost);
|
||||
}
|
||||
if (mPort > 0) {
|
||||
spec.Append(":");
|
||||
spec.AppendInt(mPort);
|
||||
}
|
||||
spec.Append("/");
|
||||
if (mDN.Length() > 0) {
|
||||
spec.Append(mDN);
|
||||
}
|
||||
|
||||
// XXXdmose - presumably this is the right thing. nsString.h doesn't
|
||||
// document whether there can be a 0 return code.
|
||||
//
|
||||
if ( ! *aSpec ) {
|
||||
// XXXleif: Here we need to add attributes...
|
||||
// This is bug: 70611
|
||||
if (0) {
|
||||
// Code to handle attributes
|
||||
}
|
||||
|
||||
if ((mScope) || mFilter.Length()) {
|
||||
spec.Append("??"); // XXXleif: This needs to be changed with bug 70611
|
||||
if (mScope) {
|
||||
if (mScope == SCOPE_ONELEVEL) {
|
||||
spec.Append("one");
|
||||
} else if (mScope == SCOPE_SUBTREE) {
|
||||
spec.Append("sub");
|
||||
}
|
||||
}
|
||||
if (mFilter.Length()) {
|
||||
spec.Append("?");
|
||||
spec.Append(mFilter);
|
||||
}
|
||||
}
|
||||
|
||||
*_retval = spec.ToNewCString();
|
||||
if (!*_retval) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::SetSpec(const char * aSpec)
|
||||
nsLDAPURL::SetSpec(const char *aSpec)
|
||||
{
|
||||
PRUint32 rc;
|
||||
LDAPURLDesc *desc;
|
||||
|
||||
// save this off
|
||||
//
|
||||
mSpec = aSpec;
|
||||
|
||||
rc = ldap_url_parse(aSpec, &mDesc);
|
||||
// This is from the LDAP C-SDK, which currently doesn't
|
||||
// support everything from RFC 2255... :(
|
||||
rc = ldap_url_parse(aSpec, &desc);
|
||||
switch (rc) {
|
||||
|
||||
case LDAP_SUCCESS:
|
||||
mHost = desc->lud_host;
|
||||
mPort = desc->lud_port;
|
||||
mDN = desc->lud_dn;
|
||||
// XXXLeif: Need code for lud_attrs here, see 70611
|
||||
mScope = desc->lud_scope;
|
||||
mFilter = desc->lud_filter;
|
||||
mOptions = desc->lud_options;
|
||||
|
||||
ldap_free_urldesc(desc);
|
||||
return NS_OK;
|
||||
break;
|
||||
|
||||
case LDAP_URL_ERR_NOTLDAP:
|
||||
case LDAP_URL_ERR_NODN:
|
||||
case LDAP_URL_ERR_BADSCOPE:
|
||||
return NS_ERROR_MALFORMED_URI;
|
||||
break;
|
||||
|
||||
case LDAP_URL_ERR_MEM:
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
break;
|
||||
|
||||
case LDAP_URL_ERR_PARAM:
|
||||
return NS_ERROR_INVALID_POINTER;
|
||||
break;
|
||||
}
|
||||
|
||||
// this shouldn't happen
|
||||
//
|
||||
// This shouldn't happen...
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
// attribute string prePath;
|
||||
//
|
||||
NS_IMETHODIMP nsLDAPURL::GetPrePath(char * *aPrePath)
|
||||
NS_IMETHODIMP nsLDAPURL::GetPrePath(char **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
NS_IMETHODIMP nsLDAPURL::SetPrePath(const char * aPrePath)
|
||||
NS_IMETHODIMP nsLDAPURL::SetPrePath(const char *aPrePath)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
// attribute string scheme;
|
||||
//
|
||||
NS_IMETHODIMP nsLDAPURL::GetScheme(char * *aScheme)
|
||||
NS_IMETHODIMP nsLDAPURL::GetScheme(char **_retval)
|
||||
{
|
||||
// need to deal with ldaps here too?
|
||||
//
|
||||
char *scheme = nsCRT::strdup("ldap");
|
||||
if (!scheme) {
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetScheme: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
|
||||
*_retval = nsCRT::strdup((mOptions & OPT_SECURE) ? kLDAPSSLScheme :
|
||||
kLDAPScheme);
|
||||
if (!*_retval) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
*aScheme = scheme;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsLDAPURL::SetScheme(const char * aScheme)
|
||||
NS_IMETHODIMP nsLDAPURL::SetScheme(const char *aScheme)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
if (nsCRT::strcasecmp(aScheme, kLDAPScheme) == 0) {
|
||||
mOptions ^= OPT_SECURE;
|
||||
} else if (nsCRT::strcasecmp(aScheme, kLDAPSSLScheme) == 0) {
|
||||
mOptions |= OPT_SECURE;
|
||||
} else {
|
||||
return NS_ERROR_MALFORMED_URI;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// attribute string preHost;
|
||||
//
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::GetPreHost(char * *aPreHost)
|
||||
nsLDAPURL::GetPreHost(char **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::SetPreHost(const char * aPreHost)
|
||||
nsLDAPURL::SetPreHost(const char *aPreHost)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
@ -155,12 +213,12 @@ nsLDAPURL::SetPreHost(const char * aPreHost)
|
||||
// attribute string username
|
||||
//
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::GetUsername(char * *aUsername)
|
||||
nsLDAPURL::GetUsername(char **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::SetUsername(const char * aUsername)
|
||||
nsLDAPURL::SetUsername(const char *aUsername)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
@ -168,12 +226,12 @@ nsLDAPURL::SetUsername(const char * aUsername)
|
||||
// attribute string password;
|
||||
//
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::GetPassword(char * *aPassword)
|
||||
nsLDAPURL::GetPassword(char **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::SetPassword(const char * aPassword)
|
||||
nsLDAPURL::SetPassword(const char *aPassword)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
@ -181,60 +239,82 @@ nsLDAPURL::SetPassword(const char * aPassword)
|
||||
// attribute string host;
|
||||
//
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::GetHost(char * *aHost)
|
||||
nsLDAPURL::GetHost(char **_retval)
|
||||
{
|
||||
NS_ENSURE_TRUE(mDesc, NS_ERROR_NOT_INITIALIZED);
|
||||
NS_ENSURE_ARG_POINTER(aHost);
|
||||
|
||||
if ( ! mDesc->lud_host ) {
|
||||
*aHost = nsCRT::strdup(kEmptyString);
|
||||
} else {
|
||||
*aHost = nsCRT::strdup(mDesc->lud_host);
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetHost: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
if ( ! *aHost ) {
|
||||
|
||||
*_retval = mHost.ToNewCString();
|
||||
if (!*_retval) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::SetHost(const char * aHost)
|
||||
nsLDAPURL::SetHost(const char *aHost)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
mHost = aHost;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// C-SDK URL parser defaults port 389 as "0", while nsIURI
|
||||
// specifies the default to be "-1", hence the translations.
|
||||
//
|
||||
// attribute long port;
|
||||
//
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::GetPort(PRInt32 *aPort)
|
||||
nsLDAPURL::GetPort(PRInt32 *_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aPort);
|
||||
NS_ENSURE_TRUE(mDesc, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
if ( mDesc->lud_port ) {
|
||||
*aPort = mDesc->lud_port;
|
||||
} else {
|
||||
*aPort = -1;
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetPort: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
if (!mPort) {
|
||||
*_retval = -1;
|
||||
} else {
|
||||
*_retval = mPort;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP
|
||||
nsLDAPURL::SetPort(PRInt32 aPort)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
if (aPort == -1) {
|
||||
mPort = 0;
|
||||
} else if (aPort >= 0) {
|
||||
mPort = aPort;
|
||||
} else {
|
||||
return NS_ERROR_MALFORMED_URI;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// attribute string path;
|
||||
//
|
||||
NS_IMETHODIMP nsLDAPURL::GetPath(char * *aPath)
|
||||
// XXXleif: For now, these are identical to SetDn()/GetDn().
|
||||
NS_IMETHODIMP nsLDAPURL::GetPath(char **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetPath: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*_retval = mDN.ToNewCString();
|
||||
if (!*_retval) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsLDAPURL::SetPath(const char * aPath)
|
||||
NS_IMETHODIMP nsLDAPURL::SetPath(const char *aPath)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
mDN = aPath;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// boolean equals (in nsIURI other)
|
||||
@ -267,40 +347,34 @@ NS_IMETHODIMP nsLDAPURL::Clone(nsIURI **_retval)
|
||||
|
||||
// string resolve (in string relativePath);
|
||||
//
|
||||
NS_IMETHODIMP nsLDAPURL::Resolve(const char *relativePath, char **_retval)
|
||||
NS_IMETHODIMP nsLDAPURL::Resolve(const char *relativePath,
|
||||
char **_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
// the following attributes come from nsILDAPURL
|
||||
// The following attributes come from nsILDAPURL
|
||||
|
||||
// attribute string dn;
|
||||
//
|
||||
NS_IMETHODIMP nsLDAPURL::GetDn(char * *aDn)
|
||||
NS_IMETHODIMP nsLDAPURL::GetDn(char **_retval)
|
||||
{
|
||||
if (!aDn) {
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetDn: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
if (!mDesc) {
|
||||
return NS_ERROR_NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
if ( mDesc->lud_dn == 0 ) {
|
||||
*aDn = nsCRT::strdup(kEmptyString);
|
||||
} else {
|
||||
*aDn = nsCRT::strdup(mDesc->lud_dn);
|
||||
}
|
||||
|
||||
if ( ! *aDn ) {
|
||||
*_retval = mDN.ToNewCString();
|
||||
if (!*_retval) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsLDAPURL::SetDn(const char * aDn)
|
||||
NS_IMETHODIMP nsLDAPURL::SetDn(const char *aDn)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
mDN = aDn;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// void getAttributes (out unsigned long count,
|
||||
@ -313,53 +387,66 @@ NS_IMETHODIMP nsLDAPURL::GetAttributes(PRUint32 *count, char ***values)
|
||||
|
||||
// attribute long scope;
|
||||
//
|
||||
NS_IMETHODIMP nsLDAPURL::GetScope(PRInt32 *aScope)
|
||||
NS_IMETHODIMP nsLDAPURL::GetScope(PRInt32 *_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aScope);
|
||||
NS_ENSURE_TRUE(mDesc, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
*aScope = mDesc->lud_scope;
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetScope: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*_retval = mScope;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsLDAPURL::SetScope(PRInt32 aScope)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
// Only allow scopes supported by the C-SDK
|
||||
if ((aScope != SCOPE_BASE) &&
|
||||
(aScope != SCOPE_ONELEVEL) &&
|
||||
(aScope != SCOPE_SUBTREE)) {
|
||||
return NS_ERROR_MALFORMED_URI;
|
||||
}
|
||||
|
||||
mScope = aScope;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// attribute string filter;
|
||||
//
|
||||
NS_IMETHODIMP nsLDAPURL::GetFilter(char * *aFilter)
|
||||
NS_IMETHODIMP nsLDAPURL::GetFilter(char **_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aFilter);
|
||||
NS_ENSURE_TRUE(mDesc, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
// if these aren't set, insert the defaults.
|
||||
//
|
||||
if ( ! (mDesc->lud_filter && mDesc->lud_filter[0] ) ) {
|
||||
*aFilter = nsCRT::strdup("objectClass=*");
|
||||
} else {
|
||||
*aFilter = nsCRT::strdup(mDesc->lud_filter);
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetFilter: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
if ( ! *aFilter ) {
|
||||
*_retval = mFilter.ToNewCString();
|
||||
if (!*_retval) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsLDAPURL::SetFilter(const char * aFilter)
|
||||
NS_IMETHODIMP nsLDAPURL::SetFilter(const char *aFilter)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
mFilter = aFilter;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// attribute unsigned long options;
|
||||
//
|
||||
NS_IMETHODIMP nsLDAPURL::GetOptions(PRUint32 *aOptions)
|
||||
NS_IMETHODIMP nsLDAPURL::GetOptions(PRUint32 *_retval)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
if (!_retval) {
|
||||
NS_ERROR("nsLDAPURL::GetOptions: null pointer ");
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*_retval = mOptions;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsLDAPURL::SetOptions(PRUint32 aOptions)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
mOptions = aOptions;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s): Dan Mosedale <dmose@mozilla.org>
|
||||
* Leif Hedstrom <leif@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
|
||||
@ -34,8 +35,8 @@
|
||||
|
||||
#include "nsLDAP.h"
|
||||
#include "ldap.h"
|
||||
#include "nsILDAPURL.h"
|
||||
#include "nsString.h"
|
||||
#include "nsILDAPURL.h"
|
||||
|
||||
// cb7c67f8-0053-4072-89e9-501cbd1b35ab
|
||||
#define NS_LDAPURL_CID \
|
||||
@ -53,6 +54,13 @@ class nsLDAPURL : public nsILDAPURL
|
||||
virtual ~nsLDAPURL();
|
||||
|
||||
protected:
|
||||
LDAPURLDesc *mDesc; // the URL descriptor we're wrapping
|
||||
nsCString mSpec; // string representation
|
||||
nsCString mHost; // Host name of this Directory server
|
||||
PRInt32 mPort; // LDAP port number
|
||||
nsCString mDN; // Base Distinguished Name (Base DN)
|
||||
|
||||
// Need array for attrs here... See bug: 70611.
|
||||
|
||||
PRInt32 mScope; // Search scope (base, one or sub)
|
||||
nsCString mFilter; // LDAP search filter
|
||||
PRUint32 mOptions; // Options
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user