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:
parent
189697a98b
commit
aa529bc414
@ -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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user