Closed
Bug 242014
Opened 21 years ago
Closed 21 years ago
Creating a new LDAP directory always sets the protocolVersion to 2
Categories
(MailNews Core :: LDAP Integration, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla1.7final
People
(Reporter: mscott, Assigned: mscott)
References
Details
(Keywords: fixed1.7)
Attachments
(1 file)
765 bytes,
patch
|
dmosedale
:
review+
Bienvenu
:
superreview+
chofmann
:
approval1.7+
|
Details | Diff | Splinter Review |
If you create a new LDAP directory from the address book, we always set
.currentVersion to "2". We are supposed to be using LDAPv3 by default.
This means all new LDAP directories are running the wrong protocol version. But
previous LDAP directories are running v3.
This happens because when we create a new directory server we call
DIR_AddNewAddressBook which calls DIR_SavePrefsForOneServer. This method checks
to see if the v3 flag has been set on the directory (which it has not for a new
directory) so we write out the version string as "2"):
http://lxr.mozilla.org/seamonkey/source/mailnews/addrbook/src/nsDirPrefs.cpp#3851
This is probably a 0.6 stopper I need to investigate.
Assignee | ||
Comment 1•21 years ago
|
||
Just to summarize my findings:
1) Existing LDAP directories are treated as v3
2) New LDAP directories are treated as v2
I assume we really intend all directories to be treated as v3 and the user must
change the current protocol version string to "2" if they want v2 for that
directory.
Target Milestone: --- → mozilla1.7final
Assignee | ||
Comment 2•21 years ago
|
||
When we read an old directory in we call DIR_GetPrefsForOneServer which does:
char *versionString = DIR_GetStringPref(prefstring, "protocolVersion",
tempstring, "3");
DIR_ForceFlag(server, DIR_LDAP_VERSION3, !strcmp(versionString, "3"));
if no default protocolVersion string, we default to version3 and set the flag on
the directory.
When creating a new directory no one ever sets this flag on the directory
server. We call DIR_AddNewAddressBook which calls DIR_SavePrefsForOneServer.
This routine checks the v3 flag sees that it is not set so it writes out "2" as
the version string.
Next time we start up we see the version 2.
The fix might be as simple as force setting the v3 pref from DIR_AddNewAddressBook.
Status: NEW → ASSIGNED
Comment 3•21 years ago
|
||
Yes, that was the intent. Your proposed fix sounds good to me.
Assignee | ||
Comment 4•21 years ago
|
||
Assignee | ||
Comment 5•21 years ago
|
||
Comment on attachment 147283 [details] [diff] [review]
proposed fix
What isn't shown from the diff is that this modification is inside of
DIR_AddNewAddressBook under an if ldap directory condition.
I'm assuming we will want to force migrated directories to be v3 which come
through this routine as well.
Attachment #147283 -
Flags: superreview?(bienvenu)
Attachment #147283 -
Flags: review?(dmose)
Assignee | ||
Updated•21 years ago
|
Flags: blocking1.7?
Assignee | ||
Updated•21 years ago
|
Flags: blocking1.7?
Assignee | ||
Comment 6•21 years ago
|
||
I checked this patch into the tbird 0.6 branch. Will make adjustments if any
come from the review comments.
Updated•21 years ago
|
Attachment #147283 -
Flags: superreview?(bienvenu) → superreview+
Comment 7•21 years ago
|
||
Comment on attachment 147283 [details] [diff] [review]
proposed fix
>Index: nsDirPrefs.cpp
>===================================================================
>RCS file: /cvsroot/mozilla/mailnews/addrbook/src/nsDirPrefs.cpp,v
>retrieving revision 1.88
>diff -u -w -r1.88 nsDirPrefs.cpp
>--- nsDirPrefs.cpp 14 Feb 2004 02:09:27 -0000 1.88
>+++ nsDirPrefs.cpp 29 Apr 2004 01:37:43 -0000
>@@ -457,6 +457,9 @@
> server->uri = nsCRT::strdup(uri);
> if (authDn)
> server->authDn = nsCRT::strdup(authDn);
>+ // force new LDAP directories to be treated as v3...Question, how does a customer override this default?
Currently, the customer can't override the default itself, but can force v2 on
a specific server by editing prefs.js by hand. Can you change the comment to
reflect this?
>+ // I think we want to be doing this for the migration case as well...
Migrating from what? 4.x? I think we do want to be doing this for the
migration case as well: LDAPv2 has been declared obsolete by the IETF. LDAPv3
support has been good for years and is extremely widely deployed. Does your
comment mean that the migration code path runs through these very lines? Can
you change the comment to clarify?
>+ DIR_ForceFlag(server, DIR_LDAP_VERSION3, PR_TRUE);
> }
> if (maxHits)
> server->maxHits = maxHits;
Anyway, looks good; thanks for cleaning up after me here.
As an aside, I think DIR_Server is an abstraction that has outlived its
usefulness and should be gotten rid of, since IMO all it does is complicate the
code. Accessing prefs directly should be plenty fast these days. However, I
know Seth doesn't agree with me on this one...
Attachment #147283 -
Flags: review?(dmose) → review+
Assignee | ||
Comment 8•21 years ago
|
||
Comment on attachment 147283 [details] [diff] [review]
proposed fix
we'll need this for 1.7
already fixed on the tbird 0.6 branch and the trunk
Attachment #147283 -
Flags: approval1.7?
Assignee | ||
Comment 9•21 years ago
|
||
fixed with Dan's comment suggestions.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Comment 10•21 years ago
|
||
Comment on attachment 147283 [details] [diff] [review]
proposed fix
a=chofmann for 1.7
Attachment #147283 -
Flags: approval1.7? → approval1.7+
Assignee | ||
Comment 11•21 years ago
|
||
fixed on the trunk, tbird 0.6 branch and the 1.7 branch
Keywords: fixed1.7
Updated•20 years ago
|
Product: MailNews → Core
Updated•16 years ago
|
Product: Core → MailNews Core
You need to log in
before you can comment on or make changes to this bug.
Description
•