Greenbone Vulnerability Manager  22.4.0~dev1
Todo List
Global buffer_results_xml (GString *, iterator_t *, task_t, int, int, int, int, int, int, int, const char *, iterator_t *, int, int, int)

Exported for manage_sql.c.

Defined in gmp.c!

Exported for manage_sql.c.

Global cleanup ()
These should happen via gmp, maybe with "cleanup_gmp ();".
Global config_nvts_growing (config_t config)
Move these config functions to the config section.
Global fork_connection_internal (gvm_connection_t *client_connection, const gchar *uuid, int scheduler)
Give the parent time to prepare.
Global fork_feed_sync ()
This should happen via gmp, maybe with "cleanup_gmp ();".
Global fork_update_nvt_cache ()
This should happen via gmp, maybe with "cleanup_gmp ();".
Global from_client [FROM_BUFFER_SIZE]
Most likely the client should get these from init_gmp_process inside an gmp_parser_t and should pass the gmp_parser_t to process_gmp_client_input. process_gmp_client_input can pass then pass them on to the other Manager "libraries".
Global gmp_xml_handle_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error)

Should respond with internal error.

Any fail cases of the CLIENT_CREATE_TASK_* states must do so too.

Legitimate to pass an empty hosts element?

Should respond with internal error.

Global gmp_xml_handle_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error)

If a real GMP command, return STATUS_ERROR_MUST_AUTH.

Free globals when tags open, in case of duplicate tags.

Global handle_get_configs (gmp_parser_t *gmp_parser, GError **error)
This should really be an nvt_selector_t.
Global handle_get_reports (gmp_parser_t *gmp_parser, GError **error)
Respond in all error cases.
Global insert_nvt_selectors (const char *quoted_name, const array_t *selectors, int allow_errors)
Check that selector->type is actually an integer.
Global manage_task_update_file (const gchar *task_id, const char *name, const void *content)
Probably better to save ASCII instead of base64.
Global move (const gchar *table, const gchar *old, const gchar *new)
May be better ensure a ROLLBACK when functions like "sql" fail.
Global print_report_port_xml (report_t report, FILE *out, const get_data_t *get, int first_result, int max_results, int sort_order, const char *sort_field, GHashTable *host_ports, iterator_t *results)
Sort by ROWID if was requested.
Global print_report_xml_start (report_t report, report_t delta, task_t task, gchar *xml_start, const get_data_t *get, int notes_details, int overrides_details, int result_tags, int ignore_pagination, int lean, gchar **filter_term_return, gchar **zone_return, gchar **host_summary)

Leaks on error in PRINT and PRINT_XML. The process normally exits then anyway.

The f_holes, etc. vars are setup to give the page count.

Global read_from_client_tls (gnutls_session_t *client_session)
Rehandshake.
Global report_counts (const char *report_id, int *holes, int *infos, int *logs, int *warnings, int *false_positives, double *severity, int override, int min_qod)
Lacks permission check. Caller contexts all have permission checks before calling this so it's safe. Rework callers to use report_counts_id instead.
Global report_timestamp (const char *report_id, gchar **timestamp)
Lacks permission check. Caller contexts all have permission checks before calling this so it's safe. Rework callers so they pass report_t instead of UUID string.
Global serve_gmp (gvm_connection_t *, const db_conn_info_t *, gchar **)

Shutdown on failure (for example, if a read fails).

nfds must only include a socket if it's in >= one set.

Confirm and clarify complications, especially last one.

Global target_port_list (target_t target)
Move return to arg; return -1.
Global to_client []
As described in gmp.c, probably should be replaced by gmp_parser_t.
Global write_to_client_tls (gnutls_session_t *client_session)

Rehandshake.

Move to openvas-libraries?