Diff for /servers/slapd/overlays/auditlog.c between versions 1.7.2.9 and 1.11

version 1.7.2.9, 2009/09/29 21:43:53 version 1.11, 2006/06/05 20:31:17
Line 1 Line 1
 /* auditlog.c - log modifications for audit/history purposes */  /* auditlog.c - log modifications for audit/history purposes */
 /* $OpenLDAP$ */  /* $OpenLDAP: pkg/ldap/servers/slapd/overlays/auditlog.c,v 1.10 2006/05/30 23:45:39 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-2009 The OpenLDAP Foundation.   * Copyright 2005-2006 The OpenLDAP Foundation.
  * Portions copyright 2004-2005 Symas Corporation.   * Portions copyright 2004-2005 Symas Corporation.
  * All rights reserved.   * All rights reserved.
  *   *
Line 73  static int auditlog_response(Operation * Line 73  static int auditlog_response(Operation *
         Attribute *a;          Attribute *a;
         Modifications *m;          Modifications *m;
         struct berval *b, *who = NULL;          struct berval *b, *who = NULL;
         char *what, *whatm, *suffix;          char *what, *suffix;
         time_t stamp;          long stamp = slap_get_time();
         int i;          int i;
   
         if ( rs->sr_err != LDAP_SUCCESS ) return SLAP_CB_CONTINUE;          if ( rs->sr_err != LDAP_SUCCESS ) return SLAP_CB_CONTINUE;
Line 125  static int auditlog_response(Operation * Line 125  static int auditlog_response(Operation *
                 return SLAP_CB_CONTINUE;                  return SLAP_CB_CONTINUE;
         }          }
   
         stamp = slap_get_time();  
         fprintf(f, "# %s %ld %s%s%s\n",          fprintf(f, "# %s %ld %s%s%s\n",
                 what, (long)stamp, suffix, who ? " " : "", who ? who->bv_val : "");                  what, stamp, suffix, who ? " " : "", who ? who->bv_val : "");
   
         if ( !BER_BVISEMPTY( &op->o_conn->c_dn ) &&          if ( !BER_BVISEMPTY( &op->o_conn->c_dn ) &&
                 (!who || !dn_match( who, &op->o_conn->c_dn )))                  (!who || !dn_match( who, &op->o_conn->c_dn )))
Line 147  static int auditlog_response(Operation * Line 146  static int auditlog_response(Operation *
           case LDAP_REQ_MODIFY:            case LDAP_REQ_MODIFY:
                 for(m = op->orm_modlist; m; m = m->sml_next) {                  for(m = op->orm_modlist; m; m = m->sml_next) {
                         switch(m->sml_op & LDAP_MOD_OP) {                          switch(m->sml_op & LDAP_MOD_OP) {
                                 case LDAP_MOD_ADD:       whatm = "add";         break;                                  case LDAP_MOD_ADD:       what = "add";          break;
                                 case LDAP_MOD_REPLACE:   whatm = "replace";     break;                                  case LDAP_MOD_REPLACE:   what = "replace";      break;
                                 case LDAP_MOD_DELETE:    whatm = "delete";      break;                                  case LDAP_MOD_DELETE:    what = "delete";       break;
                                 case LDAP_MOD_INCREMENT: whatm = "increment";   break;                                  case LDAP_MOD_INCREMENT: what = "increment";    break;
                                 default:                                  default:
                                         fprintf(f, "# MOD_TYPE_UNKNOWN:%02x\n", m->sml_op & LDAP_MOD_OP);                                          fprintf(f, "# MOD_TYPE_UNKNOWN:%02x\n", m->sml_op & LDAP_MOD_OP);
                                         continue;                                          continue;
                         }                          }
                         fprintf(f, "%s: %s\n", whatm, m->sml_desc->ad_cname.bv_val);                          fprintf(f, "%s: %s\n", what, m->sml_desc->ad_cname.bv_val);
                         if((b = m->sml_values) != NULL)                          if((b = m->sml_values) != NULL)
                           for(i = 0; b[i].bv_val; i++)                            for(i = 0; b[i].bv_val; i++)
                                 fprint_ldif(f, m->sml_desc->ad_cname.bv_val, b[i].bv_val, b[i].bv_len);                                  fprint_ldif(f, m->sml_desc->ad_cname.bv_val, b[i].bv_val, b[i].bv_len);
Line 174  static int auditlog_response(Operation * Line 173  static int auditlog_response(Operation *
                 break;                  break;
         }          }
   
         fprintf(f, "# end %s %ld\n\n", what, (long)stamp);          fprintf(f, "# end %s %ld\n\n", what, stamp);
   
         fclose(f);          fclose(f);
         ldap_pvt_thread_mutex_unlock(&ad->ad_mutex);          ldap_pvt_thread_mutex_unlock(&ad->ad_mutex);
Line 185  static slap_overinst auditlog; Line 184  static slap_overinst auditlog;
   
 static int  static int
 auditlog_db_init(  auditlog_db_init(
         BackendDB *be,          BackendDB *be
         ConfigReply *cr  
 )  )
 {  {
         slap_overinst *on = (slap_overinst *)be->bd_info;          slap_overinst *on = (slap_overinst *)be->bd_info;
Line 199  auditlog_db_init( Line 197  auditlog_db_init(
   
 static int  static int
 auditlog_db_close(  auditlog_db_close(
         BackendDB *be,          BackendDB *be
         ConfigReply *cr  
 )  )
 {  {
         slap_overinst *on = (slap_overinst *)be->bd_info;          slap_overinst *on = (slap_overinst *)be->bd_info;
Line 213  auditlog_db_close( Line 210  auditlog_db_close(
   
 static int  static int
 auditlog_db_destroy(  auditlog_db_destroy(
         BackendDB *be,          BackendDB *be
         ConfigReply *cr  
 )  )
 {  {
         slap_overinst *on = (slap_overinst *)be->bd_info;          slap_overinst *on = (slap_overinst *)be->bd_info;
Line 225  auditlog_db_destroy( Line 221  auditlog_db_destroy(
         return 0;          return 0;
 }  }
   
   static int
   auditlog_config(
           BackendDB       *be,
           const char      *fname,
           int             lineno,
           int             argc,
           char    **argv
   )
   {
           slap_overinst *on = (slap_overinst *) be->bd_info;
           auditlog_data *ad = on->on_bi.bi_private;
   
           /* history log file */
           if ( strcasecmp( argv[0], "auditlog" ) == 0 ) {
                   if ( argc < 2 ) {
                           Debug( LDAP_DEBUG_ANY,
               "%s: line %d: missing filename in \"auditlog <filename>\" line\n",
                               fname, lineno, 0 );
                                   return( 1 );
                   }
                   ad->ad_logfile = ch_strdup( argv[1] );
                   return 0;
           }
           return SLAP_CONF_UNKNOWN;
   }
   
 int auditlog_initialize() {  int auditlog_initialize() {
         int rc;          int rc;
   

Removed from v.1.7.2.9  
changed lines
  Added in v.1.11


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