Author: baggins Date: Mon Jun 22 13:49:53 2009 GMT Module: packages Tag: HEAD ---- Log message: - rel 2 - update shadowLastChange on password change via smbk5pwd
---- Files affected: packages/openldap: openldap.spec (1.304 -> 1.305) , openldap-smbk5pwd-shadowLastChange.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/openldap/openldap.spec diff -u packages/openldap/openldap.spec:1.304 packages/openldap/openldap.spec:1.305 --- packages/openldap/openldap.spec:1.304 Wed Jun 17 14:39:58 2009 +++ packages/openldap/openldap.spec Mon Jun 22 15:49:47 2009 @@ -31,7 +31,7 @@ Summary(uk.UTF-8): Зразки клієнтів LDAP Name: openldap Version: 2.4.16 -Release: 1 +Release: 2 License: OpenLDAP Public License Group: Networking/Daemons Source0: ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/%{name}-%{version}.tgz @@ -61,6 +61,7 @@ Patch16: %{name}-pie.patch Patch17: %{name}-gethostbyXXXX_r.patch Patch18: %{name}-smbk5pwd-heimdal.patch +Patch19: %{name}-smbk5pwd-shadowLastChange.patch # Patch for the evolution library Patch100: %{name}-ntlm.diff URL: http://www.openldap.org/ @@ -888,6 +889,7 @@ %patch15 -p1 %patch16 -p1 %patch17 -p1 +%patch19 -p0 ln -s ../../../contrib/slapd-modules/smbk5pwd/smbk5pwd.c servers/slapd/overlays/smbk5pwd.c cd .. @@ -1732,6 +1734,10 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.305 2009/06/22 13:49:47 baggins +- rel 2 +- update shadowLastChange on password change via smbk5pwd + Revision 1.304 2009/06/17 12:39:58 baggins - rel 1 ================================================================ Index: packages/openldap/openldap-smbk5pwd-shadowLastChange.patch diff -u /dev/null packages/openldap/openldap-smbk5pwd-shadowLastChange.patch:1.1 --- /dev/null Mon Jun 22 15:49:53 2009 +++ packages/openldap/openldap-smbk5pwd-shadowLastChange.patch Mon Jun 22 15:49:47 2009 @@ -0,0 +1,113 @@ +--- contrib/slapd-modules/smbk5pwd/smbk5pwd.c.orig 2008-09-22 16:52:41.686969865 +0200 ++++ contrib/slapd-modules/smbk5pwd/smbk5pwd.c 2008-09-22 20:08:23.591551210 +0200 +@@ -75,14 +75,19 @@ + static ObjectClass *oc_sambaSamAccount; + #endif + ++static AttributeDescription *ad_shadowLastChange; ++static ObjectClass *oc_shadowAccount; ++ + /* Per-instance configuration information */ + typedef struct smbk5pwd_t { + unsigned mode; + #define SMBK5PWD_F_KRB5 (0x1U) + #define SMBK5PWD_F_SAMBA (0x2U) ++#define SMBK5PWD_F_SHADOW (0x4U) + + #define SMBK5PWD_DO_KRB5(pi) ((pi)->mode & SMBK5PWD_F_KRB5) + #define SMBK5PWD_DO_SAMBA(pi) ((pi)->mode & SMBK5PWD_F_SAMBA) ++#define SMBK5PWD_DO_SHADOW(pi) ((pi)->mode & SMBK5PWD_F_SHADOW) + + #ifdef DO_KRB5 + /* nothing yet */ +@@ -104,6 +109,7 @@ + #ifdef DO_SAMBA + | SMBK5PWD_F_SAMBA + #endif ++ | SMBK5PWD_F_SHADOW + ; + + static int smbk5pwd_modules_init( smbk5pwd_t *pi ); +@@ -620,6 +626,30 @@ + } + } + #endif /* DO_SAMBA */ ++ if ( SMBK5PWD_DO_SHADOW( pi ) && is_entry_objectclass(e, oc_shadowAccount, 0 ) ) { ++ struct berval *keys; ++ ++ ml = ch_malloc(sizeof(Modifications)); ++ ml->sml_next = qpw->rs_mods; ++ qpw->rs_mods = ml; ++ ++ keys = ch_malloc( 2 * sizeof(struct berval) ); ++ keys[0].bv_val = ch_malloc( STRLENOF( "9223372036854775807L" ) + 1 ); ++ keys[0].bv_len = snprintf(keys[0].bv_val, ++ STRLENOF( "9223372036854775807L" ) + 1, ++ "%ld", slap_get_time()/86400); ++ BER_BVZERO( &keys[1] ); ++ ++ ml->sml_desc = ad_shadowLastChange; ++ ml->sml_op = LDAP_MOD_REPLACE; ++#ifdef SLAP_MOD_INTERNAL ++ ml->sml_flags = SLAP_MOD_INTERNAL; ++#endif ++ ml->sml_values = keys; ++ ml->sml_nvalues = NULL; ++ ml->sml_numvals = 1; ++ } ++ + be_entry_release_r( op, e ); + qpw->rs_new.bv_val[qpw->rs_new.bv_len] = term; + +@@ -682,6 +712,7 @@ + static slap_verbmasks smbk5pwd_modules[] = { + { BER_BVC( "krb5" ), SMBK5PWD_F_KRB5 }, + { BER_BVC( "samba" ), SMBK5PWD_F_SAMBA }, ++ { BER_BVC( "shadow" ), SMBK5PWD_F_SHADOW }, + { BER_BVNULL, -1 } + }; + +@@ -874,6 +905,10 @@ + { NULL } + }, + #endif /* DO_SAMBA */ ++ shadow_ad[] = { ++ { "shadowLastChange", &ad_shadowLastChange }, ++ { NULL } ++ }, + dummy_ad; + + /* this is to silence the unused var warning */ +@@ -973,6 +1008,32 @@ + } + #endif /* DO_SAMBA */ + ++ if ( SMBK5PWD_DO_SHADOW( pi ) && oc_shadowAccount == NULL ) { ++ int i, rc; ++ ++ oc_shadowAccount = oc_find( "shadowAccount" ); ++ if ( !oc_shadowAccount ) { ++ Debug( LDAP_DEBUG_ANY, "smbk5pwd: " ++ "unable to find \"shadowAccount\" objectClass.\n", ++ 0, 0, 0 ); ++ return -1; ++ } ++ ++ for ( i = 0; shadow_ad[ i ].name != NULL; i++ ) { ++ const char *text; ++ ++ *(shadow_ad[ i ].adp) = NULL; ++ ++ rc = slap_str2ad( shadow_ad[ i ].name, shadow_ad[ i ].adp, &text ); ++ if ( rc != LDAP_SUCCESS ) { ++ Debug( LDAP_DEBUG_ANY, "smbk5pwd: " ++ "unable to find \"%s\" attributeType: %s (%d).\n", ++ shadow_ad[ i ].name, text, rc ); ++ oc_shadowAccount = NULL; ++ return rc; ++ } ++ } ++ } + return 0; + } + ================================================================ ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/openldap/openldap.spec?r1=1.304&r2=1.305&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
