OpenVAS Libraries  6.0+beta5
Todo List
Global _ (abc)

Resolve workaround, real i18n

Resolve workaround, real i18n

Global accessrule_as_xml (const accessrule_t *)
Use g_markup_escape here
Global accessrule_as_xml (const accessrule_t *)
Use g_markup_escape here
Global accessrules_from_file (gchar *)

Create a access_rules_t* and pass as user data

error checks, handling

Global accessrules_from_file (gchar *)

Create a access_rules_t* and pass as user data

error checks, handling

Global ACT_LAST
Consider creation of an enumeration.
Global build_encode_URL (struct arglist *, char *, char *, char *, char *)
Evaluate if GLib functions for building paths are applicable here
Global build_encode_URL (struct arglist *, char *, char *, char *, char *)
Evaluate if GLib functions for building paths are applicable here
Global certificate_create (void)
Correct doc or implementation for the set_* methods, they always return 0.
Global certificate_create (void)
Correct doc or implementation for the set_* methods, they always return 0.
Global check_response (gnutls_session_t *)
Use this in the other functions.
Global check_response (gnutls_session_t *)
Use this in the other functions.
Global DO_CHILDREN (entity, child, temp, body)
Use next_entities and first_entity instead of this.
Global exec_nasl_script (struct arglist *, const char *, int)
Initialization of the library seems intuitively be necessary only once (involves "linking" the nasl functions to c code). Consider a "prototype" context that has to be created only once and of which copies are made when needed.
Global exec_nasl_script (struct arglist *, const char *, int)
Initialization of the library seems intuitively be necessary only once (involves "linking" the nasl functions to c code). Consider a "prototype" context that has to be created only once and of which copies are made when needed.
Global file_check_exists (const char *name)
This module fulfils the reqirements to be placed in the base library.
Global FIX (n)

: It still needs to be taken care BSD_BYTE_ORDERING gets here if defined (e.g. by config.h)

: It still needs to be taken care BSD_BYTE_ORDERING gets here if defined (e.g. by config.h)

: It still needs to be taken care BSD_BYTE_ORDERING gets here if defined (e.g. by config.h)

Global free_credentials (credentials_t *credentials)
Check whether uuid has to be freed, too.
Global G_LOG_DOMAIN

Ensure that every global init gets a free.

This module nearly fulfils the requirements to be placed in the base library (the gnutls dependency makes it a candidate for the net library).

Global hash_str2 (const char *, int)
Consider using GLibs string hash function.
Global hash_str2 (const char *, int)
Consider using GLibs string hash function.
File hash_table_util.c

Note that some of the code might get obsolete with future version of GLib.

This module is a candidate for a util library (as it is not specific to OPENVAS).

