1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-04 08:22:08 +03:00

r18605: sync dlinklist.h with samba4, that means DLIST_ADD_END()

and DLIST_DEMOTE() now take the type of the tmp pointer
not the tmp pointer itself anymore.

metze
This commit is contained in:
Stefan Metzmacher
2006-09-18 07:52:16 +00:00
committed by Gerald (Jerry) Carter
parent a52fa21895
commit 2f58645b70
14 changed files with 64 additions and 55 deletions

View File

@ -432,7 +432,6 @@ static NTSTATUS make_auth_context_text_list(struct auth_context **auth_context,
{ {
auth_methods *list = NULL; auth_methods *list = NULL;
auth_methods *t = NULL; auth_methods *t = NULL;
auth_methods *tmp;
NTSTATUS nt_status; NTSTATUS nt_status;
if (!text_list) { if (!text_list) {
@ -445,7 +444,7 @@ static NTSTATUS make_auth_context_text_list(struct auth_context **auth_context,
for (;*text_list; text_list++) { for (;*text_list; text_list++) {
if (load_auth_module(*auth_context, *text_list, &t)) { if (load_auth_module(*auth_context, *text_list, &t)) {
DLIST_ADD_END(list, t, tmp); DLIST_ADD_END(list, t, auth_methods *);
} }
} }

View File

@ -21,10 +21,13 @@
/* To use these macros you must have a structure containing a next and /* To use these macros you must have a structure containing a next and
prev pointer */ prev pointer */
#ifndef _DLINKLIST_H
#define _DLINKLIST_H
/* hook into the front of the list */ /* hook into the front of the list */
#define DLIST_ADD(list, p) \ #define DLIST_ADD(list, p) \
{ \ do { \
if (!(list)) { \ if (!(list)) { \
(list) = (p); \ (list) = (p); \
(p)->next = (p)->prev = NULL; \ (p)->next = (p)->prev = NULL; \
@ -34,11 +37,11 @@
(p)->prev = NULL; \ (p)->prev = NULL; \
(list) = (p); \ (list) = (p); \
}\ }\
} } while (0)
/* remove an element from a list - element doesn't have to be in list. */ /* remove an element from a list - element doesn't have to be in list. */
#define DLIST_REMOVE(list, p) \ #define DLIST_REMOVE(list, p) \
{ \ do { \
if ((p) == (list)) { \ if ((p) == (list)) { \
(list) = (p)->next; \ (list) = (p)->next; \
if (list) (list)->prev = NULL; \ if (list) (list)->prev = NULL; \
@ -47,28 +50,29 @@
if ((p)->next) (p)->next->prev = (p)->prev; \ if ((p)->next) (p)->next->prev = (p)->prev; \
} \ } \
if ((p) != (list)) (p)->next = (p)->prev = NULL; \ if ((p) != (list)) (p)->next = (p)->prev = NULL; \
} } while (0)
/* promote an element to the top of the list */ /* promote an element to the top of the list */
#define DLIST_PROMOTE(list, p) \ #define DLIST_PROMOTE(list, p) \
{ \ do { \
DLIST_REMOVE(list, p) \ DLIST_REMOVE(list, p); \
DLIST_ADD(list, p) \ DLIST_ADD(list, p); \
} } while (0)
/* hook into the end of the list - needs a tmp pointer */ /* hook into the end of the list - needs a tmp pointer */
#define DLIST_ADD_END(list, p, tmp) \ #define DLIST_ADD_END(list, p, type) \
{ \ do { \
if (!(list)) { \ if (!(list)) { \
(list) = (p); \ (list) = (p); \
(p)->next = (p)->prev = NULL; \ (p)->next = (p)->prev = NULL; \
} else { \ } else { \
for ((tmp) = (list); (tmp)->next; (tmp) = (tmp)->next) ; \ type tmp; \
(tmp)->next = (p); \ for (tmp = (list); tmp->next; tmp = tmp->next) ; \
tmp->next = (p); \
(p)->next = NULL; \ (p)->next = NULL; \
(p)->prev = (tmp); \ (p)->prev = tmp; \
} \ } \
} } while (0)
/* insert 'p' after the given element 'el' in a list. If el is NULL then /* insert 'p' after the given element 'el' in a list. If el is NULL then
this is the same as a DLIST_ADD() */ this is the same as a DLIST_ADD() */
@ -84,9 +88,27 @@ do { \
}\ }\
} while (0) } while (0)
/* demote an element to the top of the list, needs a tmp pointer */ /* demote an element to the end of the list, needs a tmp pointer */
#define DLIST_DEMOTE(list, p, tmp) \ #define DLIST_DEMOTE(list, p, tmp) \
{ \ do { \
DLIST_REMOVE(list, p) \ DLIST_REMOVE(list, p); \
DLIST_ADD_END(list, p, tmp) \ DLIST_ADD_END(list, p, tmp); \
} } while (0)
/* concatenate two lists - putting all elements of the 2nd list at the
end of the first list */
#define DLIST_CONCATENATE(list1, list2, type) \
do { \
if (!(list1)) { \
(list1) = (list2); \
} else { \
type tmp; \
for (tmp = (list1); tmp->next; tmp = tmp->next) ; \
tmp->next = (list2); \
if (list2) { \
(list2)->prev = tmp; \
} \
} \
} while (0)
#endif /* _DLINKLIST_H */

View File

@ -572,7 +572,6 @@ static void smbldap_store_state(LDAP *ld, struct smbldap_state *smbldap_state)
{ {
struct smbldap_state *tmp_ldap_state; struct smbldap_state *tmp_ldap_state;
struct smbldap_state_lookup *t; struct smbldap_state_lookup *t;
struct smbldap_state_lookup *tmp;
if ((tmp_ldap_state = smbldap_find_state(ld))) { if ((tmp_ldap_state = smbldap_find_state(ld))) {
SMB_ASSERT(tmp_ldap_state == smbldap_state); SMB_ASSERT(tmp_ldap_state == smbldap_state);
@ -582,7 +581,7 @@ static void smbldap_store_state(LDAP *ld, struct smbldap_state *smbldap_state)
t = SMB_XMALLOC_P(struct smbldap_state_lookup); t = SMB_XMALLOC_P(struct smbldap_state_lookup);
ZERO_STRUCTP(t); ZERO_STRUCTP(t);
DLIST_ADD_END(smbldap_state_lookup_list, t, tmp); DLIST_ADD_END(smbldap_state_lookup_list, t, struct smbldap_state_lookup *);
t->ld = ld; t->ld = ld;
t->smbldap_state = smbldap_state; t->smbldap_state = smbldap_state;
} }

View File

@ -1423,7 +1423,7 @@ NTSTATUS cli_start_connection(struct cli_state **output_cli,
return NT_STATUS_UNSUCCESSFUL; return NT_STATUS_UNSUCCESSFUL;
} }
cli_set_timeout(cli, 10000); /* 10 seconds. */ cli_set_timeout(cli, 30000); /* 10 seconds. */
if (dest_ip) if (dest_ip)
ip = *dest_ip; ip = *dest_ip;

View File

@ -86,7 +86,6 @@ struct browse_cache_record *create_browser_in_lmb_cache( const char *work_name,
struct in_addr ip ) struct in_addr ip )
{ {
struct browse_cache_record *browc; struct browse_cache_record *browc;
struct browse_cache_record *tmp_browc;
time_t now = time( NULL ); time_t now = time( NULL );
browc = SMB_MALLOC_P(struct browse_cache_record); browc = SMB_MALLOC_P(struct browse_cache_record);
@ -115,7 +114,7 @@ struct browse_cache_record *create_browser_in_lmb_cache( const char *work_name,
browc->ip = ip; browc->ip = ip;
DLIST_ADD_END(lmb_browserlist, browc, tmp_browc); DLIST_ADD_END(lmb_browserlist, browc, struct browse_cache_record *);
if( DEBUGLVL( 3 ) ) { if( DEBUGLVL( 3 ) ) {
Debug1( "nmbd_browserdb:create_browser_in_lmb_cache()\n" ); Debug1( "nmbd_browserdb:create_browser_in_lmb_cache()\n" );

View File

@ -108,7 +108,7 @@ void async_request(TALLOC_CTX *mem_ctx, struct winbindd_child *child,
void (*continuation)(void *private_data, BOOL success), void (*continuation)(void *private_data, BOOL success),
void *private_data) void *private_data)
{ {
struct winbindd_async_request *state, *tmp; struct winbindd_async_request *state;
SMB_ASSERT(continuation != NULL); SMB_ASSERT(continuation != NULL);
@ -127,7 +127,7 @@ void async_request(TALLOC_CTX *mem_ctx, struct winbindd_child *child,
state->continuation = continuation; state->continuation = continuation;
state->private_data = private_data; state->private_data = private_data;
DLIST_ADD_END(child->requests, state, tmp); DLIST_ADD_END(child->requests, state, struct winbindd_async_request *);
schedule_async_request(child); schedule_async_request(child);

View File

@ -295,7 +295,7 @@ to notify_queue_head\n", msg->type, msg->field, msg->printer));
* the messages are sent in the order they were received. JRA. * the messages are sent in the order they were received. JRA.
*/ */
DLIST_ADD_END(notify_queue_head, pnqueue, tmp_ptr); DLIST_ADD_END(notify_queue_head, pnqueue, struct notify_queue *);
num_messages++; num_messages++;
} }

View File

@ -1748,7 +1748,6 @@ static int hashrec_cmp( REGF_HASH_REC *h1, REGF_HASH_REC *h2 )
if ( sec_desc ) { if ( sec_desc ) {
uint32 sk_size = sk_record_data_size( sec_desc ); uint32 sk_size = sk_record_data_size( sec_desc );
REGF_HBIN *sk_hbin; REGF_HBIN *sk_hbin;
REGF_SK_REC *tmp = NULL;
/* search for it in the existing list of sd's */ /* search for it in the existing list of sd's */
@ -1777,7 +1776,7 @@ static int hashrec_cmp( REGF_HASH_REC *h1, REGF_HASH_REC *h2 )
/* size value must be self-inclusive */ /* size value must be self-inclusive */
nk->sec_desc->size = sec_desc_size(sec_desc) + sizeof(uint32); nk->sec_desc->size = sec_desc_size(sec_desc) + sizeof(uint32);
DLIST_ADD_END( file->sec_desc_list, nk->sec_desc, tmp ); DLIST_ADD_END( file->sec_desc_list, nk->sec_desc, REGF_SK_REC *);
/* update the offsets for us and the previous sd in the list. /* update the offsets for us and the previous sd in the list.
if this is the first record, then just set the next and prev if this is the first record, then just set the next and prev

View File

@ -86,7 +86,7 @@ BOOL push_blocking_lock_request( struct byte_range_lock *br_lck,
SMB_BIG_UINT offset, SMB_BIG_UINT count) SMB_BIG_UINT offset, SMB_BIG_UINT count)
{ {
static BOOL set_lock_msg; static BOOL set_lock_msg;
blocking_lock_record *blr, *tmp; blocking_lock_record *blr;
NTSTATUS status; NTSTATUS status;
if(in_chained_smb() ) { if(in_chained_smb() ) {
@ -148,7 +148,7 @@ BOOL push_blocking_lock_request( struct byte_range_lock *br_lck,
return False; return False;
} }
DLIST_ADD_END(blocking_lock_queue, blr, tmp); DLIST_ADD_END(blocking_lock_queue, blr, blocking_lock_record *);
/* Ensure we'll receive messages when this is unlocked. */ /* Ensure we'll receive messages when this is unlocked. */
if (!set_lock_msg) { if (!set_lock_msg) {

View File

@ -1049,14 +1049,13 @@ static struct ea_list *read_nttrans_ea_list(TALLOC_CTX *ctx, const char *pdata,
while (offset + 4 <= data_size) { while (offset + 4 <= data_size) {
size_t next_offset = IVAL(pdata,offset); size_t next_offset = IVAL(pdata,offset);
struct ea_list *tmp;
struct ea_list *eal = read_ea_list_entry(ctx, pdata + offset + 4, data_size - offset - 4, NULL); struct ea_list *eal = read_ea_list_entry(ctx, pdata + offset + 4, data_size - offset - 4, NULL);
if (!eal) { if (!eal) {
return NULL; return NULL;
} }
DLIST_ADD_END(ea_list_head, eal, tmp); DLIST_ADD_END(ea_list_head, eal, struct ea_list *);
if (next_offset == 0) { if (next_offset == 0) {
break; break;
} }

View File

@ -1241,7 +1241,6 @@ static BOOL create_canon_ace_lists(files_struct *fsp, SMB_STRUCT_STAT *pst,
BOOL all_aces_are_inherit_only = (fsp->is_directory ? True : False); BOOL all_aces_are_inherit_only = (fsp->is_directory ? True : False);
canon_ace *file_ace = NULL; canon_ace *file_ace = NULL;
canon_ace *dir_ace = NULL; canon_ace *dir_ace = NULL;
canon_ace *tmp_ace = NULL;
canon_ace *current_ace = NULL; canon_ace *current_ace = NULL;
BOOL got_dir_allow = False; BOOL got_dir_allow = False;
BOOL got_file_allow = False; BOOL got_file_allow = False;
@ -1429,7 +1428,7 @@ static BOOL create_canon_ace_lists(files_struct *fsp, SMB_STRUCT_STAT *pst,
if ((psa->flags & (SEC_ACE_FLAG_OBJECT_INHERIT|SEC_ACE_FLAG_CONTAINER_INHERIT)) == if ((psa->flags & (SEC_ACE_FLAG_OBJECT_INHERIT|SEC_ACE_FLAG_CONTAINER_INHERIT)) ==
(SEC_ACE_FLAG_OBJECT_INHERIT|SEC_ACE_FLAG_CONTAINER_INHERIT)) { (SEC_ACE_FLAG_OBJECT_INHERIT|SEC_ACE_FLAG_CONTAINER_INHERIT)) {
DLIST_ADD_END(dir_ace, current_ace, tmp_ace); DLIST_ADD_END(dir_ace, current_ace, canon_ace *);
/* /*
* Note if this was an allow ace. We can't process * Note if this was an allow ace. We can't process
@ -1487,7 +1486,7 @@ Deny entry after Allow entry. Failing to set on file %s.\n", fsp->fsp_name ));
*/ */
if (current_ace && !(psa->flags & SEC_ACE_FLAG_INHERIT_ONLY)) { if (current_ace && !(psa->flags & SEC_ACE_FLAG_INHERIT_ONLY)) {
DLIST_ADD_END(file_ace, current_ace, tmp_ace); DLIST_ADD_END(file_ace, current_ace, canon_ace *);
/* /*
* Note if this was an allow ace. We can't process * Note if this was an allow ace. We can't process
@ -1734,7 +1733,6 @@ static void process_deny_list( canon_ace **pp_ace_list )
for (curr_ace = ace_list; curr_ace; curr_ace = curr_ace_next) { for (curr_ace = ace_list; curr_ace; curr_ace = curr_ace_next) {
mode_t new_perms = (mode_t)0; mode_t new_perms = (mode_t)0;
canon_ace *allow_ace_p; canon_ace *allow_ace_p;
canon_ace *tmp_ace;
curr_ace_next = curr_ace->next; /* So we can't lose the link. */ curr_ace_next = curr_ace->next; /* So we can't lose the link. */
@ -1753,7 +1751,7 @@ static void process_deny_list( canon_ace **pp_ace_list )
curr_ace->attr = ALLOW_ACE; curr_ace->attr = ALLOW_ACE;
curr_ace->perms = (mode_t)0; curr_ace->perms = (mode_t)0;
DLIST_DEMOTE(ace_list, curr_ace, tmp_ace); DLIST_DEMOTE(ace_list, curr_ace, canon_ace *);
continue; continue;
} }
@ -1778,13 +1776,12 @@ static void process_deny_list( canon_ace **pp_ace_list )
curr_ace->attr = ALLOW_ACE; curr_ace->attr = ALLOW_ACE;
curr_ace->perms = (new_perms & ~curr_ace->perms); curr_ace->perms = (new_perms & ~curr_ace->perms);
DLIST_DEMOTE(ace_list, curr_ace, tmp_ace); DLIST_DEMOTE(ace_list, curr_ace, canon_ace *);
} }
/* Pass 3 above - deal with deny group entries. */ /* Pass 3 above - deal with deny group entries. */
for (curr_ace = ace_list; curr_ace; curr_ace = curr_ace_next) { for (curr_ace = ace_list; curr_ace; curr_ace = curr_ace_next) {
canon_ace *tmp_ace;
canon_ace *allow_ace_p; canon_ace *allow_ace_p;
canon_ace *allow_everyone_p = NULL; canon_ace *allow_everyone_p = NULL;
@ -1826,8 +1823,7 @@ static void process_deny_list( canon_ace **pp_ace_list )
curr_ace->perms = allow_everyone_p->perms & ~curr_ace->perms; curr_ace->perms = allow_everyone_p->perms & ~curr_ace->perms;
else else
curr_ace->perms = (mode_t)0; curr_ace->perms = (mode_t)0;
DLIST_DEMOTE(ace_list, curr_ace, tmp_ace); DLIST_DEMOTE(ace_list, curr_ace, canon_ace *);
} }
/* Doing this fourth pass allows Windows semantics to be layered /* Doing this fourth pass allows Windows semantics to be layered
@ -2067,7 +2063,7 @@ static void arrange_posix_perms( char *filename, canon_ace **pp_list_head)
} }
if (other_ace) { if (other_ace) {
DLIST_DEMOTE(list_head, other_ace, ace); DLIST_DEMOTE(list_head, other_ace, canon_ace *);
} }
/* We have probably changed the head of the list. */ /* We have probably changed the head of the list. */

View File

@ -75,7 +75,6 @@ static BOOL push_queued_message(char *buf, int msg_len,
struct timeval end_time, struct timeval end_time,
char *private_data, size_t private_len) char *private_data, size_t private_len)
{ {
struct pending_message_list *tmp_msg;
struct pending_message_list *msg; struct pending_message_list *msg;
msg = TALLOC_ZERO_P(NULL, struct pending_message_list); msg = TALLOC_ZERO_P(NULL, struct pending_message_list);
@ -105,7 +104,7 @@ static BOOL push_queued_message(char *buf, int msg_len,
} }
} }
DLIST_ADD_END(deferred_open_queue, msg, tmp_msg); DLIST_ADD_END(deferred_open_queue, msg, struct pending_message_list *);
DEBUG(10,("push_message: pushed message length %u on " DEBUG(10,("push_message: pushed message length %u on "
"deferred_open_queue\n", (unsigned int)msg_len)); "deferred_open_queue\n", (unsigned int)msg_len));

View File

@ -197,7 +197,7 @@ static struct ea_list *get_ea_list_from_file(TALLOC_CTX *mem_ctx, connection_str
if (sizeret) { if (sizeret) {
for (p = ea_namelist; p - ea_namelist < sizeret; p += strlen(p) + 1) { for (p = ea_namelist; p - ea_namelist < sizeret; p += strlen(p) + 1) {
struct ea_list *listp, *tmp; struct ea_list *listp;
if (strnequal(p, "system.", 7) || samba_private_attr_name(p)) if (strnequal(p, "system.", 7) || samba_private_attr_name(p))
continue; continue;
@ -218,7 +218,7 @@ static struct ea_list *get_ea_list_from_file(TALLOC_CTX *mem_ctx, connection_str
(unsigned int)*pea_total_len, dos_ea_name, (unsigned int)*pea_total_len, dos_ea_name,
(unsigned int)listp->ea.value.length )); (unsigned int)listp->ea.value.length ));
} }
DLIST_ADD_END(ea_list_head, listp, tmp); DLIST_ADD_END(ea_list_head, listp, struct ea_list *);
} }
/* Add on 4 for total length. */ /* Add on 4 for total length. */
if (*pea_total_len) { if (*pea_total_len) {
@ -396,7 +396,6 @@ static struct ea_list *read_ea_name_list(TALLOC_CTX *ctx, const char *pdata, siz
size_t offset = 0; size_t offset = 0;
while (offset + 2 < data_size) { while (offset + 2 < data_size) {
struct ea_list *tmp;
struct ea_list *eal = TALLOC_ZERO_P(ctx, struct ea_list); struct ea_list *eal = TALLOC_ZERO_P(ctx, struct ea_list);
unsigned int namelen = CVAL(pdata,offset); unsigned int namelen = CVAL(pdata,offset);
@ -418,7 +417,7 @@ static struct ea_list *read_ea_name_list(TALLOC_CTX *ctx, const char *pdata, siz
} }
offset += (namelen + 1); /* Go past the name + terminating zero. */ offset += (namelen + 1); /* Go past the name + terminating zero. */
DLIST_ADD_END(ea_list_head, eal, tmp); DLIST_ADD_END(ea_list_head, eal, struct ea_list *);
DEBUG(10,("read_ea_name_list: read ea name %s\n", eal->ea.name)); DEBUG(10,("read_ea_name_list: read ea name %s\n", eal->ea.name));
} }
@ -493,14 +492,13 @@ static struct ea_list *read_ea_list(TALLOC_CTX *ctx, const char *pdata, size_t d
size_t bytes_used = 0; size_t bytes_used = 0;
while (offset < data_size) { while (offset < data_size) {
struct ea_list *tmp;
struct ea_list *eal = read_ea_list_entry(ctx, pdata + offset, data_size - offset, &bytes_used); struct ea_list *eal = read_ea_list_entry(ctx, pdata + offset, data_size - offset, &bytes_used);
if (!eal) { if (!eal) {
return NULL; return NULL;
} }
DLIST_ADD_END(ea_list_head, eal, tmp); DLIST_ADD_END(ea_list_head, eal, struct ea_list *);
offset += bytes_used; offset += bytes_used;
} }

View File

@ -720,7 +720,6 @@ TDB_LIST_NODE *tdb_search_keys(TDB_CONTEXT *tdb, const char* pattern)
TDB_DATA key, next; TDB_DATA key, next;
TDB_LIST_NODE *list = NULL; TDB_LIST_NODE *list = NULL;
TDB_LIST_NODE *rec = NULL; TDB_LIST_NODE *rec = NULL;
TDB_LIST_NODE *tmp = NULL;
for (key = tdb_firstkey(tdb); key.dptr; key = next) { for (key = tdb_firstkey(tdb); key.dptr; key = next) {
/* duplicate key string to ensure null-termination */ /* duplicate key string to ensure null-termination */
@ -741,7 +740,7 @@ TDB_LIST_NODE *tdb_search_keys(TDB_CONTEXT *tdb, const char* pattern)
rec->node_key = key; rec->node_key = key;
DLIST_ADD_END(list, rec, tmp); DLIST_ADD_END(list, rec, TDB_LIST_NODE *);
DEBUG(18, ("checking %s matched pattern %s\n", key_str, pattern)); DEBUG(18, ("checking %s matched pattern %s\n", key_str, pattern));
} else { } else {