namecache redesign

tridge at tridge at
Fri Aug 30 17:00:01 GMT 2002


> How about keeping basically the same API in namecache.c (i.e expiry
> based on time_t) but with an appropriate key prefix as you suggest?

What I'd like to see is a lib/gencache.c module that provides a string
based cache. So all cache entries would have string keys and string

key: NBT/name#1c

then namecache.c would just call routines in gencache.c to provide
convenient wrapper routines that convert to/from "struct in_addr"

I also think we need management tools in net. eg:

  net cache list
  net cache delete NBT/name#1c
  net cache flush

even better if 'net cache delete' could take wildcards (using
fnmatch()). So you can do:

  net cache delete NBT/*

the C API in gencache.c could be:

BOOL gencache_add(const char *key, const char *value, time_t timeout);
BOOL gencache_del(const char *key);
BOOL gencache_get(const char *key, char **value, time_t *timeout);
void gencache_iterate(void (*fn)(const char *key, const char *value, time_t timeout));

plus startup/shutdown functions:

BOOL gencache_startup(void);
BOOL gencache_shutdown(void);

sound ok?

mimir, do you feel like taking this on?

More information about the samba-technical mailing list