Greenbone Vulnerability Management Libraries
10.0.0
|
Implementation of API to handle NVT Info Cache. More...
#include "nvticache.h"
#include "kb.h"
#include <assert.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <time.h>
Go to the source code of this file.
Macros | |
#define | G_LOG_DOMAIN "lib nvticache" |
GLib log domain. More... | |
Functions | |
int | nvticache_initialized (void) |
Return whether the nvt cache is initialized. More... | |
int | nvticache_init (const char *src, const char *kb_path) |
Initializes the nvti cache. More... | |
kb_t | nvticache_get_kb (void) |
Return the nvticache kb. More... | |
int | nvticache_check (const gchar *filename) |
Check if the nvt for the given filename exists in cache. More... | |
void | nvticache_reset () |
Reset connection to KB. To be called after a fork(). More... | |
static char * | nvt_feed_version () |
Determine the version of the NVT feed. More... | |
void | nvticache_save () |
Save the nvticache to disk. More... | |
int | nvticache_add (const nvti_t *nvti, const char *filename) |
Add a NVT Information to the cache. More... | |
char * | nvticache_get_src (const char *oid) |
Get the full source filename of an OID. More... | |
char * | nvticache_get_oid (const char *filename) |
Get the OID from a plugin filename. More... | |
char * | nvticache_get_filename (const char *oid) |
Get the filename from a plugin OID. More... | |
char * | nvticache_get_required_keys (const char *oid) |
Get the Required Keys from a plugin OID. More... | |
char * | nvticache_get_mandatory_keys (const char *oid) |
Get the Mandatory Keys from a plugin OID. More... | |
char * | nvticache_get_excluded_keys (const char *oid) |
Get the Excluded Keys from a plugin OID. More... | |
char * | nvticache_get_required_udp_ports (const char *oid) |
Get the Required udp ports from a plugin OID. More... | |
char * | nvticache_get_required_ports (const char *oid) |
Get the Required ports from a plugin OID. More... | |
char * | nvticache_get_dependencies (const char *oid) |
Get the Dependencies from a plugin OID. More... | |
int | nvticache_get_category (const char *oid) |
Get the Category from a plugin OID. More... | |
int | nvticache_get_timeout (const char *oid) |
Get the Timeout from a plugin OID. More... | |
char * | nvticache_get_name (const char *oid) |
Get the name from a plugin OID. More... | |
char * | nvticache_get_cves (const char *oid) |
Get the cves from a plugin OID. More... | |
char * | nvticache_get_bids (const char *oid) |
Get the bids from a plugin OID. More... | |
char * | nvticache_get_xrefs (const char *oid) |
Get the xrefs from a plugin OID. More... | |
char * | nvticache_get_family (const char *oid) |
Get the family from a plugin OID. More... | |
char * | nvticache_get_tags (const char *oid) |
Get the tags from a plugin OID. More... | |
nvti_t * | nvticache_get_nvt (const char *oid) |
Get the nvti from a plugin OID. More... | |
GSList * | nvticache_get_prefs (const char *oid) |
Get the prefs from a plugin OID. More... | |
GSList * | nvticache_get_oids () |
Get the list of nvti OIDs. More... | |
size_t | nvticache_count () |
Get the number of nvt's in the cache. More... | |
void | nvticache_delete (const char *oid) |
Delete NVT from the cache. More... | |
char * | nvticache_feed_version (void) |
Get the NVT feed version. More... | |
int | nvticache_check_feed (void) |
Check if the plugins feed was newer than cached feed. More... | |
Variables | |
char * | src_path = NULL |
kb_t | cache_kb = NULL |
int | cache_saved = 1 |
Implementation of API to handle NVT Info Cache.
This file contains all methods to handle NVT Information Cache (nvticache_t).
The module consequently uses glib datatypes and api for memory management etc.
Definition in file nvticache.c.
#define G_LOG_DOMAIN "lib nvticache" |
GLib log domain.
Definition at line 47 of file nvticache.c.
|
static |
Determine the version of the NVT feed.
Definition at line 148 of file nvticache.c.
References src_path.
Referenced by nvticache_check_feed(), and nvticache_save().
int nvticache_add | ( | const nvti_t * | nvti, |
const char * | filename | ||
) |
Add a NVT Information to the cache.
nvti | The NVT Information to add |
filename | The name of the original NVT without the path to the base location of NVTs (e.g. "scriptname1.nasl" or even "subdir1/subdir2/scriptname2.nasl" ) |
Definition at line 204 of file nvticache.c.
References cache_kb, cache_saved, kb_nvt_add(), nvti_oid(), nvticache_delete(), nvticache_get_filename(), and src_path.
int nvticache_check | ( | const gchar * | filename | ) |
Check if the nvt for the given filename exists in cache.
filename | The name of the original NVT without the path to the base location of NVTs (e.g. "scriptname1.nasl" or even "subdir1/subdir2/scriptname2.nasl" ) |
Definition at line 115 of file nvticache.c.
References cache_kb, kb_nvt_get(), NVT_TIMESTAMP_POS, and src_path.
int nvticache_check_feed | ( | void | ) |
Check if the plugins feed was newer than cached feed.
Definition at line 618 of file nvticache.c.
References cache_kb, kb_item_get_str(), nvt_feed_version(), and NVTICACHE_STR.
size_t nvticache_count | ( | void | ) |
Get the number of nvt's in the cache.
Definition at line 567 of file nvticache.c.
References cache_kb, and kb_item_count().
void nvticache_delete | ( | const char * | oid | ) |
Delete NVT from the cache.
[in] | oid | OID to match. |
Definition at line 579 of file nvticache.c.
References cache_kb, kb_del_items(), and nvticache_get_filename().
Referenced by nvticache_add().
char* nvticache_feed_version | ( | void | ) |
Get the NVT feed version.
Definition at line 607 of file nvticache.c.
References cache_kb, kb_item_get_str(), and NVTICACHE_STR.
char* nvticache_get_bids | ( | const char * | oid | ) |
Get the bids from a plugin OID.
[in] | oid | OID to match. |
Definition at line 448 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_BIDS_POS.
int nvticache_get_category | ( | const char * | oid | ) |
Get the Category from a plugin OID.
[in] | oid | OID to match. |
Definition at line 380 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_CATEGORY_POS.
char* nvticache_get_cves | ( | const char * | oid | ) |
Get the cves from a plugin OID.
[in] | oid | OID to match. |
Definition at line 434 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_CVES_POS.
char* nvticache_get_dependencies | ( | const char * | oid | ) |
Get the Dependencies from a plugin OID.
[in] | oid | OID to match. |
Definition at line 366 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_DEPENDENCIES_POS.
char* nvticache_get_excluded_keys | ( | const char * | oid | ) |
Get the Excluded Keys from a plugin OID.
[in] | oid | OID to match. |
Definition at line 324 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_EXCLUDED_KEYS_POS.
char* nvticache_get_family | ( | const char * | oid | ) |
Get the family from a plugin OID.
[in] | oid | OID to match. |
Definition at line 476 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_FAMILY_POS.
char* nvticache_get_filename | ( | const char * | oid | ) |
Get the filename from a plugin OID.
[in] | oid | OID to match. |
Definition at line 282 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_FILENAME_POS.
Referenced by nvticache_add(), and nvticache_delete().
kb_t nvticache_get_kb | ( | void | ) |
Return the nvticache kb.
Definition at line 98 of file nvticache.c.
References cache_kb.
char* nvticache_get_mandatory_keys | ( | const char * | oid | ) |
Get the Mandatory Keys from a plugin OID.
[in] | oid | OID to match. |
Definition at line 310 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_MANDATORY_KEYS_POS.
char* nvticache_get_name | ( | const char * | oid | ) |
Get the name from a plugin OID.
[in] | oid | OID to match. |
Definition at line 420 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_NAME_POS.
nvti_t* nvticache_get_nvt | ( | const char * | oid | ) |
Get the nvti from a plugin OID.
[in] | oid | OID to match. |
Definition at line 504 of file nvticache.c.
References cache_kb, and kb_nvt_get_all().
char* nvticache_get_oid | ( | const char * | filename | ) |
Get the OID from a plugin filename.
filename | Filename to lookup. |
Definition at line 267 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_OID_POS.
GSList* nvticache_get_oids | ( | void | ) |
Get the list of nvti OIDs.
Definition at line 554 of file nvticache.c.
References cache_kb, and kb_nvt_get_oids().
GSList* nvticache_get_prefs | ( | const char * | oid | ) |
Get the prefs from a plugin OID.
[in] | oid | OID to match. |
Definition at line 518 of file nvticache.c.
References cache_kb, nvtpref::dflt, kb_item_free(), kb_item_get_all(), nvtpref::name, kb_item::next, nvtpref::type, and kb_item::v_str.
char* nvticache_get_required_keys | ( | const char * | oid | ) |
Get the Required Keys from a plugin OID.
[in] | oid | OID to match. |
Definition at line 296 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_REQUIRED_KEYS_POS.
char* nvticache_get_required_ports | ( | const char * | oid | ) |
Get the Required ports from a plugin OID.
[in] | oid | OID to match. |
Definition at line 352 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_REQUIRED_PORTS_POS.
char* nvticache_get_required_udp_ports | ( | const char * | oid | ) |
Get the Required udp ports from a plugin OID.
[in] | oid | OID to match. |
Definition at line 338 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_REQUIRED_UDP_PORTS_POS.
char* nvticache_get_src | ( | const char * | oid | ) |
Get the full source filename of an OID.
oid | The OID to look up. |
Definition at line 245 of file nvticache.c.
References cache_kb, kb_nvt_get(), NVT_FILENAME_POS, and src_path.
char* nvticache_get_tags | ( | const char * | oid | ) |
Get the tags from a plugin OID.
[in] | oid | OID to match. |
Definition at line 490 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_TAGS_POS.
int nvticache_get_timeout | ( | const char * | oid | ) |
Get the Timeout from a plugin OID.
[in] | oid | OID to match. |
Definition at line 400 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_TIMEOUT_POS.
char* nvticache_get_xrefs | ( | const char * | oid | ) |
Get the xrefs from a plugin OID.
[in] | oid | OID to match. |
Definition at line 462 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_XREFS_POS.
int nvticache_init | ( | const char * | src, |
const char * | kb_path | ||
) |
Initializes the nvti cache.
src | The directory that contains the nvt files. |
kb_path | Path to kb socket. |
Definition at line 73 of file nvticache.c.
References cache_kb, kb_find(), kb_item_set_str(), kb_lnk_reset(), kb_new(), NVTICACHE_STR, and src_path.
int nvticache_initialized | ( | void | ) |
Return whether the nvt cache is initialized.
Definition at line 59 of file nvticache.c.
References cache_kb.
void nvticache_reset | ( | ) |
Reset connection to KB. To be called after a fork().
Definition at line 136 of file nvticache.c.
References cache_kb, and kb_lnk_reset().
void nvticache_save | ( | ) |
Save the nvticache to disk.
Definition at line 178 of file nvticache.c.
References cache_kb, cache_saved, kb_item_set_str(), kb_save(), nvt_feed_version(), and NVTICACHE_STR.
kb_t cache_kb = NULL |
Cache KB handler.
Definition at line 50 of file nvticache.c.
Referenced by nvticache_add(), nvticache_check(), nvticache_check_feed(), nvticache_count(), nvticache_delete(), nvticache_feed_version(), nvticache_get_bids(), nvticache_get_category(), nvticache_get_cves(), nvticache_get_dependencies(), nvticache_get_excluded_keys(), nvticache_get_family(), nvticache_get_filename(), nvticache_get_kb(), nvticache_get_mandatory_keys(), nvticache_get_name(), nvticache_get_nvt(), nvticache_get_oid(), nvticache_get_oids(), nvticache_get_prefs(), nvticache_get_required_keys(), nvticache_get_required_ports(), nvticache_get_required_udp_ports(), nvticache_get_src(), nvticache_get_tags(), nvticache_get_timeout(), nvticache_get_xrefs(), nvticache_init(), nvticache_initialized(), nvticache_reset(), and nvticache_save().
int cache_saved = 1 |
If cache was saved.
Definition at line 51 of file nvticache.c.
Referenced by nvticache_add(), and nvticache_save().
char* src_path = NULL |
The directory of the source files.
Definition at line 49 of file nvticache.c.
Referenced by nvt_feed_version(), nvticache_add(), nvticache_check(), nvticache_get_src(), and nvticache_init().