32 #include "../base/nvti.h" 40 #define KB_PATH_DEFAULT "/tmp/redis.sock" 121 int (*kb_new) (kb_t *,
const char *);
123 kb_t (*kb_find) (
const char *,
const char *);
127 char *(*kb_get_str) (
kb_t,
const char *);
128 int (*kb_get_int) (
kb_t,
const char *);
132 int (*kb_add_str) (
kb_t,
const char *,
const char *);
133 int (*kb_set_str) (
kb_t,
const char *,
const char *);
134 int (*kb_add_int) (
kb_t,
const char *, int);
135 int (*kb_set_int) (
kb_t,
const char *, int);
137 int (*kb_del_items) (
kb_t,
const char *);
141 int (*kb_flush) (
kb_t,
const char *);
162 static inline int kb_new (kb_t *
kb,
const char *kb_path)
165 assert (KBDefaultOperations);
166 assert (KBDefaultOperations->
kb_new);
170 return KBDefaultOperations->
kb_new (kb, kb_path);
179 static inline kb_t
kb_find (
const char *kb_path,
const char *key)
181 assert (KBDefaultOperations);
182 assert (KBDefaultOperations->
kb_find);
184 return KBDefaultOperations->
kb_find (kb_path, key);
195 kb_nvt_add (kb_t kb,
const nvti_t *nvt,
const char *filename)
212 kb_nvt_get (kb_t kb,
const char *
oid,
enum kb_nvt_pos position)
261 kb_item_get_str (kb_t kb,
const char *name)
278 kb_item_get_int (kb_t kb,
const char *name)
295 kb_item_get_all (kb_t kb,
const char *name)
312 kb_item_get_pattern (kb_t kb,
const char *pattern)
329 kb_item_add_str (kb_t kb,
const char *name,
const char *str)
346 kb_item_set_str (kb_t kb,
const char *name,
const char *str)
363 kb_item_add_int (kb_t kb,
const char *name,
int val)
380 kb_item_set_int (kb_t kb,
const char *name,
int val)
396 kb_del_items (kb_t kb,
const char *name)
411 static inline int kb_lnk_reset (kb_t kb)
430 static inline int kb_flush (kb_t kb,
const char *except)
kb_nvt_pos
Possible positions of nvt values in cache list.
Definition: kb.h:57
const struct kb_operations * KBDefaultOperations
Default KB operations. No selection mechanism is provided yet since there's only one implementation (...
Definition: kb_redis.c:1203
struct kb_item *(* kb_get_all)(kb_t, const char *)
Definition: kb.h:130
void kb_item_free(struct kb_item *)
Release a KB item (or a list).
Definition: kb_redis.c:501
const char * val
Definition: nasl_init.c:525
The structure of a information record that corresponds to a NVT.
Definition: nvti.h:64
Knowledge base item (defined by name, type (int/char*) and value). Implemented as a singly linked lis...
Definition: kb.h:81
struct kb_item * next
Definition: kb.h:91
const char * oid
Definition: nasl_builtin_find_service.c:55
enum kb_item_type type
Definition: kb.h:83
KB interface. Functions provided by an implementation. All functions have to be provided, there is no default/fallback. These functions should be called via the corresponding static inline wrappers below. See the wrappers for the documentation.
Definition: kb.h:118
int(* kb_delete)(kb_t)
Definition: kb.h:122
struct kb_item *(* kb_get_single)(kb_t, const char *, enum kb_item_type)
Definition: kb.h:126
int(* kb_get_int)(kb_t, const char *)
Definition: kb.h:128
int(* kb_set_str)(kb_t, const char *, const char *)
Definition: kb.h:133
int(* kb_lnk_reset)(kb_t)
Definition: kb.h:140
int(* kb_del_items)(kb_t, const char *)
Definition: kb.h:137
int(* kb_flush)(kb_t, const char *)
Definition: kb.h:141
Top-level KB. This is to be inherited by KB implementations.
Definition: kb.h:102
const struct kb_operations * kb_ops
Definition: kb.h:104
struct kb_item *(* kb_get_pattern)(kb_t, const char *)
Definition: kb.h:131
int(* kb_add_int)(kb_t, const char *, int)
Definition: kb.h:134
char *(* kb_get_nvt)(kb_t, const char *, enum kb_nvt_pos)
Definition: kb.h:129
int v_int
Definition: kb.h:88
kb_item_type
Possible type of a kb_item.
Definition: kb.h:46
size_t namelen
Definition: kb.h:93
int(* kb_add_nvt)(kb_t, const nvti_t *, const char *)
Definition: kb.h:136
int(* kb_set_int)(kb_t, const char *, int)
Definition: kb.h:135
kb_t(* kb_find)(const char *, const char *)
Definition: kb.h:123
struct kb * kb_t
type abstraction to hide KB internals.
Definition: kb.h:110
char name[0]
Definition: kb.h:94
char *(* kb_get_str)(kb_t, const char *)
Definition: kb.h:127
int(* kb_add_str)(kb_t, const char *, const char *)
Definition: kb.h:132
char * v_str
Definition: kb.h:87
int(* kb_new)(kb_t *, const char *)
Definition: kb.h:121