summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Resolves: bug 333291Rich Megginson2007-10-172-0/+33
| | | | | | | | | | | Bug Description: Do not allow direct migration if the source db index has old IDL format Reviewed by: nkinder (Thanks!) Fix Description: Just before the attempt to copy the database directories, look at the DBVERSION file from the source. If it is determined that the source version is too old, just exit migration and output a helpful error message. Platforms tested: RHEL4 i386 Flag Day: no Doc impact: no QA impact: should be covered by regular nightly and manual testing New Tests integrated into TET: none
* Resolves: 219587Nathan Kinder2007-10-161-0/+1
| | | | Summary: Fixed small non-recurring memory leak at startup.
* Resolves: bug 185602Rich Megginson2007-10-163-1/+115
| | | | | | | | | | | | Bug Description: Netscape Console allows instance directory to be set as change log Reviewed by: nkinder (Thanks!) Fix Description: 1) When removing the changelog files and directories, only remove the actual db related files - version, guardian, *db4, log.*, and __db.* - This should take care of the cases where the changelog was already created in an existing directory. 2) Disallow adding/changing a changelog db directory if it already exists and is not empty Platforms tested: RHEL5 x86_64 Flag Day: no Doc impact: no QA impact: should be covered by regular nightly and manual testing New Tests integrated into TET: none
* Resolves: 335081Nathan Kinder2007-10-161-1/+0
| | | | Summary: Don't add mailGroup objectclass when sync'ing new group entries from AD.
* Resolves: #327091Noriko Hosoi2007-10-163-6/+8
| | | | | | | | Summary: Migration/Upgrade fails when it's from 6.21 to 8.0 on the same OS/architecture Description: back-ldbm.h: added LDBM_VERSION_62 dblayer.c: fixed a bug to check the instance dir name upgrade.c: added LDBM_VERSION_62
* Resolves: 328741Nathan Kinder2007-10-151-0/+4
| | | | Summary: Ensure that we NULL terminate strings properly when processing config file settings.
* Resolves: bug 330141Rich Megginson2007-10-131-0/+12
| | | | | | | | | | | | | | | | | Bug Description: uuid generator not initialized by import from command line Reviewed by: nkinder (Thanks!) Fix Description: The unique ID generator is not initialized if import is run from the command line. The bad effect of this is that the clock sequence and node fields are all zeros. This could lead to duplicate unique IDs being assigned by two different servers. What happens is that the uuid values all look like this: XXXXXXXX-XXXXXXXX-80000000-00000000 So the time based part is generally ok, but the clock seq and node ID part are never initialized, hence 0's for those fields. The fix is to initialize the unique id generator in the same manner as we do for the server when it starts up in regular mode, except that we tell the generator to use the single threaded (st) mode rather than the multi threaded (mt) mode. Platforms tested: RHEL5 x86_64 Flag Day: no Doc impact: no
* Resolves: bug 330121Rich Megginson2007-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Bug Description: uuid generator truncates clock_seq_hi_and_reserved field Reviewed by: nkinder (Thanks!) Fix Description: The uuid code has this code (where clock_seq is unsigned16 - 2 bytes and uuid->clock_seq_hi_and_reserved is unsigned8 - 1 byte): uuid->clock_seq_hi_and_reserved = (unsigned8)(clock_seq & 0x3F00) >> 8; In this code, the cast to unsigned8 takes precedence over over the shift. So what happens is that (clock_seq & 0x3F00) is first cast to an 8 bit quantity, then shifted by 8 bits. The result is that the value is _always 0_. The code also does this: uuid->clock_seq_hi_and_reserved |= 0x80; You can see this because every nsUniqueID looks like this: XXXXXXXX-XXXXXXXX-80XXXXXXXX-XXXXXXXX The first byte of the 3rd octet is always 80. This may also be related to https://bugzilla.redhat.com/show_bug.cgi?id=197886 and may explain why the sequence numbers were exhausted so quickly. Without this fix, we only have 256 sequence numbers available. This fix adds another 6 bits. The fix is to mask and shift as an unsigned16 quantity, then cast to unsigned8. Platforms tested: RHEL5 x86_64 Flag Day: no - I think this will only impact new unique IDs that are generated. It will not affect existing unique IDs. Doc impact: no
* Resolves: #193724Noriko Hosoi2007-10-1210-265/+340
| | | | | | | | | | | | Summary: "nested" filtered roles result in deadlock (Comment #12) Description: 1. Changed cache_lock to the read-write lock. 2. Instead of using the local vattr_context in vattr_test_filter, use the one set in pblock as much as possible. To achieve the goal, introduced pb_vattr_context to pblock. 3. Increased VATTR_LOOP_COUNT_MAX from 50 to 256. 4. When the loop count hit VATTR_LOOP_COUNT_MAX, it sets LDAP_UNWILLING_TO_PERFORM and returns it to the client.
* Resolves: 238630Nathan Kinder2007-10-122-9/+21
| | | | Summary: Remove changelog db file when replica config is removed.
* Resolves: bug 288291Rich Megginson2007-10-122-4/+22
| | | | | | | | | | Bug Description: add an view object inside a view object that has an improper nsviewfilter crashes the server Reviewed by: nhosoi (Thanks!) Fix Description: I could not reproduce the problem by simply adding the bogus nsviewfilter. The server seemed to run fine, but I didn't stress it. However, if I restarted the server, the server would core during startup. The last message in the error log would say something about recovering the database, which is probably why the bug reporter said that it will not recover the database. The problem doesn't appear to be with views specifically, but with any internal search which uses the search_internal_callback_pb() (as opposed to the non callback internal search) and there are search base rewriters (such as the views code). The aci code uses this type of search at startup to find the acis, and that's where I saw the crash. I could crash the server at startup regardless of whether the view filter was bogus or not. The problem is that we are not passing in the address of new_base to slapi_ch_free. The fix is to use slapi_ch_free_string and pass in the address of the string. That fixes the crash. I also cleaned up a few places in the views code which was not checking to see if slapi_str2filter returned NULL, which would happen in the case of the bogus search filter. I also added an error message which will tell the user that filter X in entry Y is bogus. Platforms tested: RHEL5 x86_64 Flag Day: no Doc impact: no
* remove obsolete schemaRich Megginson2007-10-1117-1495/+0
|
* Resolves: bug 165761Rich Megginson2007-10-113-2/+352
| | | | | | Added rfc2307bis schema, but in the data directory. It is not compatible with the older rfc2307 schema included with the directory server. Users will need to upgrade their database to fix posixGroup entries in order to use this schema
* Resolves: bug 317651Rich Megginson2007-10-111-4/+4
| | | | | Description: Clean up setup dialog text Fix Description: Fixed usage of setup as a noun and set up as a verb. Also a few other items.
* migration starts instances nowRich Megginson2007-10-101-2/+1
|
* Resolves: bug 244475Rich Megginson2007-10-102-42/+9
| | | | | | | | | Bug Description: crash at startup with new ldap sdk on 64-bit platform Reviewed by: nkinder (Thanks!) Fix Description: I went ahead and cleaned up or removed the incorrect ber code. We do not need to use LBER_SOCKBUF_OPT_DESC or LBER_SOCKBUF_OPT_READ_FN or LBER_SOCKBUF_OPT_WRITE_FN. I removed an unnecessary malloc/free and just used the stack as we do everywhere else in the code. It looks as though the start_tls cleanup code is almost never used - the code assumes that when you do a start_tls, that stays in force throughout the lifetime of the connection. Removing this code now should insulate us from future ldap c sdk changes. Platforms tested: RHEL5 x86_64 Flag Day: no Doc impact: no
* Resolves: 325281Nathan Kinder2007-10-094-20/+74
| | | | Summary: Install SNMP subagent mibs.
* Resolves: bug 305121Rich Megginson2007-10-091-1/+1
| | | | | | | | | | | Bug Description: Server hangs when adding a group with two password entries Reviewed by: nhosoi (Thanks!) Files: see diff Branch: HEAD Fix Description: The pw_encodevals() was not encoding each value, only the first one, then setting each new value to the same encoded value. The solution is to move char *enc into the loop so that it is allocated anew each time. Platforms tested: RHEL5 x86_64 Flag Day: no Doc impact: no
* Resolves: bug 190220Rich Megginson2007-10-091-0/+11
| | | | | | | | | Bug Description: Link DS with libumem on Solaris 9 and later Reviewed by: nkinder (Thanks!) Fix Description: See if libumem.so exists, and set the appropriate LD_PRELOAD env. var. if so. Platforms tested: Solaris 9 64-bit Flag Day: no Doc impact: no
* Resolves: 176302Nathan Kinder2007-10-081-2/+3
| | | | Summary: Avoid double free of controls in passthrough plugin.
* Resolves: 316281Nathan Kinder2007-10-081-2/+4
| | | | Summary: Initialize backup directory name properly for all cases.
* Resolves: bug 248169Rich Megginson2007-10-057-33/+139
| | | | | | | | | | | | Bug Description: init script modification needed for kerberos auth Reviewed by: nhosoi (Thanks!) Fix Description: I just took Simo's initial patch and ran with it. The initconfigdir parameter is the directory containing the config file for the init script. configure will first try to use $(sysconfdir)/sysconfig, then $(sysconfdir)/default (Solaris and Debian, among others), then the package config directory (the default on HP-UX), for this parameter. The init script and startup script will look in the initconfigdir to find the init config file to source. For directory server, an instance specific file can be used, named e.g. dirsrv-localhost which will apply to the slapd-localhost instance only. A default init config file is provided for dirsrv and dirsrv-admin, with some examples of how it could be used. Platforms tested: RHEL5 x86_64 Flag Day: Yes - autotool file changes Doc impact: Yes. We will need to document how the user can supply environment to the servers at startup time without having to edit the init scripts or the startup scripts. QA impact: should be covered by regular nightly and manual testing New Tests integrated into TET: none
* Resolves: 268101Nathan Kinder2007-10-056-24/+44
| | | | Summary: Added new operation flag to skip writing modifiresname and related attributes. Updated password policy internal operations to use this new flag.
* Resolves: #173873Noriko Hosoi2007-10-052-92/+167
| | | | | | | | | | | | | Summary: Directory Server should shutdown if it fails to write logs (comment #7) Change Description: 1. introduced a new static function log__error_emergency, which is called at emergency to log to the syslog and at least try to log into the errors log one more time. 2. added an error parameter to the macro LOG_WRITE_NOW to return if the writing to the log was successful or not. 3. if opening an errors log or writing to an errors log failed, call g_set_shutdown to shutdown the server gracefully. 4. log__error_emergency calls writing log function (LDAPDebug --> slapd_log_error_proc_internal) with ERROR_LOCK_WRITE unlocked, if locked.
* Resolves: bug 249366Rich Megginson2007-10-052-0/+90
| | | | | | | | | | | Bug Description: rhds71 - search filters returns too many entries on interger attributes value greater than 2 to the 31 Reviewed by: nhosoi, nkinder (Thanks!) Fix Description: This handles the migration part. The first part is when migrating the schema. Look for all integer syntax attributes. This can be tricky if there are SUP attribute types derived from integer syntax attributes. numSubordinates and hasSubordinates are skipped because they are handled specially by the db code. The next step is to scan all of the index files in the new db directory. If any integer indexes are found, they will be removed and recreated. Platforms tested: RHEL5 x86_64 Flag Day: no Doc impact: Yes. Will need to document that this happens during migration if not cross platform. QA impact: should be covered by regular nightly and manual testing New Tests integrated into TET: Will need to create some integer indexes and do same platform migration to see if this works
* Resolves: 288321Nathan Kinder2007-10-045-17/+51
| | | | Summary: Handle poorly formatted DN's when normalizing. Also only check modify values against authenticated DN for DN syntax attributes.
* Resolves: bug 249366Rich Megginson2007-10-042-14/+68
| | | | | | | | | | | | | Bug Description: rhds71 - search filters returns too many entries on interger attributes value greater than 2 to the 31 Reviewed by: nkinder, nhosoi (Thanks!) Fix Description: I found a bug in my previous patch. The bt_compare function is used not only for comparing the actual key values but also for comparing raw index keys - that is, keys with the leading '=' or '*'. If comparing two keys, we should only use the syntax specific compare function if we are comparing two valid equality keys. A valid equality key begins with EQ_PREFIX and has at least one character after that. In this case, we strip off the EQ_PREFIX and pass the values to the syntax specific compare function. Otherwise, we just use a simple berval compare function that is based on memcmp. The code in index_range_read needs to use a similar comparison algorithm, so I beefed up DBTcmp. Why is this necessary? When doing a >= search or a <= search, we need to get the upper (for >=) or lower (for <=) bound for the range, which will either be the last (for >=) or first (for <=) equality key in the index. The index code uses a key of '=' to find the lower bound (which is lower than any key "=value") and a key of '>' to find the upper bound. A '=' with no value will collate before any real eq key with a value, and the ascii value of '>' is one greater than the ascii value of '='. Platforms tested: RHEL5 x86_64 Flag Day: no Doc impact: no QA impact: should be covered by regular nightly and manual testing New Tests integrated into TET: none
* Resolves: #304161Noriko Hosoi2007-10-031-22/+37
| | | | | | | | | | | | Summary: logrotation time of -1 causes hang Change description: 1. slapd_log_audit_proc, slapd_log_error_proc_internal, and log_flush_buffer: use absolute value of rotationtime_secs to calculate the rotationsyncclock. 2. when the result of "atoi" for nsslapd-XXX-logrotationtime is 0 due to the invalid setting, logrotation time is reset to -1 (no rotation). 3. if nsslapd-XXX-logrotationtime and nsslapd-XXX-logexpirationtime is large (near MAXINT) and calculated rotationtime_secs and/or exptime_secs is overflown, set MAXINT to the sec value.
* Resolves: #316281Noriko Hosoi2007-10-031-55/+58
| | | | | | | | | | | | | | Summary: db2bak fails if the archive path exists and ends with '/' Fix description: 1. Use path normalize API rel2abspath to remove the trailing '/'s. 2. db2bak renames the archive dir if the directory exists, checks the directory is the db dir or not. If it is, the command line rename back the existing db to the original and exits with the error: db2archive: Cannot archive to the db directory. Then, the original dir is renamed back. If the db2bak runs as a task (db2bak.pl or console), the server is up and running. Although the backend is disabled, we don't want to rename the db path even for a short time. That being said, changed the order to: check if the archive dir is the same as db dir or not. It exits immediately.
* Resolves: bug 282911Rich Megginson2007-10-032-4/+16
| | | | | | | Description: double err=32 result sent when suffix doesn't exist Reviewed by: nkinder (Thanks!) Fix Description: The backend does not send back a result if the op is search and the err is NO_SUCH_OBJECT (32). The frontend should handle this case so that it knows to defer sending the result until all of the backend candidates have been scanned. We also need to change send_nobackend_ldap_result() to use slapi_send_ldap_result instead of send_ldap_result so that it has the same semantics as the regular backend code. Platforms tested: RHEL5 x86_64
* Resolves: #196523Noriko Hosoi2007-10-033-41/+47
| | | | | | Summary: miscellaneous memory leaks Description: 1) fixed memory leaks 2) cleaned up normalize_path code with fixing memory leaks
* Resolves: #314851Noriko Hosoi2007-10-021-0/+6
| | | | | Summary: vlv: crash after repeated backend creation/deletion Description: added a check code for the backend's existing.
* Resolves: 282911Nathan Kinder2007-10-021-2/+8
| | | | Summary: Don't send result twice when searching against a non-existent suffix.
* Resolves: bug 249366Rich Megginson2007-10-0211-37/+180
| | | | | | | | | | | | | Bug Description: rhds71 - search filters returns too many entries on integer attributes value greater than 2 to the power of 31 Reviewed by: nkinder, nhosoi (Thanks!) Fix Description: The way >= and <= searches are supposed to work in LDAP is that you are supposed to define an ORDERING matching rule for the attribute you want to use in the search filter. The way our code is written, most strings "just work" as a side effect of the way bdb sorts the keys by default - so you can do (uid>=jvedder) and get what you would expect, even though LDAP says this is illegal because the schema definition of the uid attribute does not have an ORDERING matching rule. And INTEGER worked with the old binary format for the same reason. The only attribute definitions we use with ORDERING are attributes that use Generalized Time syntax (e.g. createTimestamp, et. al.) and numSubordinates (which uses INTEGER, but this is a special case handled internally by the db code). The way it works now is that the indexing code will honor the ORDERING matching rule specified in the schema definition. Or, if ORDERING is not specified, the user can use the nsMatchingRule index configuration. This will allow an existing customer that depends all integer syntax attributes (e.g. uidNumber) to allow range searches by default to enable range searches without editing the schema. The syntax definition for the attribute must also specify a compare function. This compare function will be used by the bdb bt_compare() function. I also fixed a bug in the integer normalize code - a string of all zeros should normalize to a single "0". In all other cases, the leading zeros should be removed. Platforms tested: RHEL5 x86_64 Flag Day: Yes. Integer indexes will need to be rebuilt (except for numsubordinates). Doc impact: Yes - document slapi API additions QA impact: Pay close attention to tests that use >= or <= search filters, both with and without index attributes. Also, pay close attention to greater/less than searches using i18n collations. New Tests integrated into TET: Forthcoming
* Resolves: 314791Nathan Kinder2007-10-015-1/+25
| | | | Summary: Set SASL_PATH in ldclt wrapper script.
* Summary: Re-generated autotools build files.Nathan Kinder2007-10-014-116/+289
|
* Resolves: 238517Nathan Kinder2007-10-011-7/+10
| | | | Summary: Add entries to entrycache after adding operational attributes.
* Resolves: 311851Nathan Kinder2007-10-011-0/+10
| | | | Summary: Added container entries for sasl mappings.
* Fixed the brand and version mistakenly put in the previous check-in.Noriko Hosoi2007-10-011-13/+13
|
* Resolves: #312811Noriko Hosoi2007-10-014-199/+74
| | | | | Summary: Installation failed. template files not found. Description: Added template-sasl.ldif to Makefile.am
* Resolves #222918Noriko Hosoi2007-09-282-53/+51
| | | | | | Summary: server crash after deleting supposedly deleted attribute Description: index.c: if there is no attribute to delete, don't call index_addordel_values_svstring.c: changed string_values2keys to handle NULL bvals
* Resolves: 311851Nathan Kinder2007-09-283-95/+68
| | | | Summary: Remove hard-coded SASL mappings and use config based regex mappings instead.
* Resolves: 219586Nathan Kinder2007-09-281-3/+6
| | | | Summary: Fixed leak of Slapi_Value in index code.
* Resolves: 197997Nathan Kinder2007-09-281-1/+1
| | | | Summary: Fixed PTA config parsing to use a comma delimiter instread of a space.
* Resolves: 158667Nathan Kinder2007-09-281-1/+1
| | | | Summary: Fractional replication log statement needed a newline.
* Resolves: 288521Nathan Kinder2007-09-271-4/+35
| | | | Summary: Presence filter using attribute subtype returns incorrect search results.
* Resolves: 238504Nathan Kinder2007-09-273-42/+101
| | | | Summary: Don't replay AD originated password changes back to AD.
* Fixed a typo I put in in the previous checkin.Noriko Hosoi2007-09-261-1/+1
|
* Resolves: 170560Nathan Kinder2007-09-262-17/+40
| | | | Summary: Make sync total update deal with an empty changelog.
* Resolves: bug 301811Rich Megginson2007-09-251-4/+11
| | | | | | | | | | | Bug Description: reliab15: slapd hangs on goblin5 Reviewed by: nhosoi (Thanks!) Fix Description: We are calling the mtn_lock() twice in the same thread. The proposed fix is to move the mtn_lock() so this doesn't happen. Platforms tested: RHEL5 Flag Day: no Doc impact: no QA impact: should be covered by regular nightly and manual testing New Tests integrated into TET: none