]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/connection.c
Fix autoca schema init
[openldap] / servers / slapd / connection.c
index 4f359a85325af9f0f3dda2607549dd1370a8d7c3..5fe8d148fd7462fd904233162f2eecc5a34cdfe7 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2015 The OpenLDAP Foundation.
+ * Copyright 1998-2017 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -723,6 +723,9 @@ static void connection_abandon( Connection *c )
                SlapReply rs = {REP_RESULT};
 
                next = LDAP_STAILQ_NEXT( o, o_next );
+               /* don't abandon an op twice */
+               if ( o->o_abandon )
+                       continue;
                op.orn_msgid = o->o_msgid;
                o->o_abandon = 1;
                op.o_bd = frontendDB;
@@ -1050,6 +1053,13 @@ connection_operation( void *ctx, void *arg_v )
        void *memctx_null = NULL;
        ber_len_t memsiz;
 
+       gettimeofday( &op->o_qtime, NULL );
+       op->o_qtime.tv_usec -= op->o_tusec;
+       if ( op->o_qtime.tv_usec < 0 ) {
+               op->o_qtime.tv_usec += 1000000;
+               op->o_qtime.tv_sec--;
+       }
+       op->o_qtime.tv_sec -= op->o_time;
        conn_counter_init( op, ctx );
        ldap_pvt_thread_mutex_lock( &op->o_counters->sc_mutex );
        /* FIXME: returns 0 in case of failure */