OpenVAS Scanner 21.4.1
Todo List
Global expo (long int x, long int y)
This is an algorithm for calculating x^y, replace it if possible.
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)

Global hash_str2 (const char *, int)
Consider using GLibs string hash function.
Global hosts
struct hosts could be stripped down and put in a g_list, or, as a g_hash_table (name -> [soc,pid]), see hosts_get.
Global init_empty_lex_ctxt (void)
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 nasl_dump_expr (FILE *fp, const tree_cell *c)
Refactor, remove upcoming code duplicates.
Global nasl_exec (lex_ctxt *, tree_cell *)
There is a lot of duplicated code in following cases, could be refactored.
Global nasl_pread (lex_ctxt *)
Suspects to glib replacements, all path related stuff.
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 openvas_register_connection (int s, void *ssl, gnutls_certificate_credentials_t certcred, openvas_encaps_t encaps)

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

TLS FIXME: migrate this to TLS

Global plug_set_port_transport (struct script_infos *, 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 script_infos *, 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.
Class plugins_scheduler
This important module needs documentation and comments.
Global scan (struct script_infos *env, char *portrange, struct in6_addr *dst6, unsigned long rtt)
How to do this for ipv6? This causes much scan delay for IPv6.
Global std_port (int port)
: We are not able anymore to judge whether a port is a standard port. Previously a port was believed to be a standard port when it occurred in the currently configured list of ports. This needs to be resolved.