]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/auditlog.c
Only return requested attrs in sssvlv response
[openldap] / servers / slapd / overlays / auditlog.c
index c7d7b5e2288501f0c0d99a2e7ea362549d0ddbf2..97342f1e105b3b5c819ef5a8d3652f20e14b928a 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2005-2009 The OpenLDAP Foundation.
+ * Copyright 2005-2011 The OpenLDAP Foundation.
  * Portions copyright 2004-2005 Symas Corporation.
  * All rights reserved.
  *
@@ -72,8 +72,8 @@ static int auditlog_response(Operation *op, SlapReply *rs) {
        FILE *f;
        Attribute *a;
        Modifications *m;
-       struct berval *b, *who = NULL;
-       char *what, *suffix;
+       struct berval *b, *who = NULL, peername;
+       char *what, *whatm, *suffix;
        time_t stamp;
        int i;
 
@@ -119,6 +119,7 @@ static int auditlog_response(Operation *op, SlapReply *rs) {
        if ( !who )
                who = &op->o_dn;
 
+       peername = op->o_conn->c_peer_name;
        ldap_pvt_thread_mutex_lock(&ad->ad_mutex);
        if((f = fopen(ad->ad_logfile, "a")) == NULL) {
                ldap_pvt_thread_mutex_unlock(&ad->ad_mutex);
@@ -126,8 +127,9 @@ static int auditlog_response(Operation *op, SlapReply *rs) {
        }
 
        stamp = slap_get_time();
-       fprintf(f, "# %s %ld %s%s%s\n",
-               what, (long)stamp, suffix, who ? " " : "", who ? who->bv_val : "");
+       fprintf(f, "# %s %ld %s%s%s %s conn=%ld\n",
+               what, (long)stamp, suffix, who ? " " : "", who ? who->bv_val : "",
+               peername.bv_val ? peername.bv_val: "", op->o_conn->c_connid);
 
        if ( !BER_BVISEMPTY( &op->o_conn->c_dn ) &&
                (!who || !dn_match( who, &op->o_conn->c_dn )))
@@ -147,15 +149,15 @@ static int auditlog_response(Operation *op, SlapReply *rs) {
          case LDAP_REQ_MODIFY:
                for(m = op->orm_modlist; m; m = m->sml_next) {
                        switch(m->sml_op & LDAP_MOD_OP) {
-                               case LDAP_MOD_ADD:       what = "add";          break;
-                               case LDAP_MOD_REPLACE:   what = "replace";      break;
-                               case LDAP_MOD_DELETE:    what = "delete";       break;
-                               case LDAP_MOD_INCREMENT: what = "increment";    break;
+                               case LDAP_MOD_ADD:       whatm = "add";         break;
+                               case LDAP_MOD_REPLACE:   whatm = "replace";     break;
+                               case LDAP_MOD_DELETE:    whatm = "delete";      break;
+                               case LDAP_MOD_INCREMENT: whatm = "increment";   break;
                                default:
                                        fprintf(f, "# MOD_TYPE_UNKNOWN:%02x\n", m->sml_op & LDAP_MOD_OP);
                                        continue;
                        }
-                       fprintf(f, "%s: %s\n", what, m->sml_desc->ad_cname.bv_val);
+                       fprintf(f, "%s: %s\n", whatm, m->sml_desc->ad_cname.bv_val);
                        if((b = m->sml_values) != NULL)
                          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);