Global hg_add_host_with_options (struct hg_globals *, char *, struct in_addr, int, int, int, struct in_addr *)
consider const for hostname parameter
Global hg_add_host_with_options (struct hg_globals *, char *, struct in_addr, int, int, int, struct in_addr *)
consider const for hostname parameter
Global hg_add_ipv6host_with_options (struct hg_globals *, char *, struct in6_addr *, int, int, int, struct in6_addr *)
We will probably segfault sooner or later if inet_ntop fails.
Global hg_add_ipv6host_with_options (struct hg_globals *, char *, struct in6_addr *, int, int, int, struct in6_addr *)
We will probably segfault sooner or later if inet_ntop fails.
Global hg_gather_subnet_hosts (struct hg_globals *, struct hg_host *)
This works only for ipv4 as of now
Global hg_gather_subnet_hosts (struct hg_globals *, struct hg_host *)
This works only for ipv4 as of now
Global hg_resolv (char *, struct in6_addr *, int)
getaddrinfo: host might resolve to more than one ip. In this case (ai->ai_next != NULL). This should somehow be respected, probably needs changes to interface.
Global hg_resolv (char *, struct in6_addr *, int)
getaddrinfo: host might resolve to more than one ip. In this case (ai->ai_next != NULL). This should somehow be respected, probably needs changes to interface.
Global IMPORT (var)
Check for memleak and document reference counting in tree cells. In some cases, after a tree_cell (typically retc) has been allocated with alloc_tree_cell, it is not later freed or deref_tree_cell'ed. It has to evaluated if that is okay or leads to memory leaks.
Global internal_send (int, char *, int)
internal_send and internal_recv. could make an own module (ipc), in which the type constants could be moved, too.
Global internal_send (int, char *, int)
internal_send and internal_recv. could make an own module (ipc), in which the type constants could be moved, too.
Global kb_item::v
Check if this is safe. (What happens if char* and int have not the same size?)
Global keys_as_string_list (GHashTable *hash_table, GCompareFunc cmp_func)
Note that with GLib 2.14 this function is obsolete, as Glib 2.14 defines g_hash_table_get_keys ().
Global nasl_chomp (lex_ctxt *)
evaluate early break
Global nasl_chomp (lex_ctxt *)
evaluate early break
Global nasl_exec (lex_ctxt *, tree_cell *)
There is a lot of duplicated code in following cases, could be refactored.
Global nasl_exec (lex_ctxt *, tree_cell *)
There is a lot of duplicated code in following cases, could be refactored.
Global nasl_extract_signature_fprs (const char *filename)
Once there was a size limitation for the cache. It was removed since OpenVAS > 2.0 and this fixed size here should eventually be replaced by dynamic solution.
Global nasl_get_all_certificates ()

consider using the certificates_t type from base/certificates.c

base/certificate.c offers certificates (list) functionality

Global nasl_perror (lex_ctxt *, char *,...)
Enable this when the NVTs are ready. Sends ERRMSG to client.
Global nasl_perror (lex_ctxt *, char *,...)
Enable this when the NVTs are ready. Sends ERRMSG to client.
Global nasl_pread (lex_ctxt *)
Supspects to glib replacements, all path related stuff.
Global nasl_pread (lex_ctxt *)
Supspects to glib replacements, all path related stuff.
Global nasl_smb_versioninfo (lex_ctxt *lexic)
Check for memleak and document reference counting in tree cells. In some cases, after a tree_cell (typically retc) has been allocated with alloc_tree_cell, it is not later freed or deref_tree_cell'ed. It has to evaluated if that is okay or leads to memory leaks.
Global nasl_strndup (char *, int)
These functions are not necessarily nasl-specific and thus subject to be moved (e.g. to misc).
Global nasl_strndup (char *, int)
These functions are not necessarily nasl-specific and thus subject to be moved (e.g. to misc).
Global NUM_CLIENTS
There once was a BPF sharing feature with the same API as the methods below, but trying to share BPF among the daemon processes. What remains is a thin abstraction of the pcap API. Eventually it needs to be analysed whether this makes sense or can further be simplified.
Global nvti_as_openvas_nvt_cache_entry (const nvti_t *)
return A newly allocated string The string needs to be freed with g_free().
Global nvti_as_openvas_nvt_cache_entry (const nvti_t *)
return A newly allocated string The string needs to be freed with g_free().
Global nvti_to_keyfile (const nvti_t *, const gchar *)
Anything else indicates an error.
Global nvti_to_keyfile (const nvti_t *, const gchar *)
Anything else indicates an error.
Global OCTETRANGE
Document what kind of input for ipv6 adresses is acceppted, move description of valid "hostnames" to a better place (this is really interesting for a user), document how to list multiple hosts (space, comma, semicolon- separated?).
File omp.c
Name functions consistently (perhaps omp_*).
Global omp_get_report_format (gnutls_session_t *, const char *, const char *, void **, gsize *)
This now has a bad name, because there is an OMP GET_REPORT_FORMATS.
Global omp_get_report_format (gnutls_session_t *, const char *, const char *, void **, gsize *)
This now has a bad name, because there is an OMP GET_REPORT_FORMATS.
Global omp_wait_for_task_start (gnutls_session_t *, const char *)
Reconsider this (more below).
Global omp_wait_for_task_start (gnutls_session_t *, const char *)
Reconsider this (more below).
Global openvas_auth_store_user_rules (const gchar *user_dir, const gchar *hosts, int hosts_allow)
Do better format checking on hosts.
Global openvas_auth_store_user_rules (const gchar *user_dir, const gchar *hosts, int hosts_allow)
Do better format checking on hosts.
Global openvas_auth_tear_down ()
Close memleak, destroy list and content.
Global openvas_auth_user_rules (const gchar *username, gchar **rules)
access error message here, or pass it up.
Global openvas_auth_user_uuid_rules (const gchar *username, const gchar *user_uuid, gchar **rules)
access error message here, or pass it up.
Global openvas_auth_write_config (GKeyFile *keyfile)
Preserve comments in file.
Global openvas_auth_write_config (GKeyFile *keyfile)
Preserve comments in file.
File openvas_certificate_file.c
Re-enable error reporting (currently commented, show_error)
Global OPENVAS_ENCAPS_AUTO
Donate modules to these defines, eg. openvas_encaps.h Old comment: In fact, these defines might better be in a separate files. They are inserted here simply because plugutils uses them a lot.
Global openvas_file_remove_recurse (const gchar *pathname)
Set errno when we return -1 to maintain remove() compatibility.
Global openvas_log_func (const char *, GLogLevelFlags, const char *, gpointer)

