gluon/package/gluon-ebtables-limit-arp/src/addr_store.h

34 lines
738 B
C
Raw Normal View History

/*
* Copyright (c) 2017 Linus Lüssing <linus.luessing@c0d3.blue>
*
* SPDX-License-Identifier: GPL-2.0+
* License-Filename: LICENSE
*/
#ifndef _ADDR_STORE_H_
#define _ADDR_STORE_H_
#define ADDR_STORE_NUM_BUCKETS 32
struct addr_list {
struct addr_list *next;
int tic;
char addr[0];
};
struct addr_store {
struct addr_list *buckets[ADDR_STORE_NUM_BUCKETS];
size_t addr_len;
void (*destructor)(struct addr_list *);
char *(*ntoa)(void *);
};
int addr_store_init(size_t addr_len,
void (*destructor)(struct addr_list *),
char *(*ntoa)(void *),
struct addr_store *store);
int addr_store_add(void *addr, struct addr_store *store);
void addr_store_cleanup(struct addr_store *store);
#endif /* _ADDR_STORE_H_ */