|
Greenbone Vulnerability Management Libraries 22.32.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 "libgvm util" |
| GLib logging domain. | |
Functions | |
| int | nvticache_initialized (void) |
| Return whether the nvt cache is initialized. | |
| int | nvticache_init (const char *src, const char *kb_path) |
| Initializes the nvti cache. | |
| kb_t | nvticache_get_kb (void) |
| Return the nvticache kb. | |
| int | nvticache_check (const gchar *filename) |
| Check if the nvt for the given filename exists in cache. | |
| void | nvticache_reset (void) |
| Reset connection to KB. To be called after a fork(). | |
| static char * | nvt_feed_version () |
| Determine the version of the NVT feed. | |
| void | nvticache_save (void) |
| Save the nvticache to disk. | |
| int | nvticache_add (const nvti_t *nvti, const char *filename) |
| Add a NVT Information to the cache. | |
| char * | nvticache_get_src (const char *oid) |
| Get the full source filename of an OID. | |
| char * | nvticache_get_oid (const char *filename) |
| Get the OID from a plugin filename. | |
| char * | nvticache_get_filename (const char *oid) |
| Get the filename from a plugin OID. | |
| char * | nvticache_get_required_keys (const char *oid) |
| Get the Required Keys from a plugin OID. | |
| char * | nvticache_get_mandatory_keys (const char *oid) |
| Get the Mandatory Keys from a plugin OID. | |
| char * | nvticache_get_excluded_keys (const char *oid) |
| Get the Excluded Keys from a plugin OID. | |
| char * | nvticache_get_required_udp_ports (const char *oid) |
| Get the Required udp ports from a plugin OID. | |
| char * | nvticache_get_required_ports (const char *oid) |
| Get the Required ports from a plugin OID. | |
| char * | nvticache_get_dependencies (const char *oid) |
| Get the Dependencies from a plugin OID. | |
| int | nvticache_get_category (const char *oid) |
| Get the Category from a plugin OID. | |
| char * | nvticache_get_name (const char *oid) |
| Get the name from a plugin OID. | |
| char * | nvticache_get_cves (const char *oid) |
| Get the cves from a plugin OID. | |
| char * | nvticache_get_bids (const char *oid) |
| Get the bids from a plugin OID. | |
| char * | nvticache_get_xrefs (const char *oid) |
| Get the xrefs from a plugin OID. | |
| char * | nvticache_get_family (const char *oid) |
| Get the family from a plugin OID. | |
| char * | nvticache_get_tags (const char *oid) |
| Get the tags from a plugin OID. | |
| nvti_t * | nvticache_get_nvt (const char *oid) |
| Get the nvti from a plugin OID. | |
| GSList * | nvticache_get_prefs (const char *oid) |
| Get the prefs from a plugin OID. | |
| GSList * | nvticache_get_oids () |
| Get the list of nvti OIDs. | |
| size_t | nvticache_count () |
| Get the number of nvt's in the cache. | |
| void | nvticache_delete (const char *oid) |
| Delete NVT from the cache. | |
| char * | nvticache_feed_version (void) |
| Get the NVT feed version. | |
| int | nvticache_check_feed (void) |
| Check if the plugins feed was newer than cached feed. | |
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 "libgvm util" |
GLib logging domain.
Definition at line 33 of file nvticache.c.
|
static |
Determine the version of the NVT feed.
Definition at line 134 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 207 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 101 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 599 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 547 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 560 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 588 of file nvticache.c.
References cache_kb, kb_item_get_str(), and NVTICACHE_STR.
Referenced by nvticache_save().


| char * nvticache_get_bids | ( | const char * | oid | ) |
Get the bids from a plugin OID.
| [in] | oid | OID to match. |
Definition at line 431 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 383 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 417 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 369 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 327 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 459 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 285 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 84 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 313 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 403 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 487 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 270 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 534 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 501 of file nvticache.c.
References cache_kb, kb_item_free(), kb_item_get_all(), kb_item::next, nvtpref_new(), 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 299 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 355 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 341 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 248 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 473 of file nvticache.c.
References cache_kb, kb_nvt_get(), and NVT_TAGS_POS.

| char * nvticache_get_xrefs | ( | const char * | oid | ) |
Get the xrefs from a plugin OID.
| [in] | oid | OID to match. |
Definition at line 445 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 59 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 45 of file nvticache.c.
References cache_kb.
| void nvticache_reset | ( | void | ) |
Reset connection to KB. To be called after a fork().
Definition at line 122 of file nvticache.c.
References cache_kb, and kb_lnk_reset().

| void nvticache_save | ( | void | ) |
Save the nvticache to disk.
Definition at line 178 of file nvticache.c.
References cache_kb, kb_item_set_str(), nvt_feed_version(), nvticache_feed_version(), and NVTICACHE_STR.

| kb_t cache_kb = NULL |
Cache KB handler.
Definition at line 36 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_xrefs(), nvticache_init(), nvticache_initialized(), nvticache_reset(), and nvticache_save().
| int cache_saved = 1 |
| char* src_path = NULL |
The directory of the source files.
Definition at line 35 of file nvticache.c.
Referenced by nvt_feed_version(), nvticache_add(), nvticache_check(), nvticache_get_src(), and nvticache_init().