In order to modify an LDAP Service entry, we need to modify the DeleteServer() method in the service. It probably need to change the hash key used while holding the old server, until it can be expunged completely. So, in order to modify an existing Server entry in the Service, you would: 1. Get the old entry 2. Modify it. 3. Delete it from the service 4. Add it back in again. We can't modify the server "on the fly", since there might be a connection in used already. This is similar to what happens on a Unix file system when you "rm" a file, any open filedescriptors still points to the approriate data, even though the file name is no longer in use in the directory listing.
Taking this bug...
Assignee: dmose → leif
Status: ASSIGNED → NEW
From Brendan: ------------- For posterity: the lack of ref-counting of nsLDAPServiceEntry is scary. Right now, no one ever removes an entry from mServers, and the unlocked calls to EstablishConnection that pass entry pointers depend on that fact. Short of ref-counting the table, you could maybe arrange to rename rather than remove, as you said on IRC. But eventually, you have to remove -- no? (This is a question to be answered later, not an obstacle to the forthcoming patch going in.) /be
Also, an alternative would be to call |ReconnectConnection()| instead, if there already is a connection established. I'm adding a |HasConnection()| method to the service for such a purpose.
reassign to Olga as QA contact
QA Contact: yulian → olgac
*** Bug 75966 has been marked as a duplicate of this bug. ***
Priority: P2 → P3
Target Milestone: mozilla0.9.2 → mozilla0.9.3
nsLDAPService bugs being pushed out a bit.
Target Milestone: mozilla0.9.3 → mozilla1.0
Assignee: leif → dmose
Status: ASSIGNED → NEW
Moving out of 0.9.7. Feel free to move them past 0.9.8.
Target Milestone: mozilla0.9.7 → mozilla0.9.8
Mass change: pushing out 0.9.8 bugs, as I'm concentrating feature work now.
Target Milestone: mozilla0.9.8 → mozilla0.9.9
Assigning bugs that I'm not actively working on back to nobody; use SearchForThis as a search term if you want to delete all related bugmail at once.
Assignee: dmose → nobody
Filter on "Nobody_NScomTLD_20080620"
Assignee: nobody → dmose
QA Contact: olgac → xpcom
You need to log in before you can comment on or make changes to this bug.