]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/overlays/retcode.c
don't leak callbacks if stuff cannot be registered; provide a means to dispose of...
[openldap] / servers / slapd / overlays / retcode.c
index 81b0ae275d05ca0741be50449970fd9aabacacbe..3e5568552d255293069a853f594afeb010a7e4f6 100644 (file)
@@ -93,20 +93,22 @@ retcode_entry_response( Operation *op, SlapReply *rs, BackendInfo *bi, Entry *e
 static unsigned int
 retcode_sleep( int s )
 {
+       unsigned int r = 0;
+
        /* sleep as required */
        if ( s < 0 ) {
 #if 0  /* use high-order bits for better randomness (Numerical Recipes in "C") */
-               unsigned        r = rand() % (-s);
+               r = rand() % (-s);
 #endif
-               unsigned        r = ((double)(-s))*rand()/(RAND_MAX + 1.0);
-               return sleep( r );
+               r = ((double)(-s))*rand()/(RAND_MAX + 1.0);
+       } else if ( s > 0 ) {
+               r = (unsigned int)s;
        }
-
-       if ( s > 0 ) {
-               return sleep( (unsigned int)s );
+       if ( r ) {
+               sleep( r );
        }
 
-       return 0;
+       return r;
 }
 
 static int