28 #include "../base/nvti.h" 32 #include <sys/types.h> 37 #define KB_PATH_DEFAULT "/tmp/redis.sock" 133 char *(*kb_get_str) (
kb_t,
const char *);
149 GSList *(*kb_get_nvt_oids) (
kb_t);
157 char *(*kb_pop_str) (
kb_t,
const char *);
274 kb_find (
const char *kb_path,
const char *key)
595 static inline GSList *
static int kb_flush(kb_t kb, const char *except)
Flush all the KB's content. Delete all namespaces.
Definition: kb.h:667
kb_nvt_pos
Possible positions of nvt values in cache list.
Definition: kb.h:54
nvti_t *(* kb_get_nvt_all)(kb_t, const char *)
Definition: kb.h:145
static int kb_item_push_str(kb_t kb, const char *name, const char *value)
Push a new value under a given key.
Definition: kb.h:391
const struct kb_operations * KBDefaultOperations
Default KB operations. No selection mechanism is provided yet since there's only one implementation (...
Definition: kb.c:1623
struct kb_item *(* kb_get_all)(kb_t, const char *)
Definition: kb.h:162
void kb_item_free(struct kb_item *)
Release a KB item (or a list).
Definition: kb.c:608
static int kb_delete(kb_t kb)
Delete all entries and release ownership on the namespace.
Definition: kb.h:288
static int kb_item_set_int(kb_t kb, const char *name, int val)
Set (replace) a new entry under a given name.
Definition: kb.h:531
static int kb_item_get_int(kb_t kb, const char *name)
Get a single KB integer item.
Definition: kb.h:340
int(* kb_push_str)(kb_t, const char *, const char *)
Definition: kb.h:153
kb_t(* kb_direct_conn)(const char *, const int)
Definition: kb.h:123
The structure of a information record that corresponds to a NVT.
Definition: nvti.h:62
Knowledge base item (defined by name, type (int/char*) and value). Implemented as a singly linked lis...
Definition: kb.h:79
struct kb_item * next
Definition: kb.h:90
int(* kb_set_str)(kb_t, const char *, const char *, size_t)
Definition: kb.h:187
static int kb_item_add_int(kb_t kb, const char *name, int val)
Insert (append) a new entry under a given name.
Definition: kb.h:497
enum kb_item_type type
Definition: kb.h:81
KB interface. Functions provided by an implementation. All functions have to be provided,...
Definition: kb.h:117
static struct kb_item * kb_item_get_all(kb_t kb, const char *name)
Get all items stored under a given name.
Definition: kb.h:357
static nvti_t * kb_nvt_get_all(kb_t kb, const char *oid)
Get a full NVT.
Definition: kb.h:581
char *(* kb_pop_str)(kb_t, const char *)
Definition: kb.h:157
int(* kb_delete)(kb_t)
Definition: kb.h:121
struct kb_item *(* kb_get_single)(kb_t, const char *, enum kb_item_type)
Definition: kb.h:129
int(* kb_get_int)(kb_t, const char *)
Definition: kb.h:137
static int kb_get_kb_index(kb_t kb)
Return the kb index.
Definition: kb.h:686
int(* kb_lnk_reset)(kb_t)
Definition: kb.h:216
static int kb_new(kb_t *kb, const char *kb_path)
Initialize a new Knowledge Base object.
Definition: kb.h:241
int(* kb_del_items)(kb_t, const char *)
Definition: kb.h:212
int(* kb_add_str_unique)(kb_t, const char *, const char *, size_t)
Definition: kb.h:182
int(* kb_flush)(kb_t, const char *)
Definition: kb.h:217
int(* kb_get_kb_index)(kb_t)
Definition: kb.h:218
Top-level KB. This is to be inherited by KB implementations.
Definition: kb.h:101
const struct kb_operations * kb_ops
Definition: kb.h:103
struct kb_item *(* kb_get_pattern)(kb_t, const char *)
Definition: kb.h:167
int(* kb_add_int)(kb_t, const char *, int)
Definition: kb.h:192
char *(* kb_get_nvt)(kb_t, const char *, enum kb_nvt_pos)
Definition: kb.h:141
static int kb_del_items(kb_t kb, const char *name)
Delete all entries under a given name.
Definition: kb.h:612
static int kb_nvt_add(kb_t kb, const nvti_t *nvt, const char *filename)
Insert a new nvt.
Definition: kb.h:548
static struct kb_item * kb_item_get_pattern(kb_t kb, const char *pattern)
Get all items stored under a given pattern.
Definition: kb.h:374
size_t len
Definition: kb.h:89
static int kb_item_add_int_unique(kb_t kb, const char *name, int val)
Insert (append) a new unique entry under a given name.
Definition: kb.h:514
static struct kb_item * kb_item_get_single(kb_t kb, const char *name, enum kb_item_type type)
Get a single KB element.
Definition: kb.h:306
static int kb_item_add_str(kb_t kb, const char *name, const char *str, size_t len)
Insert (append) a new entry under a given name.
Definition: kb.h:444
static GSList * kb_nvt_get_oids(kb_t kb)
Get list of NVT OIDs.
Definition: kb.h:596
int v_int
Definition: kb.h:86
kb_item_type
Possible type of a kb_item.
Definition: kb.h:42
static char * kb_item_get_str(kb_t kb, const char *name)
Get a single KB string item.
Definition: kb.h:323
static int kb_item_add_str_unique(kb_t kb, const char *name, const char *str, size_t len)
Insert (append) a new unique entry under a given name.
Definition: kb.h:462
size_t namelen
Definition: kb.h:92
static size_t kb_item_count(kb_t kb, const char *pattern)
Count all items stored under a given pattern.
Definition: kb.h:426
int(* kb_add_nvt)(kb_t, const nvti_t *, const char *)
Definition: kb.h:207
int(* kb_set_int)(kb_t, const char *, int)
Definition: kb.h:202
int(* kb_add_str)(kb_t, const char *, const char *, size_t)
Definition: kb.h:177
static char * kb_item_pop_str(kb_t kb, const char *name)
Pop a single KB string item.
Definition: kb.h:408
kb_t(* kb_find)(const char *, const char *)
Definition: kb.h:122
static kb_t kb_direct_conn(const char *kb_path, const int kb_index)
Connect to a Knowledge Base object which has the given kb_index.
Definition: kb.h:259
int(* kb_add_int_unique)(kb_t, const char *, int)
Definition: kb.h:197
struct kb * kb_t
type abstraction to hide KB internals.
Definition: kb.h:109
char name[0]
Definition: kb.h:93
static int kb_save(kb_t kb)
Save all the KB's content.
Definition: kb.h:627
static int kb_lnk_reset(kb_t kb)
Reset connection to the KB. This is called after each fork() to make sure connections aren't shared b...
Definition: kb.h:647
GSList *(* kb_get_nvt_oids)(kb_t)
Definition: kb.h:149
char *(* kb_get_str)(kb_t, const char *)
Definition: kb.h:133
static kb_t kb_find(const char *kb_path, const char *key)
Find an existing Knowledge Base object with key.
Definition: kb.h:274
static char * kb_nvt_get(kb_t kb, const char *oid, enum kb_nvt_pos position)
Get field of a NVT.
Definition: kb.h:565
size_t(* kb_count)(kb_t, const char *)
Definition: kb.h:172
char * v_str
Definition: kb.h:85
static int kb_item_set_str(kb_t kb, const char *name, const char *str, size_t len)
Set (replace) a new entry under a given name.
Definition: kb.h:480
int(* kb_new)(kb_t *, const char *)
Definition: kb.h:120
int(* kb_save)(kb_t)
Definition: kb.h:215