2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-31 14:25:41 +00:00

Add hash_foreach, et al.

This commit is contained in:
Ted Lemon
2000-06-06 23:46:37 +00:00
parent 0a1dfb6514
commit d0411fbd4d
3 changed files with 39 additions and 2 deletions

View File

@@ -1521,6 +1521,7 @@ void delete_hash_entry PROTO ((struct hash_table *, const unsigned char *,
unsigned, const char *, int));
int hash_lookup PROTO ((hashed_object_t **, struct hash_table *,
const unsigned char *, unsigned, const char *, int));
int hash_foreach (struct hash_table *, hash_foreach_func);
int casecmp (const void *s, const void *t, unsigned long len);
HASH_FUNCTIONS_DECL (group, const char *, struct group_object)
HASH_FUNCTIONS_DECL (universe, const char *, struct universe)
@@ -2133,6 +2134,8 @@ void uid_hash_delete PROTO ((struct lease *));
void hw_hash_add PROTO ((struct lease *));
void hw_hash_delete PROTO ((struct lease *));
void write_leases PROTO ((void));
int lease_enqueue (struct lease *);
void lease_instantiate (const unsigned char *, unsigned, struct lease *);
void expire_all_pools PROTO ((void));
void dump_subnets PROTO ((void));
HASH_FUNCTIONS_DECL (lease, const unsigned char *, struct lease)
@@ -2205,6 +2208,8 @@ isc_result_t dhcp_failover_set_state (dhcp_failover_state_t *,
int dhcp_failover_pool_rebalance (dhcp_failover_state_t *);
int dhcp_failover_pool_check (struct pool *);
int dhcp_failover_state_pool_check (dhcp_failover_state_t *);
void dhcp_failover_timeout (void *);
void dhcp_failover_send_contact (void *);
isc_result_t dhcp_failover_send_updates (dhcp_failover_state_t *);
int dhcp_failover_queue_update (struct lease *, int);
void dhcp_failover_ack_queue_remove (dhcp_failover_state_t *, struct lease *);

View File

@@ -48,6 +48,8 @@ typedef struct {
int foo;
} hashed_object_t;
typedef void (*hash_foreach_func) (const unsigned char *,
unsigned, hashed_object_t *);
typedef int (*hash_reference) (hashed_object_t **, hashed_object_t *,
const char *, int);
typedef int (*hash_dereference) (hashed_object_t **, const char *, int);
@@ -82,7 +84,10 @@ void name##_hash_add (struct hash_table *, bufarg, unsigned, type *, \
void name##_hash_delete (struct hash_table *, bufarg, unsigned, \
const char *, int); \
int name##_hash_lookup (type **, struct hash_table *, bufarg, unsigned, \
const char *, int);
const char *, int); \
int name##_hash_foreach (struct hash_table *, \
void (*) (bufarg, unsigned, type *));
#define HASH_FUNCTIONS(name, bufarg, type) \
void name##_hash_add (struct hash_table *table, \
@@ -106,6 +111,12 @@ int name##_hash_lookup (type **ptr, struct hash_table *table, \
{ \
return hash_lookup ((hashed_object_t **)ptr, table, \
(const unsigned char *)buf, len, file, line); \
} \
\
int name##_hash_foreach (struct hash_table *table, \
void (*func) (bufarg, unsigned, type *)) \
{ \
return hash_foreach (table, (hash_foreach_func)func); \
}