Greenbone Security Assistant
7.0.0
|
Base functionality of GSA. More...
#include "gsad_base.h"
#include <openvas/omp/xml.h>
#include <glib.h>
#include <microhttpd.h>
#include <string.h>
#include <sys/wait.h>
#include <errno.h>
Go to the source code of this file.
Macros | |
#define | XSL_PATH "gsad.xsl" |
Location of XSL file. More... | |
#define | G_LOG_DOMAIN "gsad base" |
GLib log domain. More... | |
#define | FAIL_HTML |
HTML returned when XSL transform fails. More... | |
Functions | |
int | gsad_base_init () |
Base init. More... | |
int | gsad_base_cleanup () |
Base init. More... | |
int | get_chroot_state () |
Gets the chroot state. More... | |
void | set_chroot_state (int state) |
Sets the chroot state. More... | |
void | vendor_version_set (const gchar *version) |
Set the vendor version. More... | |
const gchar * | vendor_version_get () |
Get the vendor version. More... | |
const gchar * | label_name_get () |
Get the login label name. More... | |
int | label_name_set (const gchar *name) |
Set the login label. More... | |
void | set_language_code (gchar **lang, const gchar *language) |
Set language code of user. More... | |
char * | ctime_r_strip_newline (time_t *time, char *string) |
Return string from ctime_r with newline replaces with terminator. More... | |
char * | xsl_transform_with_stylesheet (const char *xml_text, const char *xsl_stylesheet, cmd_response_data_t *response_data) |
XSL Transformation. More... | |
char * | xsl_transform (const char *xml_text, cmd_response_data_t *response_data) |
XSL Transformation. More... | |
char * | gsad_message (credentials_t *credentials, const char *title, const char *function, int line, const char *msg, const char *backurl, cmd_response_data_t *response_data) |
Handles fatal errors. More... | |
gchar * | login_xml (const gchar *message, const gchar *token, const gchar *time, const gchar *url, const gchar *i18n, const gchar *guest) |
Generate XML for login page. More... | |
params_t * | params_new () |
Make a params. More... | |
void | params_free (params_t *params) |
Make a params. More... | |
param_t * | params_get (params_t *params, const char *name) |
Get param. More... | |
int | params_given (params_t *params, const char *name) |
Get whether a param was given at all. More... | |
const char * | params_value (params_t *params, const char *name) |
Get value of param. More... | |
int | params_value_size (params_t *params, const char *name) |
Get the size of the value of param. More... | |
const char * | params_original_value (params_t *params, const char *name) |
Get original value of param, before validation. More... | |
const char * | params_filename (params_t *params, const char *name) |
Get filename of param. More... | |
params_t * | params_values (params_t *params, const char *name) |
Get values of param. More... | |
int | params_valid (params_t *params, const char *name) |
Get whether a param is valid. More... | |
param_t * | params_add (params_t *params, const char *name, const char *value) |
Add a param. More... | |
param_t * | params_append_bin (params_t *params, const char *name, const char *chunk_data, int chunk_size, int chunk_offset) |
Append binary data to a param. More... | |
gboolean | params_iterator_next (params_iterator_t *iterator, char **name, param_t **param) |
Increment a params iterator. More... | |
Variables | |
gchar * | vendor_version = NULL |
Version from vendor, or NULL. More... | |
gchar * | label_name = NULL |
Base functionality of GSA.
Definition in file gsad_base.c.
#define FAIL_HTML |
HTML returned when XSL transform fails.
Definition at line 235 of file gsad_base.c.
Referenced by xsl_transform_with_stylesheet().
#define G_LOG_DOMAIN "gsad base" |
GLib log domain.
Definition at line 62 of file gsad_base.c.
#define XSL_PATH "gsad.xsl" |
char* ctime_r_strip_newline | ( | time_t * | time, |
char * | string | ||
) |
Return string from ctime_r with newline replaces with terminator.
[in] | time | Time. |
[out] | string | Time string. |
Definition at line 214 of file gsad_base.c.
Referenced by exec_omp_post(), gsad_message(), and handle_request().
int get_chroot_state | ( | ) |
Gets the chroot state.
Definition at line 114 of file gsad_base.c.
References chroot_state.
Referenced by init_language_lists(), and register_i18n_ext_module().
int gsad_base_cleanup | ( | ) |
Base init.
Definition at line 99 of file gsad_base.c.
Referenced by gsad_cleanup().
int gsad_base_init | ( | ) |
Base init.
Definition at line 82 of file gsad_base.c.
Referenced by main().
char* gsad_message | ( | credentials_t * | credentials, |
const char * | title, | ||
const char * | function, | ||
int | line, | ||
const char * | msg, | ||
const char * | backurl, | ||
cmd_response_data_t * | response_data | ||
) |
Handles fatal errors.
[in] | credentials | User authentication information. |
[in] | title | The title for the message. |
[in] | function | The function in which the error occurred. |
[in] | line | The line number at which the error occurred. |
[in] | msg | The response message. |
[in] | backurl | The URL offered to get back to a sane situation. If NULL, the tasks page is used. |
[out] | response_data | Extra data return for the HTTP response. |
Definition at line 440 of file gsad_base.c.
References credentials_t::capabilities, credentials_t::charts, credentials_t::client_address, ctime_r_strip_newline(), cmd_response_data_t::http_status_code, credentials_t::language, credentials_t::params, params_value(), credentials_t::role, credentials_t::token, credentials_t::username, vendor_version_get(), and xsl_transform().
Referenced by auth_settings_omp(), bulk_delete_omp(), clone_omp(), create_agent_omp(), create_alert_omp(), create_asset_omp(), create_config_omp(), create_container_task_omp(), create_credential_omp(), create_filter_omp(), create_group_omp(), create_host_omp(), create_note_omp(), create_override_omp(), create_permission_omp(), create_permissions_omp(), create_port_list_omp(), create_port_range_omp(), create_report_omp(), create_role_omp(), create_scanner_omp(), create_schedule_omp(), create_tag_omp(), create_target_omp(), create_task_omp(), create_user_omp(), dashboard(), delete_asset_omp(), delete_resource(), download_agent_omp(), download_ca_pub(), download_credential_omp(), download_key_pub(), download_ssl_cert(), edit_alert(), edit_asset(), edit_note(), edit_override(), edit_permission(), edit_resource(), edit_scanner(), edit_tag(), edit_target(), edit_user(), empty_trashcan_omp(), exec_omp_get(), exec_omp_post(), export_omp_doc_omp(), export_preference_file_omp(), export_resource(), get_aggregate_omp(), get_feeds_omp(), get_info(), get_my_settings_omp(), get_one(), get_protocol_doc_omp(), get_system_reports_omp(), handle_request(), import_config_omp(), import_port_list_omp(), import_report_format_omp(), move_task_omp(), new_note(), new_override(), new_permission(), new_permissions(), process_bulk_omp(), resource_action(), restore_omp(), run_wizard_omp(), save_agent_omp(), save_alert_omp(), save_asset_omp(), save_auth_omp(), save_chart_preference_omp(), save_config_family_omp(), save_config_nvt_omp(), save_config_omp(), save_container_task_omp(), save_credential_omp(), save_filter_omp(), save_group_omp(), save_my_settings_omp(), save_note_omp(), save_override_omp(), save_permission_omp(), save_port_list_omp(), save_report_format_omp(), save_role_omp(), save_scanner_omp(), save_schedule_omp(), save_tag_omp(), save_target_omp(), save_task_omp(), save_user_omp(), sync_config_omp(), test_alert_omp(), toggle_tag_omp(), verify_agent_omp(), verify_report_format_omp(), and verify_scanner_omp().
const gchar* label_name_get | ( | ) |
Get the login label name.
Definition at line 159 of file gsad_base.c.
References label_name.
Referenced by login_xml().
int label_name_set | ( | const gchar * | name | ) |
Set the login label.
[in] | name | New login label name. |
Definition at line 172 of file gsad_base.c.
References label_name.
Referenced by main().
gchar* login_xml | ( | const gchar * | message, |
const gchar * | token, | ||
const gchar * | time, | ||
const gchar * | url, | ||
const gchar * | i18n, | ||
const gchar * | guest | ||
) |
Generate XML for login page.
[in] | message | Login screen message, or NULL. |
[out] | token | Token, or NULL. |
[out] | time | Time. |
[out] | url | URL. |
[out] | i18n | i18n language code, or NULL. |
[out] | guest | Username for guest login, or NULL. |
Definition at line 557 of file gsad_base.c.
References label_name_get(), and vendor_version_get().
Referenced by exec_omp_post(), and handle_request().
Add a param.
[in] | params | Params. |
[in] | name | Name. |
[in] | value | Value. Must be a string. |
Definition at line 779 of file gsad_base.c.
References param::array_len, param::valid, param::valid_utf8, param::value, and param::value_size.
Referenced by bulk_delete_omp(), clone_omp(), create_agent_omp(), create_alert_omp(), create_config_omp(), create_container_task_omp(), create_credential_omp(), create_filter_omp(), create_group_omp(), create_host_omp(), create_note_omp(), create_override_omp(), create_permission_omp(), create_port_list_omp(), create_role_omp(), create_scanner_omp(), create_schedule_omp(), create_tag_omp(), create_target_omp(), create_task_omp(), create_user_omp(), delete_asset_omp(), get_info(), import_report_format_omp(), params_append_bin(), and process_bulk_omp().
param_t* params_append_bin | ( | params_t * | params, |
const char * | name, | ||
const char * | chunk_data, | ||
int | chunk_size, | ||
int | chunk_offset | ||
) |
Append binary data to a param.
Appended data always has an extra NULL terminator.
[in] | params | Params. |
[in] | name | Name. |
[in] | chunk_data | Data to append. |
[in] | chunk_size | Number of bytes to copy. |
[in] | chunk_offset | Offset in bytes into data from which to start. |
Definition at line 812 of file gsad_base.c.
References params_add(), params_get(), param::value, and param::value_size.
const char* params_filename | ( | params_t * | params, |
const char * | name | ||
) |
Get filename of param.
[in] | params | Params. |
[in] | name | Name. |
Definition at line 732 of file gsad_base.c.
References param::filename.
Referenced by create_agent_omp().
void params_free | ( | params_t * | params | ) |
Make a params.
[in] | params | Params. |
Definition at line 635 of file gsad_base.c.
Referenced by free_resources().
Get param.
[in] | params | Params. |
[in] | name | Name. |
Definition at line 650 of file gsad_base.c.
Referenced by delete_asset_omp(), delete_filter_omp(), delete_resource(), and params_append_bin().
int params_given | ( | params_t * | params, |
const char * | name | ||
) |
Get whether a param was given at all.
[in] | params | Params. |
[in] | name | Name. |
Definition at line 666 of file gsad_base.c.
Referenced by bulk_delete_omp(), clone_omp(), create_note_omp(), create_override_omp(), create_permission_omp(), create_permissions_omp(), create_report_omp(), create_scanner_omp(), create_task_omp(), create_user_omp(), delete_asset_omp(), exec_omp_get(), exec_omp_post(), save_auth_omp(), save_credential_omp(), save_note_omp(), save_override_omp(), save_permission_omp(), save_scanner_omp(), save_task_omp(), and save_user_omp().
gboolean params_iterator_next | ( | params_iterator_t * | iterator, |
char ** | name, | ||
param_t ** | param | ||
) |
Increment a params iterator.
[in] | iterator | Iterator. |
[out] | name | Name of param. |
[out] | param | Param. |
Definition at line 858 of file gsad_base.c.
Referenced by bulk_delete_omp(), create_alert_omp(), create_permissions_omp(), create_task_omp(), create_user_omp(), get_aggregate_omp(), member1(), new_permissions(), params_mhd_validate_values(), process_bulk_omp(), run_wizard_omp(), save_alert_omp(), save_config_family_omp(), save_config_nvt_omp(), save_config_omp(), save_report_format_omp(), save_task_omp(), and save_user_omp().
params_t* params_new | ( | ) |
Make a params.
Definition at line 624 of file gsad_base.c.
Referenced by exec_omp_get(), handle_request(), and redirect_handler().
const char* params_original_value | ( | params_t * | params, |
const char * | name | ||
) |
Get original value of param, before validation.
Only set if validation failed.
[in] | params | Params. |
[in] | name | Name. |
Definition at line 716 of file gsad_base.c.
References param::original_value.
Referenced by create_note_omp(), create_override_omp(), exec_omp_post(), save_note_omp(), and save_override_omp().
int params_valid | ( | params_t * | params, |
const char * | name | ||
) |
Get whether a param is valid.
[in] | params | Params. |
[in] | name | Name. |
Definition at line 764 of file gsad_base.c.
References param::valid.
Referenced by create_note_omp(), create_override_omp(), create_task_omp(), process_bulk_omp(), save_note_omp(), save_override_omp(), and save_task_omp().
const char* params_value | ( | params_t * | params, |
const char * | name | ||
) |
Get value of param.
[in] | params | Params. |
[in] | name | Name. |
Definition at line 682 of file gsad_base.c.
References param::value.
Referenced by auth_settings_omp(), bulk_delete_omp(), clone_omp(), create_agent_omp(), create_alert_omp(), create_asset_omp(), create_config_omp(), create_container_task_omp(), create_credential_omp(), create_filter_omp(), create_group_omp(), create_host_omp(), create_note_omp(), create_override_omp(), create_permission_omp(), create_permissions_omp(), create_port_list_omp(), create_port_range_omp(), create_report_omp(), create_role_omp(), create_scanner_omp(), create_schedule_omp(), create_tag_omp(), create_target_omp(), create_task_omp(), create_user_omp(), cvss_calculator(), dashboard(), delete_asset_omp(), delete_resource(), download_agent_omp(), download_ca_pub(), download_credential_omp(), download_key_pub(), download_ssl_cert(), edit_alert(), edit_asset(), edit_note(), edit_override(), edit_resource(), edit_scanner(), edit_tag(), edit_target(), empty_trashcan_omp(), exec_omp_get(), exec_omp_post(), export_omp_doc_omp(), export_preference_file_omp(), export_resource(), get_aggregate_omp(), get_info(), get_one(), get_result_omp(), get_system_report_omp(), get_system_reports_omp(), gsad_message(), handle_request(), import_config_omp(), import_port_list_omp(), import_report_format_omp(), move_task_omp(), new_note(), new_override(), new_permissions(), process_bulk_omp(), resource_action(), restore_omp(), run_wizard_omp(), save_agent_omp(), save_alert_omp(), save_asset_omp(), save_auth_omp(), save_chart_preference_omp(), save_config_family_omp(), save_config_nvt_omp(), save_config_omp(), save_container_task_omp(), save_credential_omp(), save_filter_omp(), save_group_omp(), save_my_settings_omp(), save_note_omp(), save_override_omp(), save_permission_omp(), save_port_list_omp(), save_report_format_omp(), save_role_omp(), save_scanner_omp(), save_schedule_omp(), save_tag_omp(), save_target_omp(), save_task_omp(), save_user_omp(), sync_config_omp(), test_alert_omp(), toggle_tag_omp(), verify_agent_omp(), verify_report_format_omp(), and verify_scanner_omp().
int params_value_size | ( | params_t * | params, |
const char * | name | ||
) |
Get the size of the value of param.
[in] | params | Params. |
[in] | name | Name. |
Definition at line 698 of file gsad_base.c.
References param::value_size.
Referenced by create_agent_omp().
Get values of param.
[in] | params | Params. |
[in] | name | Name. |
Definition at line 748 of file gsad_base.c.
References param::values.
Referenced by bulk_delete_omp(), create_alert_omp(), create_permissions_omp(), create_task_omp(), create_user_omp(), get_aggregate_omp(), new_permissions(), process_bulk_omp(), run_wizard_omp(), save_alert_omp(), save_config_family_omp(), save_config_nvt_omp(), save_config_omp(), save_my_settings_omp(), save_report_format_omp(), save_task_omp(), and save_user_omp().
void set_chroot_state | ( | int | state | ) |
Sets the chroot state.
[in] | state | The new chroot state. |
Definition at line 125 of file gsad_base.c.
References chroot_state.
void set_language_code | ( | gchar ** | lang, |
const gchar * | language | ||
) |
Set language code of user.
Caller must handle locking.
[in] | lang | Language slot. May be a language name or code |
[in] | language | User Interface Language. |
Definition at line 191 of file gsad_base.c.
Referenced by save_my_settings_omp(), user_add(), and user_set_language().
const gchar* vendor_version_get | ( | ) |
Get the vendor version.
Definition at line 148 of file gsad_base.c.
References vendor_version.
Referenced by gsad_message(), handle_request(), and login_xml().
void vendor_version_set | ( | const gchar * | version | ) |
Set the vendor version.
[in] | version | Vendor version. |
Definition at line 136 of file gsad_base.c.
References vendor_version.
Referenced by main().
char* xsl_transform | ( | const char * | xml_text, |
cmd_response_data_t * | response_data | ||
) |
XSL Transformation.
Does the transformation from XML to HTML applying omp.xsl.
[in] | xml_text | The XML text to transform. |
[out] | response_data | Extra data return for the HTTP response. |
Definition at line 418 of file gsad_base.c.
References XSL_PATH, and xsl_transform_with_stylesheet().
Referenced by exec_omp_post(), gsad_message(), and handle_request().
char* xsl_transform_with_stylesheet | ( | const char * | xml_text, |
const char * | xsl_stylesheet, | ||
cmd_response_data_t * | response_data | ||
) |
XSL Transformation.
Transforms XML by applying a given XSL stylesheet, usually into HTML.
[in] | xml_text | The XML text to transform. |
[in] | xsl_stylesheet | The file name of the XSL stylesheet to use. |
[out] | response_data | Extra data return for the HTTP response. |
Definition at line 254 of file gsad_base.c.
References FAIL_HTML, cmd_response_data_t::http_status_code, and register_i18n_ext_module().
Referenced by handle_request(), and xsl_transform().
gchar* label_name = NULL |
Definition at line 69 of file gsad_base.c.
Referenced by label_name_get(), and label_name_set().
gchar* vendor_version = NULL |
Version from vendor, or NULL.
Definition at line 67 of file gsad_base.c.
Referenced by vendor_version_get(), and vendor_version_set().