23#ifdef REDIS_SOCKET_PATH
24#define KB_PATH_DEFAULT REDIS_SOCKET_PATH
26#define KB_PATH_DEFAULT "/run/redis/redis.sock"
122 char *(*kb_get_str) (
kb_t,
const char *);
138 GSList *(*kb_get_nvt_oids) (
kb_t);
146 char *(*kb_pop_str) (
kb_t,
const char *);
151 struct kb_item *(*kb_get_all) (
kb_t,
const char *);
156 struct kb_item *(*kb_get_pattern) (
kb_t,
const char *);
517 int expire,
size_t len,
int pos)
689static inline GSList *
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:617
static int kb_del_items(kb_t kb, const char *name)
Delete all entries under a given name.
Definition kb.h:708
static int kb_item_add_str_unique(kb_t kb, const char *name, const char *str, size_t len, int pos)
Insert (append) a new unique entry under a given name.
Definition kb.h:490
static int kb_nvt_add(kb_t kb, const nvti_t *nvt, const char *filename)
Insert a new nvt.
Definition kb.h:636
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:468
kb_nvt_pos
Possible positions of nvt values in cache list.
Definition kb.h:45
@ NVT_FAMILY_POS
Definition kb.h:58
@ NVT_CATEGORY_POS
Definition kb.h:57
@ NVT_TIMESTAMP_POS
Definition kb.h:60
@ NVT_NAME_POS
Definition kb.h:59
@ NVT_TAGS_POS
Definition kb.h:53
@ NVT_BIDS_POS
Definition kb.h:55
@ NVT_EXCLUDED_KEYS_POS
Definition kb.h:49
@ NVT_REQUIRED_PORTS_POS
Definition kb.h:51
@ NVT_REQUIRED_UDP_PORTS_POS
Definition kb.h:50
@ NVT_FILENAME_POS
Definition kb.h:46
@ NVT_OID_POS
Definition kb.h:61
@ NVT_DEPENDENCIES_POS
Definition kb.h:52
@ NVT_CVES_POS
Definition kb.h:54
@ NVT_REQUIRED_KEYS_POS
Definition kb.h:47
@ NVT_XREFS_POS
Definition kb.h:56
@ NVT_MANDATORY_KEYS_POS
Definition kb.h:48
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:409
static int kb_new(kb_t *kb, const char *kb_path)
Initialize a new Knowledge Base object.
Definition kb.h:243
static size_t kb_item_count(kb_t kb, const char *pattern)
Count all items stored under a given pattern.
Definition kb.h:448
static int kb_delete(kb_t kb)
Delete all entries and release ownership on the namespace.
Definition kb.h:296
static int kb_item_get_int(kb_t kb, const char *name)
Get a single KB integer item.
Definition kb.h:352
struct kb * kb_t
type abstraction to hide KB internals.
Definition kb.h:98
static nvti_t * kb_nvt_get_all(kb_t kb, const char *oid)
Get a full NVT.
Definition kb.h:673
static kb_t kb_find(const char *kb_path, const char *key)
Find an existing Knowledge Base object with key.
Definition kb.h:280
static GSList * kb_nvt_get_oids(kb_t kb)
Get list of NVT OIDs.
Definition kb.h:690
static char * kb_item_pop_str(kb_t kb, const char *name)
Pop a single KB string item.
Definition kb.h:428
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:538
static int kb_add_int_unique_volatile(kb_t kb, const char *name, int val, int expire)
Insert (append) a new unique and volatile entry under a given name.
Definition kb.h:597
static char * kb_nvt_get(kb_t kb, const char *oid, enum kb_nvt_pos position)
Get field of a NVT.
Definition kb.h:655
void kb_item_free(struct kb_item *)
Release a KB item (or a list).
Definition kb.c:639
static int kb_save(kb_t kb)
Save all the KB's content.
Definition kb.h:725
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:316
static int kb_add_str_unique_volatile(kb_t kb, const char *name, const char *str, int expire, size_t len, int pos)
Insert (append) a new unique and volatile entry under a given name.
Definition kb.h:516
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:557
static int kb_lnk_reset(kb_t kb)
Reset connection to the KB. This is called after each fork() to make.
Definition kb.h:747
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:390
const struct kb_operations * KBDefaultOperations
Default KB operations. No selection mechanism is provided yet since there's only one implementation (...
Definition kb.c:1877
kb_item_type
Possible type of a kb_item.
Definition kb.h:33
@ KB_TYPE_INT
Definition kb.h:35
@ KB_TYPE_CNT
Definition kb.h:38
@ KB_TYPE_UNSPEC
Definition kb.h:34
@ KB_TYPE_STR
Definition kb.h:36
static int kb_flush(kb_t kb, const char *except)
Flush all the KB's content. Delete all namespaces.
Definition kb.h:769
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:371
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:576
static char * kb_item_get_str(kb_t kb, const char *name)
Get a single KB string item.
Definition kb.h:334
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:263
static int kb_get_kb_index(kb_t kb)
Return the kb index.
Definition kb.h:790
Protos and data structures for NVT Information data sets.
Knowledge base item (defined by name, type (int/char*) and value). Implemented as a singly linked lis...
Definition kb.h:69
char name[]
Definition kb.h:82
int v_int
Definition kb.h:75
enum kb_item_type type
Definition kb.h:70
char * v_str
Definition kb.h:74
struct kb_item * next
Definition kb.h:79
size_t len
Definition kb.h:78
size_t namelen
Definition kb.h:81
KB interface. Functions provided by an implementation. All functions have to be provided,...
Definition kb.h:107
struct kb_item *(* kb_get_single)(kb_t, const char *, enum kb_item_type)
Definition kb.h:118
int(* kb_set_int)(kb_t, const char *, int)
Definition kb.h:202
int(* kb_flush)(kb_t, const char *)
Definition kb.h:217
int(* kb_get_int)(kb_t, const char *)
Definition kb.h:126
int(* kb_add_str)(kb_t, const char *, const char *, size_t)
Definition kb.h:166
nvti_t *(* kb_get_nvt_all)(kb_t, const char *)
Definition kb.h:134
int(* kb_add_str_unique_volatile)(kb_t, const char *, const char *, int, size_t, int)
Definition kb.h:176
char *(* kb_get_nvt)(kb_t, const char *, enum kb_nvt_pos)
Definition kb.h:130
GSList *(* kb_get_nvt_oids)(kb_t)
Definition kb.h:138
int(* kb_add_nvt)(kb_t, const nvti_t *, const char *)
Definition kb.h:207
struct kb_item *(* kb_get_pattern)(kb_t, const char *)
Definition kb.h:156
int(* kb_lnk_reset)(kb_t)
Definition kb.h:216
int(* kb_new)(kb_t *, const char *)
Definition kb.h:109
int(* kb_push_str)(kb_t, const char *, const char *)
Definition kb.h:142
int(* kb_delete)(kb_t)
Definition kb.h:110
char *(* kb_get_str)(kb_t, const char *)
Definition kb.h:122
size_t(* kb_count)(kb_t, const char *)
Definition kb.h:161
char *(* kb_pop_str)(kb_t, const char *)
Definition kb.h:146
int(* kb_add_int_unique)(kb_t, const char *, int)
Definition kb.h:192
int(* kb_add_str_unique)(kb_t, const char *, const char *, size_t, int)
Definition kb.h:171
int(* kb_get_kb_index)(kb_t)
Definition kb.h:218
int(* kb_add_int)(kb_t, const char *, int)
Definition kb.h:187
kb_t(* kb_direct_conn)(const char *, const int)
Definition kb.h:112
int(* kb_save)(kb_t)
Definition kb.h:215
kb_t(* kb_find)(const char *, const char *)
Definition kb.h:111
int(* kb_set_str)(kb_t, const char *, const char *, size_t)
Definition kb.h:182
int(* kb_del_items)(kb_t, const char *)
Definition kb.h:212
int(* kb_add_int_unique_volatile)(kb_t, const char *, int, int)
Definition kb.h:197
struct kb_item *(* kb_get_all)(kb_t, const char *)
Definition kb.h:151
Top-level KB. This is to be inherited by KB implementations.
Definition kb.h:91
const struct kb_operations * kb_ops
Definition kb.h:92
The structure of a information record that corresponds to a NVT.
Definition nvti.c:360