~ttx/openldap/lucid-gssapi-495418

« back to all changes in this revision

Viewing changes to servers/slapd/module.c

  • Committer: Bazaar Package Importer
  • Author(s): Mathias Gug, Steve Langasek, Mathias Gug
  • Date: 2009-07-30 16:42:58 UTC
  • mfrom: (0.2.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090730164258-r282hhchgzytxm00
Tags: 2.4.17-1ubuntu1

[ Steve Langasek ]
* Fix up the lintian warnings:
  - add missing misc-depends on all packages
  - slapd, libldap-2.4-2-dbg sections changed to 'debug' to match archive
    overrides
  - bump Standards-Version to 3.8.2, no changes required.

[ Mathias Gug ]
* Resynchronise with Debian. Remaining changes:
  - AppArmor support:
    - debian/apparmor-profile: add AppArmor profile
    - updated debian/slapd.README.Debian for note on AppArmor
    - debian/slapd.dirs: add etc/apparmor.d/force-complain
    - debian/slapd.postrm: remove symlink in force-complain/ on purge
    - debian/rules: install apparmor profile.
  - Don't use local statement in config script as it fails if /bin/sh
    points to bash.
  - debian/slapd.postinst, debian/slapd.script-common: set correct
    ownership and permissions on /var/lib/ldap, /etc/ldap/slapd.d (group
    readable) and /var/run/slapd (world readable).
  - Enable nssoverlay:
    - debian/patches/nssov-build, debian/rules: Build and package the nss
      overlay.
    - debian/schema/misc.ldif: add ldif file for the misc schema which
      defines rfc822MailMember (required by the nss overlay).
  - debian/{control,rules}: enable PIE hardening
  - Use cn=config as the default configuration backend instead of
    slapd.conf. Migrate slapd.conf file to /etc/ldap/slapd.d/ on upgrade
    asking the end user to enter a new password to control the access to
    the cn=config tree.
  - debian/slapd.postinst: create /var/run/slapd before updating its
    permissions.
  - debian/slapd.init: Correctly set slapd config backend option even if
    the pidfile is configured in slapd default file.
* Dropped:
  - Merged in Debian:
    - Update priority of libldap-2.4-2 to match the archive override.
    - Add the missing ldapexop and ldapurl tools to ldap-utils, as well as
      the ldapurl(1) manpage.
    - Bump build-dependency on debhelper to 6 instead of 5, since that's
      what we're using.
    - Set the default SLAPD_SERVICES to ldap:/// ldapi:///, instead of using
      the built-in default of ldap:/// only.
  - Fixed in upstream release:
    - debian/patches/fix-ldap_back_entry_get_rwa.patch: fix test-0034
      failure when built with PIE.
    - debian/patches/gnutls-enable-v1-ca-certs: Enable V1 CA certs to be
      trusted.
  - Update Apparmor profile support: don't support upgrade from pre-hardy
    systems:
    - debian/slapd.postinst: Reload AA profile on configuration
    - debian/control: Recommends apparmor >= 2.1+1075-0ubuntu6
    - debian/control: Conflicts with apparmor-profiles <<
      2.1+1075-0ubuntu4 to make sure that if earlier version of
      apparmor-profiles gets installed it won't overwrite our profile.
    - follow ApparmorProfileMigration and force apparmor complain mode on
      some upgrades
    - debian/slapd.preinst: create symlink for force-complain on
      pre-feisty upgrades, upgrades where apparmor-profiles profile is
      unchanged (ie non-enforcing) and upgrades where apparmor profile
      does not exist.
  - debian/patches/autogen.sh: no longer needed with karmic libtool.
    - Call libtoolize with the --install option to install
      config.{guess,sub} files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* $OpenLDAP: pkg/ldap/servers/slapd/module.c,v 1.29.2.4 2009/01/22 00:01:01 kurt Exp $ */
 
1
/* $OpenLDAP: pkg/ldap/servers/slapd/module.c,v 1.29.2.6 2009/04/29 00:35:33 quanah Exp $ */
2
2
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3
3
 *
4
4
 * Copyright 1998-2009 The OpenLDAP Foundation.
119
119
 
120
120
int module_load(const char* file_name, int argc, char *argv[])
121
121
{
122
 
        module_loaded_t *module = NULL;
 
122
        module_loaded_t *module;
123
123
        const char *error;
124
124
        int rc;
125
125
        MODULE_INIT_FN initialize;
129
129
#define file    file_name
130
130
#endif
131
131
 
 
132
        module = module_handle( file_name );
 
133
        if ( module ) {
 
134
                Debug( LDAP_DEBUG_ANY, "module_load: (%s) already loaded\n",
 
135
                        file_name, 0, 0 );
 
136
                return -1;
 
137
        }
 
138
 
 
139
        /* If loading a backend, see if we already have it */
 
140
        if ( !strncasecmp( file_name, "back_", 5 )) {
 
141
                char *name = (char *)file_name + 5;
 
142
                char *dot = strchr( name, '.');
 
143
                if (dot) *dot = '\0';
 
144
                rc = backend_info( name ) != NULL;
 
145
                if (dot) *dot = '.';
 
146
                if ( rc ) {
 
147
                        Debug( LDAP_DEBUG_CONFIG, "module_load: (%s) already present (static)\n",
 
148
                                file_name, 0, 0 );
 
149
                        return 0;
 
150
                }
 
151
        } else {
 
152
                /* check for overlays too */
 
153
                char *dot = strchr( file_name, '.' );
 
154
                if ( dot ) *dot = '\0';
 
155
                rc = overlay_find( file_name ) != NULL;
 
156
                if ( dot ) *dot = '.';
 
157
                if ( rc ) {
 
158
                        Debug( LDAP_DEBUG_CONFIG, "module_load: (%s) already present (static)\n",
 
159
                                file_name, 0, 0 );
 
160
                        return 0;
 
161
                }
 
162
        }
 
163
 
132
164
        module = (module_loaded_t *)ch_calloc(1, sizeof(module_loaded_t) +
133
165
                strlen(file_name));
134
166
        if (module == NULL) {