1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-23 09:57:40 +03:00

lib: Put "results_store" into a doubly linked list

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13362
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit 8063995a92fffc93aa9d6d1d92a75bf3f3c9592b)
This commit is contained in:
Volker Lendecke 2018-05-07 16:41:55 +02:00 committed by Karolin Seeger
parent 189697a98b
commit aa529bc414

View File

@ -35,6 +35,7 @@
#include "replace.h"
#include "system/filesys.h"
#include "system/time.h"
#include "dlinklist.h"
#include "ldb_module.h"
struct message_store {
@ -48,14 +49,13 @@ struct message_store {
struct private_data;
struct results_store {
struct results_store *prev, *next;
struct private_data *priv;
char *cookie;
time_t timestamp;
struct results_store *next;
struct message_store *first;
struct message_store *last;
int num_entries;
@ -75,22 +75,8 @@ struct private_data {
static int store_destructor(struct results_store *del)
{
struct private_data *priv = del->priv;
struct results_store *loop;
if (priv->store == del) {
priv->store = del->next;
return 0;
}
for (loop = priv->store; loop; loop = loop->next) {
if (loop->next == del) {
loop->next = del->next;
return 0;
}
}
/* is not in list ? */
return -1;
DLIST_REMOVE(priv->store, del);
return 0;
}
static struct results_store *new_store(struct private_data *priv)
@ -120,8 +106,7 @@ static struct results_store *new_store(struct private_data *priv)
newr->first_ref = NULL;
newr->controls = NULL;
newr->next = priv->store;
priv->store = newr;
DLIST_ADD(priv->store, newr);
talloc_set_destructor(newr, store_destructor);