Greenbone Vulnerability Management Libraries
11.0.1
|
Go to the documentation of this file.
28 #include "../base/nvti.h"
32 #include <sys/types.h>
37 #ifdef REDIS_SOCKET_PATH
38 #define KB_PATH_DEFAULT REDIS_SOCKET_PATH
40 #define KB_PATH_DEFAULT "/run/redis/redis.sock"
137 char *(*kb_get_str) (
kb_t,
const char *);
153 GSList *(*kb_get_nvt_oids) (
kb_t);
161 char *(*kb_pop_str) (
kb_t,
const char *);
166 struct kb_item *(*kb_get_all) (
kb_t,
const char *);
171 struct kb_item *(*kb_get_pattern) (
kb_t,
const char *);
278 kb_find (
const char *kb_path,
const char *key)
599 static inline GSList *
@ NVT_EXCLUDED_KEYS_POS
Definition: kb.h:63
@ NVT_BIDS_POS
Definition: kb.h:69
struct kb_item *(* kb_get_single)(kb_t, const char *, enum kb_item_type)
Definition: kb.h:133
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:395
static int kb_get_kb_index(kb_t kb)
Return the kb index.
Definition: kb.h:690
static kb_t kb_find(const char *kb_path, const char *key)
Find an existing Knowledge Base object with key.
Definition: kb.h:278
static char * kb_item_get_str(kb_t kb, const char *name)
Get a single KB string item.
Definition: kb.h:327
int(* kb_lnk_reset)(kb_t)
Definition: kb.h:220
kb_t(* kb_direct_conn)(const char *, const int)
Definition: kb.h:127
@ NVT_NAME_POS
Definition: kb.h:74
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
KB interface. Functions provided by an implementation. All functions have to be provided,...
Definition: kb.h:122
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:651
int(* kb_save)(kb_t)
Definition: kb.h:219
int(* kb_get_kb_index)(kb_t)
Definition: kb.h:222
char name[0]
Definition: kb.h:97
void kb_item_free(struct kb_item *)
Release a KB item (or a list).
Definition: kb.c:537
static int kb_save(kb_t kb)
Save all the KB's content.
Definition: kb.h:631
size_t len
Definition: kb.h:93
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:310
static nvti_t * kb_nvt_get_all(kb_t kb, const char *oid)
Get a full NVT.
Definition: kb.h:585
int(* kb_add_int_unique)(kb_t, const char *, int)
Definition: kb.h:201
kb_t(* kb_find)(const char *, const char *)
Definition: kb.h:126
@ NVT_FILENAME_POS
Definition: kb.h:60
int(* kb_set_int)(kb_t, const char *, int)
Definition: kb.h:206
int(* kb_flush)(kb_t, const char *)
Definition: kb.h:221
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:466
@ NVT_TIMEOUT_POS
Definition: kb.h:72
static GSList * kb_nvt_get_oids(kb_t kb)
Get list of NVT OIDs.
Definition: kb.h:600
int(* kb_del_items)(kb_t, const char *)
Definition: kb.h:216
Knowledge base item (defined by name, type (int/char*) and value). Implemented as a singly linked lis...
Definition: kb.h:84
nvti_t *(* kb_get_nvt_all)(kb_t, const char *)
Definition: kb.h:149
static int kb_item_get_int(kb_t kb, const char *name)
Get a single KB integer item.
Definition: kb.h:344
int(* kb_add_int)(kb_t, const char *, int)
Definition: kb.h:196
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:518
The structure of a information record that corresponds to a NVT.
Definition: nvti.c:268
@ NVT_REQUIRED_UDP_PORTS_POS
Definition: kb.h:64
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:484
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:448
char *(* kb_get_str)(kb_t, const char *)
Definition: kb.h:137
@ NVT_TIMESTAMP_POS
Definition: kb.h:75
int v_int
Definition: kb.h:90
char * v_str
Definition: kb.h:89
@ NVT_OID_POS
Definition: kb.h:76
@ KB_TYPE_CNT
Definition: kb.h:52
int(* kb_get_int)(kb_t, const char *)
Definition: kb.h:141
@ NVT_XREFS_POS
Definition: kb.h:70
int(* kb_add_nvt)(kb_t, const nvti_t *, const char *)
Definition: kb.h:211
@ NVT_CATEGORY_POS
Definition: kb.h:71
@ NVT_DEPENDENCIES_POS
Definition: kb.h:66
char *(* kb_pop_str)(kb_t, const char *)
Definition: kb.h:161
const struct kb_operations * kb_ops
Definition: kb.h:107
@ KB_TYPE_STR
Definition: kb.h:50
struct kb_item * next
Definition: kb.h:94
int(* kb_delete)(kb_t)
Definition: kb.h:125
@ NVT_FAMILY_POS
Definition: kb.h:73
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:378
static int kb_flush(kb_t kb, const char *except)
Flush all the KB's content. Delete all namespaces.
Definition: kb.h:671
struct kb_item *(* kb_get_all)(kb_t, const char *)
Definition: kb.h:166
GSList *(* kb_get_nvt_oids)(kb_t)
Definition: kb.h:153
Top-level KB. This is to be inherited by KB implementations.
Definition: kb.h:106
int(* kb_set_str)(kb_t, const char *, const char *, size_t)
Definition: kb.h:191
static int kb_del_items(kb_t kb, const char *name)
Delete all entries under a given name.
Definition: kb.h:616
const struct kb_operations * KBDefaultOperations
Default KB operations. No selection mechanism is provided yet since there's only one implementation (...
Definition: kb.c:1614
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:361
@ NVT_CVES_POS
Definition: kb.h:68
static char * kb_item_pop_str(kb_t kb, const char *name)
Pop a single KB string item.
Definition: kb.h:412
@ NVT_MANDATORY_KEYS_POS
Definition: kb.h:62
int(* kb_push_str)(kb_t, const char *, const char *)
Definition: kb.h:157
int(* kb_add_str_unique)(kb_t, const char *, const char *, size_t)
Definition: kb.h:186
kb_item_type
Possible type of a kb_item.
Definition: kb.h:47
int(* kb_new)(kb_t *, const char *)
Definition: kb.h:124
static int kb_delete(kb_t kb)
Delete all entries and release ownership on the namespace.
Definition: kb.h:292
static int kb_nvt_add(kb_t kb, const nvti_t *nvt, const char *filename)
Insert a new nvt.
Definition: kb.h:552
size_t namelen
Definition: kb.h:96
static size_t kb_item_count(kb_t kb, const char *pattern)
Count all items stored under a given pattern.
Definition: kb.h:430
@ NVT_REQUIRED_KEYS_POS
Definition: kb.h:61
struct kb_item *(* kb_get_pattern)(kb_t, const char *)
Definition: kb.h:171
static int kb_new(kb_t *kb, const char *kb_path)
Initialize a new Knowledge Base object.
Definition: kb.h:245
char *(* kb_get_nvt)(kb_t, const char *, enum kb_nvt_pos)
Definition: kb.h:145
@ NVT_TAGS_POS
Definition: kb.h:67
@ KB_TYPE_UNSPEC
Definition: kb.h:48
static char * kb_nvt_get(kb_t kb, const char *oid, enum kb_nvt_pos position)
Get field of a NVT.
Definition: kb.h:569
@ KB_TYPE_INT
Definition: kb.h:49
struct kb * kb_t
type abstraction to hide KB internals.
Definition: kb.h:113
@ NVT_REQUIRED_PORTS_POS
Definition: kb.h:65
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:535
int(* kb_add_str)(kb_t, const char *, const char *, size_t)
Definition: kb.h:181
kb_nvt_pos
Possible positions of nvt values in cache list.
Definition: kb.h:59
enum kb_item_type type
Definition: kb.h:85
size_t(* kb_count)(kb_t, const char *)
Definition: kb.h:176
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:501