Move log_separator to the conf file too.

Check what error this is.

Global openvas_log_func (const char *, GLogLevelFlags, const char *, gpointer)

Move log_separator to the conf file too.

Check what error this is.

File openvas_logging.c
This module fulfils the reqirements to be placed in the base library.
Global openvas_server_free (int, gnutls_session_t, gnutls_certificate_credentials_t)
vs openvas_server_close
Global openvas_server_free (int, gnutls_session_t, gnutls_certificate_credentials_t)
vs openvas_server_close
Global openvas_server_open (gnutls_session_t *, const char *, int)

Ensure that host and port have sane values.

Improve logging.

Use openvas_server_new.

Use openvas_server_connect.

Global openvas_server_open (gnutls_session_t *, const char *, int)

Ensure that host and port have sane values.

Improve logging.

Use openvas_server_new.

Use openvas_server_connect.

Global openvas_user_modify (const gchar *, const gchar *, const gchar *, const gchar *, int, const gchar *, const array_t *allowed_methods)
handle remotely authenticated users.
Global openvas_user_modify (const gchar *, const gchar *, const gchar *, const gchar *, int, const gchar *, const array_t *allowed_methods)
handle remotely authenticated users.
Global ovas_allocate_connection (int soc, void *ssl, gnutls_certificate_credentials_t certcred)

TLS FIXME: migrate this to TLS

Fix the voidness of the ssl parameter (problematic in 64bit env.) here or on caller-side

Global plug_set_port_transport (struct arglist *, int, int)
Those brain damaged functions should probably be in another file They are use to remember who speaks SSL or not
Global plug_set_port_transport (struct arglist *, int, int)
Those brain damaged functions should probably be in another file They are use to remember who speaks SSL or not
Global plug_set_ssl_CA_file (struct arglist *, char *)
Also, all plug_set_ssl*-functions set values that are only accessed in network.c:open_stream_connection under specific conditions. Check whether these conditions can actually occur. Document the functions on the way.
Global plug_set_ssl_CA_file (struct arglist *, char *)
Also, all plug_set_ssl*-functions set values that are only accessed in network.c:open_stream_connection under specific conditions. Check whether these conditions can actually occur. Document the functions on the way.
Global scan (struct arglist *env, char *hostname, char *portrange, struct in6_addr *dst6, unsigned long rtt)
How to do this for ipv6? This causes much scan delay for IPv6.
Global str_match (const char *, const char *, int)
In parts replacable by g_pattern_match function (when not icase)
Global str_match (const char *, const char *, int)
In parts replacable by g_pattern_match function (when not icase)