Diff for /servers/slapd/overlays/accesslog.c between versions 1.2.2.20 and 1.2.2.21

version 1.2.2.20, 2006/11/02 18:34:02 version 1.2.2.21, 2006/11/07 03:03:12
Line 1 Line 1
 /* accesslog.c - log operations for audit/history purposes */  /* accesslog.c - log operations for audit/history purposes */
 /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/accesslog.c,v 1.2.2.19 2006/11/02 18:06:54 hyc Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/accesslog.c,v 1.2.2.20 2006/11/02 18:34:02 hyc Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 2005-2006 The OpenLDAP Foundation.   * Copyright 2005-2006 The OpenLDAP Foundation.
Line 484  typedef struct purge_data { Line 484  typedef struct purge_data {
         int used;          int used;
         BerVarray dn;          BerVarray dn;
         BerVarray ndn;          BerVarray ndn;
           struct berval csn;      /* an arbitrary old CSN */
 } purge_data;  } purge_data;
   
 static int  static int
Line 495  log_old_lookup( Operation *op, SlapReply Line 496  log_old_lookup( Operation *op, SlapReply
   
         if ( slapd_shutdown ) return 0;          if ( slapd_shutdown ) return 0;
   
           /* Remember old CSN */
           if ( pd->csn.bv_val[0] == '\0' ) {
                   Attribute *a = attr_find( rs->sr_entry->e_attrs,
                           slap_schema.si_ad_entryCSN );
                   if ( a ) {
                           int len = a->a_vals[0].bv_len;
                           if ( len > pd->csn.bv_len )
                                   len = pd->csn.bv_len;
                           AC_MEMCPY( pd->csn.bv_val, a->a_vals[0].bv_val, len );
                           pd->csn.bv_len = len;
                   }
           }
         if ( pd->used >= pd->slots ) {          if ( pd->used >= pd->slots ) {
                 pd->slots += PURGE_INCREMENT;                  pd->slots += PURGE_INCREMENT;
                 pd->dn = ch_realloc( pd->dn, pd->slots * sizeof( struct berval ));                  pd->dn = ch_realloc( pd->dn, pd->slots * sizeof( struct berval ));
Line 522  accesslog_purge( void *ctx, void *arg ) Line 535  accesslog_purge( void *ctx, void *arg )
         AttributeAssertion ava = {0};          AttributeAssertion ava = {0};
         purge_data pd = {0};          purge_data pd = {0};
         char timebuf[LDAP_LUTIL_GENTIME_BUFSIZE];          char timebuf[LDAP_LUTIL_GENTIME_BUFSIZE];
           char csnbuf[LDAP_LUTIL_CSNSTR_BUFSIZE];
         time_t old = slap_get_time();          time_t old = slap_get_time();
   
         connection_fake_init( &conn, op, ctx );          connection_fake_init( &conn, op, ctx );
Line 553  accesslog_purge( void *ctx, void *arg ) Line 567  accesslog_purge( void *ctx, void *arg )
         op->ors_attrs = slap_anlist_no_attrs;          op->ors_attrs = slap_anlist_no_attrs;
         op->ors_attrsonly = 1;          op->ors_attrsonly = 1;
                   
           pd.csn.bv_len = sizeof( csnbuf );
           pd.csn.bv_val = csnbuf;
           csnbuf[0] = '\0';
         cb.sc_private = &pd;          cb.sc_private = &pd;
   
         op->o_bd->be_search( op, &rs );          op->o_bd->be_search( op, &rs );
Line 563  accesslog_purge( void *ctx, void *arg ) Line 580  accesslog_purge( void *ctx, void *arg )
   
                 op->o_tag = LDAP_REQ_DELETE;                  op->o_tag = LDAP_REQ_DELETE;
                 op->o_callback = &nullsc;                  op->o_callback = &nullsc;
                   op->o_csn = pd.csn;
   
                 for (i=0; i<pd.used; i++) {                  for (i=0; i<pd.used; i++) {
                         op->o_req_dn = pd.dn[i];                          op->o_req_dn = pd.dn[i];

Removed from v.1.2.2.20  
changed lines
  Added in v.1.2.2.21


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org