Greenbone Vulnerability Manager  22.4.0~dev1
Data Structures | Macros | Enumerations | Functions | Variables
gmp.c File Reference

The Greenbone Vulnerability Manager GMP library. More...

#include "gmp.h"
#include "gmp_base.h"
#include "gmp_delete.h"
#include "gmp_get.h"
#include "gmp_configs.h"
#include "gmp_license.h"
#include "gmp_port_lists.h"
#include "gmp_report_formats.h"
#include "gmp_tickets.h"
#include "gmp_tls_certificates.h"
#include "manage.h"
#include "manage_acl.h"
#include "manage_port_lists.h"
#include "manage_report_formats.h"
#include "utils.h"
#include <arpa/inet.h>
#include <assert.h>
#include <errno.h>
#include <fcntl.h>
#include <glib/gstdio.h>
#include <math.h>
#include <netinet/in.h>
#include <string.h>
#include <stdlib.h>
#include <sys/file.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <gnutls/x509.h>
#include <gvm/base/strings.h>
#include <gvm/base/logging.h>
#include <gvm/base/pwpolicy.h>
#include <gvm/util/gpgmeutils.h>
#include <gvm/util/fileutils.h>
#include <gvm/util/sshutils.h>
#include <gvm/util/authutils.h>

Data Structures

struct  auth_conf_setting_t
 A simple key/value-pair. More...
 
struct  create_asset_data_t
 Command data for the create_asset command. More...
 
struct  create_alert_data_t
 Command data for the create_alert command. More...
 
struct  create_credential_data_t
 Command data for the create_credential command. More...
 
struct  create_filter_data_t
 Command data for the create_filter command. More...
 
struct  create_group_data_t
 Command data for the create_group command. More...
 
struct  create_note_data_t
 Command data for the create_note command. More...
 
struct  create_override_data_t
 Command data for the create_override command. More...
 
struct  create_permission_data_t
 Command data for the create_permission command. More...
 
struct  create_port_range_data_t
 Command data for the create_port_range command. More...
 
struct  create_report_data_t
 Command data for the create_report command. More...
 
struct  create_role_data_t
 Command data for the create_role command. More...
 
struct  create_scanner_data_t
 Command data for the create_scanner command. More...
 
struct  create_schedule_data_t
 Command data for the create_schedule command. More...
 
struct  create_target_data_t
 Command data for the create_target command. More...
 
struct  create_tag_data_t
 Command data for the create_tag command. More...
 
struct  create_task_data_t
 Command data for the create_task command. More...
 
struct  create_user_data_t
 Command data for the create_user command. More...
 
struct  delete_asset_data_t
 Command data for the delete_asset command. More...
 
struct  delete_config_data_t
 Command data for the delete_config command. More...
 
struct  delete_alert_data_t
 Command data for the delete_alert command. More...
 
struct  delete_credential_data_t
 Command data for the delete_credential command. More...
 
struct  delete_filter_data_t
 Command data for the delete_filter command. More...
 
struct  delete_group_data_t
 Command data for the delete_group command. More...
 
struct  delete_note_data_t
 Command data for the delete_note command. More...
 
struct  delete_override_data_t
 Command data for the delete_override command. More...
 
struct  delete_permission_data_t
 Command data for the delete_permission command. More...
 
struct  delete_port_list_data_t
 Command data for the delete_port_list command. More...
 
struct  delete_port_range_data_t
 Command data for the delete_port_range command. More...
 
struct  delete_report_data_t
 Command data for the delete_report command. More...
 
struct  delete_report_format_data_t
 Command data for the delete_report_format command. More...
 
struct  delete_role_data_t
 Command data for the delete_role command. More...
 
struct  delete_schedule_data_t
 Command data for the delete_schedule command. More...
 
struct  delete_scanner_data_t
 Command data for the delete_scanner command. More...
 
struct  delete_tag_data_t
 Command data for the delete_tag command. More...
 
struct  delete_target_data_t
 Command data for the delete_target command. More...
 
struct  delete_task_data_t
 Command data for the delete_task command. More...
 
struct  delete_user_data_t
 Command data for the delete_user command. More...
 
struct  get_feeds_data_t
 Command data for the get_feeds command. More...
 
struct  get_aggregates_data_t
 Command data for the get_aggregates command. More...
 
struct  get_assets_data_t
 Command data for the get_assets command. More...
 
struct  get_configs_data_t
 Command data for the get_configs command. More...
 
struct  get_alerts_data_t
 Command data for the get_alerts command. More...
 
struct  get_credentials_data_t
 Command data for the get_credentials command. More...
 
struct  get_filters_data_t
 Command data for the get_filters command. More...
 
struct  get_groups_data_t
 Command data for the get_groups command. More...
 
struct  get_info_data_t
 Command data for the get_info command. More...
 
struct  get_notes_data_t
 Command data for the get_notes command. More...
 
struct  get_nvts_data_t
 Command data for the get_nvts command. More...
 
struct  get_nvt_families_data_t
 Command data for the get_nvt_families command. More...
 
struct  get_overrides_data_t
 Command data for the get_overrides command. More...
 
struct  get_permissions_data_t
 Command data for the get_permissions command. More...
 
struct  get_port_lists_data_t
 Command data for the get_port_lists command. More...
 
struct  get_preferences_data_t
 Command data for the get_preferences command. More...
 
struct  get_reports_data_t
 Command data for the get_reports command. More...
 
struct  get_report_formats_data_t
 Command data for the get_report_formats command. More...
 
struct  get_results_data_t
 Command data for the get_results command. More...
 
struct  get_roles_data_t
 Command data for the get_roles command. More...
 
struct  get_schedules_data_t
 Command data for the get_schedules command. More...
 
struct  get_scanners_data_t
 Command data for the get_scanners command. More...
 
struct  get_settings_data_t
 Command data. More...
 
struct  get_system_reports_data_t
 Command data for the get_system_reports command. More...
 
struct  get_tags_data_t
 Command data for the get_tags command. More...
 
struct  get_targets_data_t
 Command data for the get_targets command. More...
 
struct  get_users_data_t
 Command data for the get_users command. More...
 
struct  get_vulns_data_t
 Command data for the get_vulns command. More...
 
struct  modify_config_data_t
 Command data for the modify_config command. More...
 
struct  get_tasks_data_t
 Command data for the get_tasks command. More...
 
struct  help_data_t
 Command data for the help command. More...
 
struct  modify_alert_data_t
 Command data for the modify_alert command. More...
 
struct  modify_asset_data_t
 Command data for the modify_asset command. More...
 
struct  auth_group_t
 Authentication method settings. More...
 
struct  modify_auth_data_t
 Command data for the modify_auth command. More...
 
struct  modify_credential_data_t
 Command data for the modify_credential command. More...
 
struct  modify_filter_data_t
 Command data for the modify_filter command. More...
 
struct  modify_group_data_t
 Command data for the modify_group command. More...
 
struct  modify_permission_data_t
 Command data for the modify_permission command. More...
 
struct  modify_port_list_data_t
 Command data for the modify_port_list command. More...
 
struct  modify_report_format_data_t
 Command data for the modify_report_format command. More...
 
struct  modify_role_data_t
 Command data for the modify_role command. More...
 
struct  modify_scanner_data_t
 Command data for the modify_scanner command. More...
 
struct  modify_schedule_data_t
 Command data for the modify_schedule command. More...
 
struct  modify_tag_data_t
 Command data for the modify_tag command. More...
 
struct  modify_setting_data_t
 Command data for the modify_setting command. More...
 
struct  modify_target_data_t
 Command data for the modify_target command. More...
 
struct  modify_task_data_t
 Command data for the modify_task command. More...
 
struct  modify_note_data_t
 Command data for the modify_note command. More...
 
struct  modify_override_data_t
 Command data for the modify_override command. More...
 
struct  modify_user_data_t
 Command data for the modify_user command. More...
 
struct  move_task_data_t
 Command data for the move_task command. More...
 
struct  restore_data_t
 Command data for the restore command. More...
 
struct  resume_task_data_t
 Command data for the resume_task command. More...
 
struct  start_task_data_t
 Command data for the start_task command. More...
 
struct  stop_task_data_t
 Command data for the stop_task command. More...
 
struct  test_alert_data_t
 Command data for the test_alert command. More...
 
struct  verify_report_format_data_t
 Command data for the verify_report_format command. More...
 
struct  verify_scanner_data_t
 Command data for the verify_scanner command. More...
 
struct  run_wizard_data_t
 Command data for the wizard command. More...
 
union  command_data_t
 Command data, as passed between GMP parser callbacks. More...
 
struct  count_data_t
 Helper data structure for word counts. More...
 
struct  buffer_counts_data_t
 Helper data structure for buffering word counts. More...
 

Macros

#define G_LOG_DOMAIN   "md gmp"
 GLib log domain.
 
#define ELSE_GET_START(lower, upper)
 Insert else clause for GET command in gmp_xml_handle_start_element. More...
 
#define ELSE_READ_OVER
 Insert else clause for error in gmp_xml_handle_start_element. More...
 
#define ELSE_READ_OVER_CREATE_TASK
 Insert else clause for gmp_xml_handle_start_element in create_task. More...
 
#define CLOSE(parent, element)
 Insert else clause for gmp_xml_handle_start_element. More...
 
#define CASE_GET_END(upper, lower)
 Insert GET case for gmp_xml_handle_end_element. More...
 
#define CASE_DELETE(upper, type, capital)
 Insert DELETE case for gmp_xml_handle_end_element. More...
 
#define FEED_DESCRIPTION_TEMPLATE
 Template string for feed descriptions. More...
 
#define GET_NVT_FEED_ERROR
 Template string for get_nvt_feed error messages. More...
 
#define APPEND(state, dest)
 Append text to a var for a case in gmp_xml_hand_text. More...
 

Enumerations

enum  client_state_t {
  CLIENT_TOP , CLIENT_AUTHENTIC , CLIENT_AUTHENTICATE , CLIENT_AUTHENTICATE_CREDENTIALS ,
  CLIENT_AUTHENTICATE_CREDENTIALS_PASSWORD , CLIENT_AUTHENTICATE_CREDENTIALS_USERNAME , CLIENT_CREATE_ALERT , CLIENT_CREATE_ALERT_ACTIVE ,
  CLIENT_CREATE_ALERT_COMMENT , CLIENT_CREATE_ALERT_CONDITION , CLIENT_CREATE_ALERT_CONDITION_DATA , CLIENT_CREATE_ALERT_CONDITION_DATA_NAME ,
  CLIENT_CREATE_ALERT_COPY , CLIENT_CREATE_ALERT_EVENT , CLIENT_CREATE_ALERT_EVENT_DATA , CLIENT_CREATE_ALERT_EVENT_DATA_NAME ,
  CLIENT_CREATE_ALERT_FILTER , CLIENT_CREATE_ALERT_METHOD , CLIENT_CREATE_ALERT_METHOD_DATA , CLIENT_CREATE_ALERT_METHOD_DATA_NAME ,
  CLIENT_CREATE_ALERT_NAME , CLIENT_CREATE_ASSET , CLIENT_CREATE_ASSET_REPORT , CLIENT_CREATE_ASSET_REPORT_FILTER ,
  CLIENT_CREATE_ASSET_REPORT_FILTER_TERM , CLIENT_CREATE_ASSET_ASSET , CLIENT_CREATE_ASSET_ASSET_COMMENT , CLIENT_CREATE_ASSET_ASSET_NAME ,
  CLIENT_CREATE_ASSET_ASSET_TYPE , CLIENT_CREATE_CONFIG , CLIENT_CREATE_CREDENTIAL , CLIENT_CREATE_CREDENTIAL_ALLOW_INSECURE ,
  CLIENT_CREATE_CREDENTIAL_AUTH_ALGORITHM , CLIENT_CREATE_CREDENTIAL_CERTIFICATE , CLIENT_CREATE_CREDENTIAL_COMMENT , CLIENT_CREATE_CREDENTIAL_COMMUNITY ,
  CLIENT_CREATE_CREDENTIAL_COPY , CLIENT_CREATE_CREDENTIAL_KEY , CLIENT_CREATE_CREDENTIAL_KEY_PHRASE , CLIENT_CREATE_CREDENTIAL_KEY_PRIVATE ,
  CLIENT_CREATE_CREDENTIAL_KEY_PUBLIC , CLIENT_CREATE_CREDENTIAL_LOGIN , CLIENT_CREATE_CREDENTIAL_NAME , CLIENT_CREATE_CREDENTIAL_PASSWORD ,
  CLIENT_CREATE_CREDENTIAL_PRIVACY , CLIENT_CREATE_CREDENTIAL_PRIVACY_ALGORITHM , CLIENT_CREATE_CREDENTIAL_PRIVACY_PASSWORD , CLIENT_CREATE_CREDENTIAL_TYPE ,
  CLIENT_CREATE_FILTER , CLIENT_CREATE_FILTER_COMMENT , CLIENT_CREATE_FILTER_COPY , CLIENT_CREATE_FILTER_NAME ,
  CLIENT_CREATE_FILTER_TERM , CLIENT_CREATE_FILTER_TYPE , CLIENT_CREATE_GROUP , CLIENT_CREATE_GROUP_COMMENT ,
  CLIENT_CREATE_GROUP_COPY , CLIENT_CREATE_GROUP_NAME , CLIENT_CREATE_GROUP_USERS , CLIENT_CREATE_GROUP_SPECIALS ,
  CLIENT_CREATE_GROUP_SPECIALS_FULL , CLIENT_CREATE_NOTE , CLIENT_CREATE_NOTE_ACTIVE , CLIENT_CREATE_NOTE_COPY ,
  CLIENT_CREATE_NOTE_HOSTS , CLIENT_CREATE_NOTE_NVT , CLIENT_CREATE_NOTE_PORT , CLIENT_CREATE_NOTE_RESULT ,
  CLIENT_CREATE_NOTE_SEVERITY , CLIENT_CREATE_NOTE_TASK , CLIENT_CREATE_NOTE_TEXT , CLIENT_CREATE_NOTE_THREAT ,
  CLIENT_CREATE_OVERRIDE , CLIENT_CREATE_OVERRIDE_ACTIVE , CLIENT_CREATE_OVERRIDE_COPY , CLIENT_CREATE_OVERRIDE_HOSTS ,
  CLIENT_CREATE_OVERRIDE_NEW_SEVERITY , CLIENT_CREATE_OVERRIDE_NEW_THREAT , CLIENT_CREATE_OVERRIDE_NVT , CLIENT_CREATE_OVERRIDE_PORT ,
  CLIENT_CREATE_OVERRIDE_RESULT , CLIENT_CREATE_OVERRIDE_SEVERITY , CLIENT_CREATE_OVERRIDE_TASK , CLIENT_CREATE_OVERRIDE_TEXT ,
  CLIENT_CREATE_OVERRIDE_THREAT , CLIENT_CREATE_PERMISSION , CLIENT_CREATE_PERMISSION_COMMENT , CLIENT_CREATE_PERMISSION_COPY ,
  CLIENT_CREATE_PERMISSION_NAME , CLIENT_CREATE_PERMISSION_RESOURCE , CLIENT_CREATE_PERMISSION_RESOURCE_TYPE , CLIENT_CREATE_PERMISSION_SUBJECT ,
  CLIENT_CREATE_PERMISSION_SUBJECT_TYPE , CLIENT_CREATE_PORT_LIST , CLIENT_CREATE_PORT_RANGE , CLIENT_CREATE_PORT_RANGE_COMMENT ,
  CLIENT_CREATE_PORT_RANGE_END , CLIENT_CREATE_PORT_RANGE_PORT_LIST , CLIENT_CREATE_PORT_RANGE_START , CLIENT_CREATE_PORT_RANGE_TYPE ,
  CLIENT_CREATE_REPORT_FORMAT , CLIENT_CREATE_REPORT , CLIENT_CREATE_REPORT_IN_ASSETS , CLIENT_CREATE_REPORT_REPORT ,
  CLIENT_CREATE_REPORT_RR , CLIENT_CREATE_REPORT_RR_FILTERS , CLIENT_CREATE_REPORT_RR_ERRORS , CLIENT_CREATE_REPORT_RR_ERRORS_COUNT ,
  CLIENT_CREATE_REPORT_RR_ERRORS_ERROR , CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_DESCRIPTION , CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_HOST , CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_HOST_ASSET ,
  CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_HOST_HOSTNAME , CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_NVT , CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_NVT_CVSS_BASE , CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_NVT_NAME ,
  CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_PORT , CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_SCAN_NVT_VERSION , CLIENT_CREATE_REPORT_RR_ERRORS_ERROR_SEVERITY , CLIENT_CREATE_REPORT_RR_H ,
  CLIENT_CREATE_REPORT_RR_HOSTS , CLIENT_CREATE_REPORT_RR_HOST_COUNT , CLIENT_CREATE_REPORT_RR_HOST_END , CLIENT_CREATE_REPORT_RR_HOST_END_HOST ,
  CLIENT_CREATE_REPORT_RR_HOST_START , CLIENT_CREATE_REPORT_RR_HOST_START_HOST , CLIENT_CREATE_REPORT_RR_H_DETAIL , CLIENT_CREATE_REPORT_RR_H_DETAIL_NAME ,
  CLIENT_CREATE_REPORT_RR_H_DETAIL_SOURCE , CLIENT_CREATE_REPORT_RR_H_DETAIL_SOURCE_DESC , CLIENT_CREATE_REPORT_RR_H_DETAIL_SOURCE_NAME , CLIENT_CREATE_REPORT_RR_H_DETAIL_SOURCE_TYPE ,
  CLIENT_CREATE_REPORT_RR_H_DETAIL_VALUE , CLIENT_CREATE_REPORT_RR_H_END , CLIENT_CREATE_REPORT_RR_H_IP , CLIENT_CREATE_REPORT_RR_H_START ,
  CLIENT_CREATE_REPORT_RR_PORTS , CLIENT_CREATE_REPORT_RR_REPORT_FORMAT , CLIENT_CREATE_REPORT_RR_RESULTS , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_COMMENT , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_CREATION_TIME , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_DESCRIPTION , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_DETECTION ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_DETECTION_RESULT , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_DETECTION_RESULT_DETAILS , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_DETECTION_RESULT_DETAILS_DETAIL , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_DETECTION_RESULT_DETAILS_DETAIL_NAME ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_DETECTION_RESULT_DETAILS_DETAIL_VALUE , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_HOST , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_HOST_ASSET , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_HOST_HOSTNAME ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_MODIFICATION_TIME , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NAME , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NOTES , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT_BID , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT_CERT , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT_CERT_CERT_REF , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT_CVE ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT_CVSS_BASE , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT_FAMILY , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT_NAME , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_NVT_XREF ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_OWNER , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_ORIGINAL_SEVERITY , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_ORIGINAL_THREAT , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_OVERRIDES ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_PORT , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_QOD , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_QOD_TYPE , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_QOD_VALUE ,
  CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_SCAN_NVT_VERSION , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_SEVERITY , CLIENT_CREATE_REPORT_RR_RESULTS_RESULT_THREAT , CLIENT_CREATE_REPORT_RR_RESULT_COUNT ,
  CLIENT_CREATE_REPORT_RR_SCAN_END , CLIENT_CREATE_REPORT_RR_SCAN_RUN_STATUS , CLIENT_CREATE_REPORT_RR_SCAN_START , CLIENT_CREATE_REPORT_RR_SORT ,
  CLIENT_CREATE_REPORT_RR_TASK , CLIENT_CREATE_REPORT_TASK , CLIENT_CREATE_REPORT_TASK_COMMENT , CLIENT_CREATE_REPORT_TASK_NAME ,
  CLIENT_CREATE_ROLE , CLIENT_CREATE_ROLE_COMMENT , CLIENT_CREATE_ROLE_COPY , CLIENT_CREATE_ROLE_NAME ,
  CLIENT_CREATE_ROLE_USERS , CLIENT_CREATE_SCANNER , CLIENT_CREATE_SCANNER_COMMENT , CLIENT_CREATE_SCANNER_COPY ,
  CLIENT_CREATE_SCANNER_NAME , CLIENT_CREATE_SCANNER_HOST , CLIENT_CREATE_SCANNER_PORT , CLIENT_CREATE_SCANNER_TYPE ,
  CLIENT_CREATE_SCANNER_CA_PUB , CLIENT_CREATE_SCANNER_CREDENTIAL , CLIENT_CREATE_SCHEDULE , CLIENT_CREATE_SCHEDULE_COMMENT ,
  CLIENT_CREATE_SCHEDULE_COPY , CLIENT_CREATE_SCHEDULE_ICALENDAR , CLIENT_CREATE_SCHEDULE_NAME , CLIENT_CREATE_SCHEDULE_TIMEZONE ,
  CLIENT_CREATE_TAG , CLIENT_CREATE_TAG_ACTIVE , CLIENT_CREATE_TAG_COMMENT , CLIENT_CREATE_TAG_COPY ,
  CLIENT_CREATE_TAG_NAME , CLIENT_CREATE_TAG_RESOURCES , CLIENT_CREATE_TAG_RESOURCES_RESOURCE , CLIENT_CREATE_TAG_RESOURCES_TYPE ,
  CLIENT_CREATE_TAG_VALUE , CLIENT_CREATE_TARGET , CLIENT_CREATE_TARGET_ALIVE_TESTS , CLIENT_CREATE_TARGET_ALLOW_SIMULTANEOUS_IPS ,
  CLIENT_CREATE_TARGET_ASSET_HOSTS , CLIENT_CREATE_TARGET_EXCLUDE_HOSTS , CLIENT_CREATE_TARGET_REVERSE_LOOKUP_ONLY , CLIENT_CREATE_TARGET_REVERSE_LOOKUP_UNIFY ,
  CLIENT_CREATE_TARGET_COMMENT , CLIENT_CREATE_TARGET_COPY , CLIENT_CREATE_TARGET_ESXI_CREDENTIAL , CLIENT_CREATE_TARGET_ESXI_LSC_CREDENTIAL ,
  CLIENT_CREATE_TARGET_HOSTS , CLIENT_CREATE_TARGET_NAME , CLIENT_CREATE_TARGET_PORT_LIST , CLIENT_CREATE_TARGET_PORT_RANGE ,
  CLIENT_CREATE_TARGET_SMB_CREDENTIAL , CLIENT_CREATE_TARGET_SNMP_CREDENTIAL , CLIENT_CREATE_TARGET_SSH_CREDENTIAL , CLIENT_CREATE_TARGET_SSH_CREDENTIAL_PORT ,
  CLIENT_CREATE_TARGET_SMB_LSC_CREDENTIAL , CLIENT_CREATE_TARGET_SSH_LSC_CREDENTIAL , CLIENT_CREATE_TARGET_SSH_LSC_CREDENTIAL_PORT , CLIENT_CREATE_TARGET_SSH_ELEVATE_CREDENTIAL ,
  CLIENT_CREATE_TASK , CLIENT_CREATE_TASK_ALERT , CLIENT_CREATE_TASK_ALTERABLE , CLIENT_CREATE_TASK_COMMENT ,
  CLIENT_CREATE_TASK_CONFIG , CLIENT_CREATE_TASK_COPY , CLIENT_CREATE_TASK_HOSTS_ORDERING , CLIENT_CREATE_TASK_NAME ,
  CLIENT_CREATE_TASK_OBSERVERS , CLIENT_CREATE_TASK_OBSERVERS_GROUP , CLIENT_CREATE_TASK_PREFERENCES , CLIENT_CREATE_TASK_PREFERENCES_PREFERENCE ,
  CLIENT_CREATE_TASK_PREFERENCES_PREFERENCE_NAME , CLIENT_CREATE_TASK_PREFERENCES_PREFERENCE_VALUE , CLIENT_CREATE_TASK_SCANNER , CLIENT_CREATE_TASK_SCHEDULE ,
  CLIENT_CREATE_TASK_SCHEDULE_PERIODS , CLIENT_CREATE_TASK_TARGET , CLIENT_CREATE_TASK_USAGE_TYPE , CLIENT_CREATE_TICKET ,
  CLIENT_CREATE_TLS_CERTIFICATE , CLIENT_CREATE_USER , CLIENT_CREATE_USER_COMMENT , CLIENT_CREATE_USER_COPY ,
  CLIENT_CREATE_USER_GROUPS , CLIENT_CREATE_USER_GROUPS_GROUP , CLIENT_CREATE_USER_HOSTS , CLIENT_CREATE_USER_NAME ,
  CLIENT_CREATE_USER_PASSWORD , CLIENT_CREATE_USER_ROLE , CLIENT_CREATE_USER_SOURCES , CLIENT_CREATE_USER_SOURCES_SOURCE ,
  CLIENT_DELETE_ALERT , CLIENT_DELETE_ASSET , CLIENT_DELETE_CONFIG , CLIENT_DELETE_CREDENTIAL ,
  CLIENT_DELETE_FILTER , CLIENT_DELETE_GROUP , CLIENT_DELETE_NOTE , CLIENT_DELETE_OVERRIDE ,
  CLIENT_DELETE_PERMISSION , CLIENT_DELETE_PORT_LIST , CLIENT_DELETE_PORT_RANGE , CLIENT_DELETE_REPORT ,
  CLIENT_DELETE_REPORT_FORMAT , CLIENT_DELETE_ROLE , CLIENT_DELETE_SCANNER , CLIENT_DELETE_SCHEDULE ,
  CLIENT_DELETE_TAG , CLIENT_DELETE_TARGET , CLIENT_DELETE_TASK , CLIENT_DELETE_TICKET ,
  CLIENT_DELETE_TLS_CERTIFICATE , CLIENT_DELETE_USER , CLIENT_DESCRIBE_AUTH , CLIENT_EMPTY_TRASHCAN ,
  CLIENT_GET_AGGREGATES , CLIENT_GET_AGGREGATES_DATA_COLUMN , CLIENT_GET_AGGREGATES_SORT , CLIENT_GET_AGGREGATES_TEXT_COLUMN ,
  CLIENT_GET_ALERTS , CLIENT_GET_ASSETS , CLIENT_GET_CONFIGS , CLIENT_GET_CREDENTIALS ,
  CLIENT_GET_FEEDS , CLIENT_GET_FILTERS , CLIENT_GET_GROUPS , CLIENT_GET_INFO ,
  CLIENT_GET_LICENSE , CLIENT_GET_NOTES , CLIENT_GET_NVTS , CLIENT_GET_NVT_FAMILIES ,
  CLIENT_GET_OVERRIDES , CLIENT_GET_PERMISSIONS , CLIENT_GET_PORT_LISTS , CLIENT_GET_PREFERENCES ,
  CLIENT_GET_REPORTS , CLIENT_GET_REPORT_FORMATS , CLIENT_GET_RESULTS , CLIENT_GET_ROLES ,
  CLIENT_GET_SCANNERS , CLIENT_GET_SCHEDULES , CLIENT_GET_SETTINGS , CLIENT_GET_SYSTEM_REPORTS ,
  CLIENT_GET_TAGS , CLIENT_GET_TARGETS , CLIENT_GET_TASKS , CLIENT_GET_TICKETS ,
  CLIENT_GET_TLS_CERTIFICATES , CLIENT_GET_USERS , CLIENT_GET_VERSION , CLIENT_GET_VERSION_AUTHENTIC ,
  CLIENT_GET_VULNS , CLIENT_HELP , CLIENT_MODIFY_ALERT , CLIENT_MODIFY_ALERT_ACTIVE ,
  CLIENT_MODIFY_ALERT_COMMENT , CLIENT_MODIFY_ALERT_CONDITION , CLIENT_MODIFY_ALERT_CONDITION_DATA , CLIENT_MODIFY_ALERT_CONDITION_DATA_NAME ,
  CLIENT_MODIFY_ALERT_EVENT , CLIENT_MODIFY_ALERT_EVENT_DATA , CLIENT_MODIFY_ALERT_EVENT_DATA_NAME , CLIENT_MODIFY_ALERT_FILTER ,
  CLIENT_MODIFY_ALERT_METHOD , CLIENT_MODIFY_ALERT_METHOD_DATA , CLIENT_MODIFY_ALERT_METHOD_DATA_NAME , CLIENT_MODIFY_ALERT_NAME ,
  CLIENT_MODIFY_ASSET , CLIENT_MODIFY_ASSET_COMMENT , CLIENT_MODIFY_AUTH , CLIENT_MODIFY_AUTH_GROUP ,
  CLIENT_MODIFY_AUTH_GROUP_AUTH_CONF_SETTING , CLIENT_MODIFY_AUTH_GROUP_AUTH_CONF_SETTING_KEY , CLIENT_MODIFY_AUTH_GROUP_AUTH_CONF_SETTING_VALUE , CLIENT_MODIFY_CONFIG ,
  CLIENT_MODIFY_CREDENTIAL , CLIENT_MODIFY_CREDENTIAL_ALLOW_INSECURE , CLIENT_MODIFY_CREDENTIAL_AUTH_ALGORITHM , CLIENT_MODIFY_CREDENTIAL_CERTIFICATE ,
  CLIENT_MODIFY_CREDENTIAL_COMMENT , CLIENT_MODIFY_CREDENTIAL_COMMUNITY , CLIENT_MODIFY_CREDENTIAL_KEY , CLIENT_MODIFY_CREDENTIAL_KEY_PHRASE ,
  CLIENT_MODIFY_CREDENTIAL_KEY_PRIVATE , CLIENT_MODIFY_CREDENTIAL_KEY_PUBLIC , CLIENT_MODIFY_CREDENTIAL_LOGIN , CLIENT_MODIFY_CREDENTIAL_NAME ,
  CLIENT_MODIFY_CREDENTIAL_PASSWORD , CLIENT_MODIFY_CREDENTIAL_PRIVACY , CLIENT_MODIFY_CREDENTIAL_PRIVACY_ALGORITHM , CLIENT_MODIFY_CREDENTIAL_PRIVACY_PASSWORD ,
  CLIENT_MODIFY_FILTER , CLIENT_MODIFY_FILTER_COMMENT , CLIENT_MODIFY_FILTER_NAME , CLIENT_MODIFY_FILTER_TERM ,
  CLIENT_MODIFY_FILTER_TYPE , CLIENT_MODIFY_GROUP , CLIENT_MODIFY_GROUP_COMMENT , CLIENT_MODIFY_GROUP_NAME ,
  CLIENT_MODIFY_GROUP_USERS , CLIENT_MODIFY_LICENSE , CLIENT_MODIFY_NOTE , CLIENT_MODIFY_NOTE_ACTIVE ,
  CLIENT_MODIFY_NOTE_HOSTS , CLIENT_MODIFY_NOTE_PORT , CLIENT_MODIFY_NOTE_RESULT , CLIENT_MODIFY_NOTE_SEVERITY ,
  CLIENT_MODIFY_NOTE_TASK , CLIENT_MODIFY_NOTE_TEXT , CLIENT_MODIFY_NOTE_THREAT , CLIENT_MODIFY_NOTE_NVT ,
  CLIENT_MODIFY_OVERRIDE , CLIENT_MODIFY_OVERRIDE_ACTIVE , CLIENT_MODIFY_OVERRIDE_HOSTS , CLIENT_MODIFY_OVERRIDE_NEW_SEVERITY ,
  CLIENT_MODIFY_OVERRIDE_NEW_THREAT , CLIENT_MODIFY_OVERRIDE_PORT , CLIENT_MODIFY_OVERRIDE_RESULT , CLIENT_MODIFY_OVERRIDE_SEVERITY ,
  CLIENT_MODIFY_OVERRIDE_TASK , CLIENT_MODIFY_OVERRIDE_TEXT , CLIENT_MODIFY_OVERRIDE_THREAT , CLIENT_MODIFY_OVERRIDE_NVT ,
  CLIENT_MODIFY_PERMISSION , CLIENT_MODIFY_PERMISSION_COMMENT , CLIENT_MODIFY_PERMISSION_NAME , CLIENT_MODIFY_PERMISSION_RESOURCE ,
  CLIENT_MODIFY_PERMISSION_RESOURCE_TYPE , CLIENT_MODIFY_PERMISSION_SUBJECT , CLIENT_MODIFY_PERMISSION_SUBJECT_TYPE , CLIENT_MODIFY_PORT_LIST ,
  CLIENT_MODIFY_PORT_LIST_COMMENT , CLIENT_MODIFY_PORT_LIST_NAME , CLIENT_MODIFY_REPORT_FORMAT , CLIENT_MODIFY_REPORT_FORMAT_ACTIVE ,
  CLIENT_MODIFY_REPORT_FORMAT_NAME , CLIENT_MODIFY_REPORT_FORMAT_PARAM , CLIENT_MODIFY_REPORT_FORMAT_PARAM_NAME , CLIENT_MODIFY_REPORT_FORMAT_PARAM_VALUE ,
  CLIENT_MODIFY_REPORT_FORMAT_SUMMARY , CLIENT_MODIFY_ROLE , CLIENT_MODIFY_ROLE_COMMENT , CLIENT_MODIFY_ROLE_NAME ,
  CLIENT_MODIFY_ROLE_USERS , CLIENT_MODIFY_SCANNER , CLIENT_MODIFY_SCANNER_COMMENT , CLIENT_MODIFY_SCANNER_NAME ,
  CLIENT_MODIFY_SCANNER_HOST , CLIENT_MODIFY_SCANNER_PORT , CLIENT_MODIFY_SCANNER_TYPE , CLIENT_MODIFY_SCANNER_CA_PUB ,
  CLIENT_MODIFY_SCANNER_CREDENTIAL , CLIENT_MODIFY_SCHEDULE , CLIENT_MODIFY_SCHEDULE_COMMENT , CLIENT_MODIFY_SCHEDULE_ICALENDAR ,
  CLIENT_MODIFY_SCHEDULE_NAME , CLIENT_MODIFY_SCHEDULE_TIMEZONE , CLIENT_MODIFY_SETTING , CLIENT_MODIFY_SETTING_NAME ,
  CLIENT_MODIFY_SETTING_VALUE , CLIENT_MODIFY_TAG , CLIENT_MODIFY_TAG_ACTIVE , CLIENT_MODIFY_TAG_COMMENT ,
  CLIENT_MODIFY_TAG_NAME , CLIENT_MODIFY_TAG_RESOURCES , CLIENT_MODIFY_TAG_RESOURCES_RESOURCE , CLIENT_MODIFY_TAG_RESOURCES_TYPE ,
  CLIENT_MODIFY_TAG_VALUE , CLIENT_MODIFY_TARGET , CLIENT_MODIFY_TARGET_ALIVE_TESTS , CLIENT_MODIFY_TARGET_ALLOW_SIMULTANEOUS_IPS ,
  CLIENT_MODIFY_TARGET_COMMENT , CLIENT_MODIFY_TARGET_ESXI_CREDENTIAL , CLIENT_MODIFY_TARGET_ESXI_LSC_CREDENTIAL , CLIENT_MODIFY_TARGET_HOSTS ,
  CLIENT_MODIFY_TARGET_EXCLUDE_HOSTS , CLIENT_MODIFY_TARGET_REVERSE_LOOKUP_ONLY , CLIENT_MODIFY_TARGET_REVERSE_LOOKUP_UNIFY , CLIENT_MODIFY_TARGET_NAME ,
  CLIENT_MODIFY_TARGET_PORT_LIST , CLIENT_MODIFY_TARGET_SMB_CREDENTIAL , CLIENT_MODIFY_TARGET_SNMP_CREDENTIAL , CLIENT_MODIFY_TARGET_SSH_CREDENTIAL ,
  CLIENT_MODIFY_TARGET_SSH_ELEVATE_CREDENTIAL , CLIENT_MODIFY_TARGET_SSH_CREDENTIAL_PORT , CLIENT_MODIFY_TARGET_SMB_LSC_CREDENTIAL , CLIENT_MODIFY_TARGET_SSH_LSC_CREDENTIAL ,
  CLIENT_MODIFY_TARGET_SSH_LSC_CREDENTIAL_PORT , CLIENT_MODIFY_TASK , CLIENT_MODIFY_TASK_ALERT , CLIENT_MODIFY_TASK_ALTERABLE ,
  CLIENT_MODIFY_TASK_COMMENT , CLIENT_MODIFY_TASK_CONFIG , CLIENT_MODIFY_TASK_FILE , CLIENT_MODIFY_TASK_NAME ,
  CLIENT_MODIFY_TASK_OBSERVERS , CLIENT_MODIFY_TASK_OBSERVERS_GROUP , CLIENT_MODIFY_TASK_PREFERENCES , CLIENT_MODIFY_TASK_PREFERENCES_PREFERENCE ,
  CLIENT_MODIFY_TASK_PREFERENCES_PREFERENCE_NAME , CLIENT_MODIFY_TASK_PREFERENCES_PREFERENCE_VALUE , CLIENT_MODIFY_TASK_SCHEDULE , CLIENT_MODIFY_TASK_SCHEDULE_PERIODS ,
  CLIENT_MODIFY_TASK_TARGET , CLIENT_MODIFY_TASK_HOSTS_ORDERING , CLIENT_MODIFY_TASK_SCANNER , CLIENT_MODIFY_TICKET ,
  CLIENT_MODIFY_TLS_CERTIFICATE , CLIENT_MODIFY_USER , CLIENT_MODIFY_USER_COMMENT , CLIENT_MODIFY_USER_GROUPS ,
  CLIENT_MODIFY_USER_GROUPS_GROUP , CLIENT_MODIFY_USER_HOSTS , CLIENT_MODIFY_USER_NAME , CLIENT_MODIFY_USER_NEW_NAME ,
  CLIENT_MODIFY_USER_PASSWORD , CLIENT_MODIFY_USER_ROLE , CLIENT_MODIFY_USER_SOURCES , CLIENT_MODIFY_USER_SOURCES_SOURCE ,
  CLIENT_MOVE_TASK , CLIENT_RESTORE , CLIENT_RESUME_TASK , CLIENT_RUN_WIZARD ,
  CLIENT_RUN_WIZARD_MODE , CLIENT_RUN_WIZARD_NAME , CLIENT_RUN_WIZARD_PARAMS , CLIENT_RUN_WIZARD_PARAMS_PARAM ,
  CLIENT_RUN_WIZARD_PARAMS_PARAM_NAME , CLIENT_RUN_WIZARD_PARAMS_PARAM_VALUE , CLIENT_START_TASK , CLIENT_STOP_TASK ,
  CLIENT_TEST_ALERT , CLIENT_VERIFY_REPORT_FORMAT , CLIENT_VERIFY_SCANNER
}
 Possible states of the client.
 

Functions

void buffer_results_xml (GString *buffer, iterator_t *results, task_t task, int include_notes, int include_notes_details, int include_overrides, int include_overrides_details, int include_tags, int include_tags_details, int include_details, const char *delta_state, iterator_t *delta_results, int changed, int cert_loaded, int lean)
 Buffer XML for some results. More...
 
static int check_certificate_x509 (const char *cert_str)
 Check that a string represents a valid x509 Certificate. More...
 
static int try_gpgme_import (const char *key_str, GArray *key_types, gpgme_protocol_t protocol)
 Check that a string represents a valid public key or certificate. More...
 
static int check_certificate_smime (const char *cert_str)
 Check that a string represents a valid S/MIME Certificate. More...
 
static int check_certificate (const char *cert_str, const char *credential_type)
 Check that a string represents a valid certificate. More...
 
static int check_public_key (const char *key_str)
 Check that a string represents a valid Public Key. More...
 
static int process_gmp (gmp_parser_t *parser, const gchar *command, gchar **response)
 Process an XML string. More...
 
static gmp_parser_tgmp_parser_new (int(*write_to_client)(const char *, void *), void *write_to_client_data, gchar **disable)
 Create a GMP parser. More...
 
static void gmp_parser_free (gmp_parser_t *gmp_parser)
 Free a GMP parser. More...
 
static int command_disabled (gmp_parser_t *gmp_parser, const gchar *name)
 Check if command has been disabled. More...
 
static void create_asset_data_reset (create_asset_data_t *data)
 Reset command data. More...
 
static void create_alert_data_reset (create_alert_data_t *data)
 Reset command data. More...
 
static void create_credential_data_reset (create_credential_data_t *data)
 Reset command data. More...
 
static void create_filter_data_reset (create_filter_data_t *data)
 Reset command data. More...
 
static void create_group_data_reset (create_group_data_t *data)
 Reset command data. More...
 
static void create_note_data_reset (create_note_data_t *data)
 Reset command data. More...
 
static void create_override_data_reset (create_override_data_t *data)
 Reset command data. More...
 
static void create_permission_data_reset (create_permission_data_t *data)
 Reset command data. More...
 
static void create_port_range_data_reset (create_port_range_data_t *data)
 Reset command data. More...
 
static void create_report_data_reset (create_report_data_t *data)
 Reset command data. More...
 
static void create_role_data_reset (create_role_data_t *data)
 Reset command data. More...
 
static void create_scanner_data_reset (create_scanner_data_t *data)
 Reset command data. More...
 
static void create_schedule_data_reset (create_schedule_data_t *data)
 Reset command data. More...
 
static void create_target_data_reset (create_target_data_t *data)
 Reset command data. More...
 
static void create_tag_data_reset (create_tag_data_t *data)
 Reset command data. More...
 
static void create_task_data_reset (create_task_data_t *data)
 Reset command data. More...
 
static void create_user_data_reset (create_user_data_t *data)
 Reset command data. More...
 
static void delete_asset_data_reset (delete_asset_data_t *data)
 Reset command data. More...
 
static void delete_config_data_reset (delete_config_data_t *data)
 Reset command data. More...
 
static void delete_alert_data_reset (delete_alert_data_t *data)
 Reset command data. More...
 
static void delete_credential_data_reset (delete_credential_data_t *data)
 Reset command data. More...
 
static void delete_filter_data_reset (delete_filter_data_t *data)
 Reset command data. More...
 
static void delete_group_data_reset (delete_group_data_t *data)
 Reset command data. More...
 
static void delete_note_data_reset (delete_note_data_t *data)
 Reset command data. More...
 
static void delete_permission_data_reset (delete_permission_data_t *data)
 Reset command data. More...
 
static void delete_port_list_data_reset (delete_port_list_data_t *data)
 Reset command data. More...
 
static void delete_port_range_data_reset (delete_port_range_data_t *data)
 Reset command data. More...
 
static void delete_override_data_reset (delete_override_data_t *data)
 Reset command data. More...
 
static void delete_report_data_reset (delete_report_data_t *data)
 Reset command data. More...
 
static void delete_report_format_data_reset (delete_report_format_data_t *data)
 Reset command data. More...
 
static void delete_role_data_reset (delete_role_data_t *data)
 Reset command data. More...
 
static void delete_scanner_data_reset (delete_scanner_data_t *data)
 Reset command data. More...
 
static void delete_schedule_data_reset (delete_schedule_data_t *data)
 Reset command data. More...
 
static void delete_tag_data_reset (delete_tag_data_t *data)
 Reset command data. More...
 
static void delete_target_data_reset (delete_target_data_t *data)
 Reset command data. More...
 
static void delete_task_data_reset (delete_task_data_t *data)
 Reset command data. More...
 
static void delete_user_data_reset (delete_user_data_t *data)
 Reset command data. More...
 
static void get_feeds_data_reset (get_feeds_data_t *data)
 Reset command data. More...
 
static void get_aggregates_data_reset (get_aggregates_data_t *data)
 Reset command data. More...
 
static void get_assets_data_reset (get_assets_data_t *data)
 Reset command data. More...
 
static void get_configs_data_reset (get_configs_data_t *data)
 Reset command data. More...
 
static void get_alerts_data_reset (get_alerts_data_t *data)
 Reset command data. More...
 
static void get_credentials_data_reset (get_credentials_data_t *data)
 Reset command data. More...
 
static void get_filters_data_reset (get_filters_data_t *data)
 Reset command data. More...
 
static void get_groups_data_reset (get_groups_data_t *data)
 Reset command data. More...
 
static void get_info_data_reset (get_info_data_t *data)
 Reset command data. More...
 
static void get_notes_data_reset (get_notes_data_t *data)
 Reset command data. More...
 
static void get_nvts_data_reset (get_nvts_data_t *data)
 Reset command data. More...
 
static void get_nvt_families_data_reset (get_nvt_families_data_t *data)
 Reset command data. More...
 
static void get_overrides_data_reset (get_overrides_data_t *data)
 Reset command data. More...
 
static void get_permissions_data_reset (get_permissions_data_t *data)
 Reset command data. More...
 
static void get_port_lists_data_reset (get_port_lists_data_t *data)
 Reset command data. More...
 
static void get_preferences_data_reset (get_preferences_data_t *data)
 Reset command data. More...
 
static void get_reports_data_reset (get_reports_data_t *data)
 Reset command data. More...
 
static void get_report_formats_data_reset (get_report_formats_data_t *data)
 Reset command data. More...
 
static void get_results_data_reset (get_results_data_t *data)
 Reset command data. More...
 
static void get_roles_data_reset (get_roles_data_t *data)
 Reset command data. More...
 
static void get_scanners_data_reset (get_scanners_data_t *data)
 Reset command data. More...
 
static void get_schedules_data_reset (get_schedules_data_t *data)
 Reset command data. More...
 
static void get_settings_data_reset (get_settings_data_t *data)
 Reset command data. More...
 
static void get_system_reports_data_reset (get_system_reports_data_t *data)
 Reset command data. More...
 
static void get_tags_data_reset (get_tags_data_t *data)
 Reset command data. More...
 
static void get_targets_data_reset (get_targets_data_t *data)
 Reset command data. More...
 
static void get_users_data_reset (get_users_data_t *data)
 Reset command data. More...
 
static void get_vulns_data_reset (get_vulns_data_t *data)
 Reset command data. More...
 
static void get_tasks_data_reset (get_tasks_data_t *data)
 Reset command data. More...
 
static void help_data_reset (help_data_t *data)
 Reset command data. More...
 
static void modify_alert_data_reset (modify_alert_data_t *data)
 Reset command data. More...
 
static void modify_asset_data_reset (modify_asset_data_t *data)
 Reset command data. More...
 
static void modify_auth_data_reset (modify_auth_data_t *data)
 Reset command data. More...
 
static void modify_credential_data_reset (modify_credential_data_t *data)
 Reset command data. More...
 
static void modify_filter_data_reset (modify_filter_data_t *data)
 Reset command data. More...
 
static void modify_group_data_reset (modify_group_data_t *data)
 Reset command data. More...
 
static void modify_permission_data_reset (modify_permission_data_t *data)
 Reset command data. More...
 
static void modify_port_list_data_reset (modify_port_list_data_t *data)
 Reset command data. More...
 
static void modify_report_format_data_reset (modify_report_format_data_t *data)
 Reset command data. More...
 
static void modify_role_data_reset (modify_role_data_t *data)
 Reset command data. More...
 
static void modify_scanner_data_reset (modify_scanner_data_t *data)
 Reset command data. More...
 
static void modify_schedule_data_reset (modify_schedule_data_t *data)
 Reset command data. More...
 
static void modify_tag_data_reset (modify_tag_data_t *data)
 Reset command data. More...
 
static void modify_setting_data_reset (modify_setting_data_t *data)
 Reset command data. More...
 
static void modify_target_data_reset (modify_target_data_t *data)
 Reset command data. More...
 
static void modify_task_data_reset (modify_task_data_t *data)
 Reset command data. More...
 
static void modify_note_data_reset (modify_note_data_t *data)
 Reset command data. More...
 
static void modify_override_data_reset (modify_override_data_t *data)
 Reset command data. More...
 
static void modify_user_data_reset (modify_user_data_t *data)
 Reset command data. More...
 
static void move_task_data_reset (move_task_data_t *data)
 Reset command data. More...
 
static void restore_data_reset (restore_data_t *data)
 Reset command data. More...
 
static void resume_task_data_reset (resume_task_data_t *data)
 Reset command data. More...
 
static void start_task_data_reset (start_task_data_t *data)
 Reset command data. More...
 
static void stop_task_data_reset (stop_task_data_t *data)
 Reset command data. More...
 
static void test_alert_data_reset (test_alert_data_t *data)
 Reset command data. More...
 
static void verify_report_format_data_reset (verify_report_format_data_t *data)
 Reset command data. More...
 
static void verify_scanner_data_reset (verify_scanner_data_t *data)
 Reset command data. More...
 
static void run_wizard_data_reset (run_wizard_data_t *data)
 Reset command data. More...
 
static void command_data_init (command_data_t *data)
 Initialise command data. More...
 
static void set_client_state (client_state_t state)
 Set the client state. More...
 
static char * make_xml_error_syntax (const char *tag, const char *text)
 Expand to XML for a STATUS_ERROR_SYNTAX response. More...
 
static void set_read_over (gmp_parser_t *gmp_parser)
 Set read_over flag on a parser. More...
 
static void gmp_xml_handle_start_element (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error)
 Handle the start of a GMP XML element. More...
 
static gboolean send_nvt (iterator_t *nvts, int details, int preferences, int pref_count, const char *timeout, config_t config, int(*write_to_client)(const char *, void *), void *write_to_client_data)
 Send XML for an NVT. More...
 
static gchar * convert_to_newlines (const char *text)
 Convert
's to real newline's. More...
 
static gchar * utf8_substring (const gchar *str, glong start_pos, glong end_pos)
 Get substring of UTF8 string. More...
 
static void buffer_notes_xml (GString *buffer, iterator_t *notes, int include_notes_details, int include_result, int *count)
 Buffer XML for some notes. More...
 
static void buffer_overrides_xml (GString *buffer, iterator_t *overrides, int include_overrides_details, int include_result, int *count)
 Buffer XML for some overrides. More...
 
void buffer_config_preference_xml (GString *buffer, iterator_t *prefs, config_t config, int hide_passwords)
 Buffer XML for the NVT preference of a config. More...
 
static gchar * strdiff (const gchar *one, const gchar *two)
 Compare two string with the "diff" command. More...
 
static void buffer_result_notes_xml (GString *buffer, result_t result, task_t task, int include_notes_details, int lean)
 Buffer XML for notes of a result. More...
 
static void buffer_result_overrides_xml (GString *buffer, result_t result, task_t task, int include_overrides_details, int lean)
 Buffer XML for overrides of a result. More...
 
static void add_detail (GString *buffer, const gchar *name, const gchar *value)
 Add a detail block to a XML buffer. More...
 
static void results_xml_append_cert (GString *buffer, iterator_t *results, const char *oid, int cert_loaded, int *first)
 Append a REFS element to an XML buffer. More...
 
static void results_xml_append_nvt (iterator_t *results, GString *buffer, int cert_loaded)
 Append an NVT element to an XML buffer. More...
 
static void init_aggregate_lists (const gchar *group_column, const gchar *subgroup_column, GList *data_column_list, GList *text_column_list, GList *sort_data_list, gchar **group_column_type, gchar **subgroup_column_type, GArray **data_column_types, GArray **data_columns, GArray **text_column_types, GArray **text_columns, GArray **sort_data, GArray **c_sums)
 Initialize lists for aggregates. More...
 
static int strcasecmp_reverse (gchar *s1, gchar *s2)
 Helper function for comparing strings in reverse order. More...
 
static int compare_count_data (gconstpointer c1, gconstpointer c2, gpointer dummy)
 Helper function for comparing word count structs by count. More...
 
static int compare_count_data_reverse (gconstpointer c1, gconstpointer c2, gpointer dummy)
 Helper function for comparing word count structs by count in reverse. More...
 
static gboolean copy_word_counts_asc (gpointer key, gpointer value, gpointer data)
 Copy word counts to a GSequence of count_data_t structs (ascending). More...
 
static gboolean copy_word_counts_desc (gpointer key, gpointer value, gpointer data)
 Copy word counts to a GSequence of count_data_t structs (descending). More...
 
static gboolean buffer_word_counts_tree (gpointer key, gpointer value, gpointer data)
 Buffer word count data. More...
 
static void buffer_word_counts_seq (gpointer value, gpointer buffer)
 Buffer word count data. More...
 
static void buffer_aggregate_wc_xml (GString *xml, iterator_t *aggregate, const gchar *type, const char *group_column, GArray *sort_data, int first_group, int max_groups)
 Count words of an aggregate and buffer as XML. More...
 
static gboolean buffer_aggregate_subgroup_value (gchar *key, long int *value, GString *buffer)
 Buffer a get_aggregates subgroup value from a cumulative count GTree. More...
 
static void buffer_aggregate_xml (GString *xml, iterator_t *aggregate, const gchar *type, const char *group_column, const char *group_column_type, const char *subgroup_column, const char *subgroup_column_type, GArray *data_columns, GArray *data_column_types, GArray *text_columns, GArray *text_column_types, GArray *c_sums)
 Buffer XML for an aggregate. More...
 
static void handle_get_aggregates (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_AGGREGATES element. More...
 
static void handle_get_alerts (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_ALERTS element. More...
 
static void handle_get_assets (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_ASSETS element. More...
 
static void handle_get_configs (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_CONFIGS element. More...
 
static void handle_get_credentials (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_CREDENTIALS element. More...
 
static const char * feed_type_name (int feed_type)
 Get a single feed. More...
 
static int get_feed_lock_status (const char *lockfile_name, gchar **timestamp)
 Gets the status and timestamp of a feed lockfile. More...
 
static void get_nvt_feed (gmp_parser_t *gmp_parser, GError **error)
 Get NVT feed. More...
 
static int get_feed_info_parse (entity_t entity, const gchar *config_path, gchar **name, gchar **version, gchar **description)
 Parse feed info entity. More...
 
static int get_feed_info (int feed_type, gchar **feed_name, gchar **feed_version, gchar **feed_description)
 Get feed info. More...
 
static void get_feed (gmp_parser_t *gmp_parser, GError **error, int feed_type)
 Get a single feed. More...
 
static void handle_get_feeds (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_FEEDS element. More...
 
static void handle_get_filters (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_FILTERS element. More...
 
static void handle_get_groups (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_GROUPS element. More...
 
static void handle_get_info (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_INFO element. More...
 
static void handle_get_notes (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_NOTES element. More...
 
static void handle_get_nvts (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_NVTS element. More...
 
static void handle_get_nvt_families (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_NVT_FAMILIES element. More...
 
static void handle_get_overrides (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_OVERRIDES element. More...
 
static void handle_get_permissions (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_PERMISSIONS element. More...
 
static void handle_get_port_lists (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_PORT_LISTS element. More...
 
static void handle_get_preferences (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_PREFERENCES element. More...
 
static void handle_get_reports (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_REPORTS element. More...
 
static void handle_get_report_formats (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_REPORT_FORMATS element. More...
 
static void handle_get_results (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_RESULTS element. More...
 
static void handle_get_roles (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_ROLES element. More...
 
static void handle_get_scanners (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_SCANNERS element. More...
 
static void handle_get_schedules (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_SCHEDULES element. More...
 
static void handle_create_schedule (gmp_parser_t *gmp_parser, GError **error)
 Handle end of CREATE_SCHEDULE element. More...
 
static void handle_modify_schedule (gmp_parser_t *gmp_parser, GError **error)
 Handle end of MODIFY_SCHEDULE element. More...
 
static void handle_get_settings (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_SCHEDULES element. More...
 
static void handle_get_system_reports (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_SYSTEM_REPORTS element. More...
 
static void handle_get_tags (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_TAGS element. More...
 
static void handle_get_targets (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_TARGETS element. More...
 
static gchar * get_task_schedule_xml (task_t task)
 Gets task schedule data of a task as XML. More...
 
static void handle_get_tasks (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_TASKS element. More...
 
static void handle_get_users (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_USER element. More...
 
static void handle_get_version (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_VERSION element. More...
 
static void handle_get_vulns (gmp_parser_t *gmp_parser, GError **error)
 Handle end of GET_VULNS element. More...
 
static void handle_create_scanner (gmp_parser_t *gmp_parser, GError **error)
 Handle end of CREATE_SCANNER element. More...
 
static void handle_modify_scanner (gmp_parser_t *gmp_parser, GError **error)
 Handle end of MODIFY_SCANNER element. More...
 
static void gmp_xml_handle_result ()
 Handle create_report_data->results_* for gmp_xml_handle_end_element. More...
 
static void gmp_xml_handle_end_element (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error)
 Handle the end of a GMP XML element. More...
 
static void gmp_xml_handle_text (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error)
 Handle the addition of text to a GMP XML element. More...
 
static void gmp_xml_handle_error (GMarkupParseContext *context, GError *error, gpointer user_data)
 Handle a GMP XML parsing error. More...
 
int init_gmp (GSList *log_config, const db_conn_info_t *database, int max_ips_per_target, int max_email_attachment_size, int max_email_include_size, int max_email_message_size, manage_connection_forker_t fork_connection, int skip_db_check)
 Initialise GMP library. More...
 
void init_gmp_process (const db_conn_info_t *database, int(*write_to_client)(const char *, void *), void *write_to_client_data, gchar **disable)
 Initialise GMP library data for a process. More...
 
int process_gmp_client_input ()
 Process any XML available in from_client. More...
 
static int process_gmp_write (const char *msg, void *buffer)
 Buffer the response for process_gmp. More...
 

Variables

static command_data_t command_data
 Parser callback data.
 
static create_asset_data_tcreate_asset_data = (create_asset_data_t*) &(command_data.create_asset)
 Parser callback data for CREATE_ASSET.
 
static create_alert_data_tcreate_alert_data = (create_alert_data_t*) &(command_data.create_alert)
 Parser callback data for CREATE_ALERT.
 
static create_credential_data_tcreate_credential_data = (create_credential_data_t*) &(command_data.create_credential)
 Parser callback data for CREATE_CREDENTIAL.
 
static create_filter_data_tcreate_filter_data = (create_filter_data_t*) &(command_data.create_filter)
 Parser callback data for CREATE_FILTER.
 
static create_group_data_tcreate_group_data = (create_group_data_t*) &(command_data.create_group)
 Parser callback data for CREATE_GROUP.
 
static create_note_data_tcreate_note_data = (create_note_data_t*) &(command_data.create_note)
 Parser callback data for CREATE_NOTE.
 
static create_override_data_tcreate_override_data = (create_override_data_t*) &(command_data.create_override)
 Parser callback data for CREATE_OVERRIDE.
 
static create_permission_data_tcreate_permission_data = (create_permission_data_t*) &(command_data.create_permission)
 Parser callback data for CREATE_PERMISSION.
 
static create_port_range_data_tcreate_port_range_data = (create_port_range_data_t*) &(command_data.create_port_range)
 Parser callback data for CREATE_PORT_RANGE.
 
static create_role_data_tcreate_role_data = (create_role_data_t*) &(command_data.create_role)
 Parser callback data for CREATE_ROLE.
 
static create_report_data_tcreate_report_data = (create_report_data_t*) &(command_data.create_report)
 Parser callback data for CREATE_REPORT.
 
static create_scanner_data_tcreate_scanner_data = (create_scanner_data_t*) &(command_data.create_scanner)
 Parser callback data for CREATE_SCANNER.
 
static create_schedule_data_tcreate_schedule_data = (create_schedule_data_t*) &(command_data.create_schedule)
 Parser callback data for CREATE_SCHEDULE.
 
static create_tag_data_tcreate_tag_data = (create_tag_data_t*) &(command_data.create_tag)
 Parser callback data for CREATE_TAG.
 
static create_target_data_tcreate_target_data = (create_target_data_t*) &(command_data.create_target)
 Parser callback data for CREATE_TARGET.
 
static create_task_data_tcreate_task_data = (create_task_data_t*) &(command_data.create_task)
 Parser callback data for CREATE_TASK.
 
static create_user_data_tcreate_user_data = &(command_data.create_user)
 Parser callback data for CREATE_USER.
 
static delete_asset_data_tdelete_asset_data = (delete_asset_data_t*) &(command_data.delete_asset)
 Parser callback data for DELETE_ASSET.
 
static delete_config_data_tdelete_config_data = (delete_config_data_t*) &(command_data.delete_config)
 Parser callback data for DELETE_CONFIG.
 
static delete_alert_data_tdelete_alert_data = (delete_alert_data_t*) &(command_data.delete_alert)
 Parser callback data for DELETE_ALERT.
 
static delete_credential_data_tdelete_credential_data = (delete_credential_data_t*) &(command_data.delete_credential)
 Parser callback data for DELETE_CREDENTIAL.
 
static delete_filter_data_tdelete_filter_data = (delete_filter_data_t*) &(command_data.delete_filter)
 Parser callback data for DELETE_FILTER.
 
static delete_group_data_tdelete_group_data = (delete_group_data_t*) &(command_data.delete_group)
 Parser callback data for DELETE_GROUP.
 
static delete_note_data_tdelete_note_data = (delete_note_data_t*) &(command_data.delete_note)
 Parser callback data for DELETE_NOTE.
 
static delete_override_data_tdelete_override_data = (delete_override_data_t*) &(command_data.delete_override)
 Parser callback data for DELETE_OVERRIDE.
 
static delete_permission_data_tdelete_permission_data = (delete_permission_data_t*) &(command_data.delete_permission)
 Parser callback data for DELETE_PERMISSION.
 
static delete_port_list_data_tdelete_port_list_data = (delete_port_list_data_t*) &(command_data.delete_port_list)
 Parser callback data for DELETE_PORT_LIST.
 
static delete_port_range_data_tdelete_port_range_data = (delete_port_range_data_t*) &(command_data.delete_port_range)
 Parser callback data for DELETE_PORT_RANGE.
 
static delete_report_data_tdelete_report_data = (delete_report_data_t*) &(command_data.delete_report)
 Parser callback data for DELETE_REPORT.
 
static delete_report_format_data_tdelete_report_format_data = (delete_report_format_data_t*) &(command_data.delete_report_format)
 Parser callback data for DELETE_REPORT_FORMAT.
 
static delete_role_data_tdelete_role_data = (delete_role_data_t*) &(command_data.delete_role)
 Parser callback data for DELETE_ROLE.
 
static delete_scanner_data_tdelete_scanner_data = (delete_scanner_data_t*) &(command_data.delete_scanner)
 Parser callback data for DELETE_SCANNER.
 
static delete_schedule_data_tdelete_schedule_data = (delete_schedule_data_t*) &(command_data.delete_schedule)
 Parser callback data for DELETE_SCHEDULE.
 
static delete_tag_data_tdelete_tag_data = (delete_tag_data_t*) &(command_data.delete_tag)
 Parser callback data for DELETE_TAG.
 
static delete_target_data_tdelete_target_data = (delete_target_data_t*) &(command_data.delete_target)
 Parser callback data for DELETE_TARGET.
 
static delete_task_data_tdelete_task_data = (delete_task_data_t*) &(command_data.delete_task)
 Parser callback data for DELETE_TASK.
 
static delete_user_data_tdelete_user_data = (delete_user_data_t*) &(command_data.delete_user)
 Parser callback data for DELETE_USER.
 
static get_aggregates_data_tget_aggregates_data = &(command_data.get_aggregates)
 Parser callback data for GET_AGGREGATES.
 
static get_configs_data_tget_configs_data = &(command_data.get_configs)
 Parser callback data for GET_CONFIGS.
 
static get_alerts_data_tget_alerts_data = &(command_data.get_alerts)
 Parser callback data for GET_ALERTS.
 
static get_assets_data_tget_assets_data = &(command_data.get_assets)
 Parser callback data for GET_ASSETS.
 
static get_credentials_data_tget_credentials_data = &(command_data.get_credentials)
 Parser callback data for GET_CREDENTIALS.
 
static get_feeds_data_tget_feeds_data = &(command_data.get_feeds)
 Parser callback data for GET_FEEDS.
 
static get_filters_data_tget_filters_data = &(command_data.get_filters)
 Parser callback data for GET_FILTERS.
 
static get_groups_data_tget_groups_data = &(command_data.get_groups)
 Parser callback data for GET_GROUPS.
 
static get_info_data_tget_info_data = &(command_data.get_info)
 Parser callback data for GET_INFO.
 
static get_notes_data_tget_notes_data = &(command_data.get_notes)
 Parser callback data for GET_NOTES.
 
static get_nvts_data_tget_nvts_data = &(command_data.get_nvts)
 Parser callback data for GET_NVTS.
 
static get_nvt_families_data_tget_nvt_families_data = &(command_data.get_nvt_families)
 Parser callback data for GET_NVT_FAMILIES.
 
static get_overrides_data_tget_overrides_data = &(command_data.get_overrides)
 Parser callback data for GET_OVERRIDES.
 
static get_permissions_data_tget_permissions_data = &(command_data.get_permissions)
 Parser callback data for GET_PERMISSIONS.
 
static get_port_lists_data_tget_port_lists_data = &(command_data.get_port_lists)
 Parser callback data for GET_PORT_LISTS.
 
static get_preferences_data_tget_preferences_data = &(command_data.get_preferences)
 Parser callback data for GET_PREFERENCES.
 
static get_reports_data_tget_reports_data = &(command_data.get_reports)
 Parser callback data for GET_REPORTS.
 
static get_report_formats_data_tget_report_formats_data = &(command_data.get_report_formats)
 Parser callback data for GET_REPORT_FORMATS.
 
static get_results_data_tget_results_data = &(command_data.get_results)
 Parser callback data for GET_RESULTS.
 
static get_roles_data_tget_roles_data = &(command_data.get_roles)
 Parser callback data for GET_ROLES.
 
static get_scanners_data_tget_scanners_data = &(command_data.get_scanners)
 Parser callback data for GET_scannerS.
 
static get_schedules_data_tget_schedules_data = &(command_data.get_schedules)
 Parser callback data for GET_SCHEDULES.
 
static get_settings_data_tget_settings_data = &(command_data.get_settings)
 Parser callback data for GET_SETTINGS.
 
static get_system_reports_data_tget_system_reports_data = &(command_data.get_system_reports)
 Parser callback data for GET_SYSTEM_REPORTS.
 
static get_tags_data_tget_tags_data = &(command_data.get_tags)
 Parser callback data for GET_TAGS.
 
static get_targets_data_tget_targets_data = &(command_data.get_targets)
 Parser callback data for GET_TARGETS.
 
static get_tasks_data_tget_tasks_data = &(command_data.get_tasks)
 Parser callback data for GET_TASKS.
 
static get_users_data_tget_users_data = &(command_data.get_users)
 Parser callback data for GET_USERS.
 
static get_vulns_data_tget_vulns_data = &(command_data.get_vulns)
 Parser callback data for GET_VULNS.
 
static help_data_thelp_data = &(command_data.help)
 Parser callback data for HELP.
 
static modify_alert_data_tmodify_alert_data = &(command_data.modify_alert)
 Parser callback data for MODIFY_ALERT.
 
static modify_asset_data_tmodify_asset_data = &(command_data.modify_asset)
 Parser callback data for MODIFY_ASSET.
 
static modify_auth_data_tmodify_auth_data = &(command_data.modify_auth)
 Parser callback data for MODIFY_AUTH.
 
static modify_credential_data_tmodify_credential_data = &(command_data.modify_credential)
 Parser callback data for MODIFY_CREDENTIAL.
 
static modify_filter_data_tmodify_filter_data = &(command_data.modify_filter)
 Parser callback data for MODIFY_FILTER.
 
static modify_group_data_tmodify_group_data = &(command_data.modify_group)
 Parser callback data for MODIFY_GROUP.
 
static modify_note_data_tmodify_note_data = (modify_note_data_t*) &(command_data.create_note)
 Parser callback data for MODIFY_NOTE.
 
static modify_override_data_tmodify_override_data = (modify_override_data_t*) &(command_data.create_override)
 Parser callback data for MODIFY_OVERRIDE.
 
static modify_permission_data_tmodify_permission_data = &(command_data.modify_permission)
 Parser callback data for MODIFY_PERMISSION.
 
static modify_port_list_data_tmodify_port_list_data = &(command_data.modify_port_list)
 Parser callback data for MODIFY_PORT_LIST.
 
static modify_report_format_data_tmodify_report_format_data = &(command_data.modify_report_format)
 Parser callback data for MODIFY_REPORT_FORMAT.
 
static modify_role_data_tmodify_role_data = &(command_data.modify_role)
 Parser callback data for MODIFY_ROLE.
 
static modify_scanner_data_tmodify_scanner_data = &(command_data.modify_scanner)
 Parser callback data for MODIFY_SCANNER.
 
static modify_schedule_data_tmodify_schedule_data = &(command_data.modify_schedule)
 Parser callback data for MODIFY_SCHEDULE.
 
static modify_setting_data_tmodify_setting_data = &(command_data.modify_setting)
 Parser callback data for MODIFY_SETTING.
 
static modify_tag_data_tmodify_tag_data = (modify_tag_data_t*) &(command_data.modify_tag)
 Parser callback data for MODIFY_TAG.
 
static modify_target_data_tmodify_target_data = &(command_data.modify_target)
 Parser callback data for MODIFY_TARGET.
 
static modify_task_data_tmodify_task_data = &(command_data.modify_task)
 Parser callback data for MODIFY_TASK.
 
static modify_user_data_tmodify_user_data = &(command_data.modify_user)
 Parser callback data for MODIFY_USER.
 
static move_task_data_tmove_task_data = &(command_data.move_task)
 Parser callback data for MOVE_TASK.
 
static restore_data_trestore_data = (restore_data_t*) &(command_data.restore)
 Parser callback data for RESTORE.
 
static resume_task_data_tresume_task_data = (resume_task_data_t*) &(command_data.resume_task)
 Parser callback data for RESUME_TASK.
 
static start_task_data_tstart_task_data = (start_task_data_t*) &(command_data.start_task)
 Parser callback data for START_TASK.
 
static stop_task_data_tstop_task_data = (stop_task_data_t*) &(command_data.stop_task)
 Parser callback data for STOP_TASK.
 
static test_alert_data_ttest_alert_data = (test_alert_data_t*) &(command_data.test_alert)
 Parser callback data for TEST_ALERT.
 
static verify_report_format_data_tverify_report_format_data = (verify_report_format_data_t*) &(command_data.verify_report_format)
 Parser callback data for VERIFY_REPORT_FORMAT.
 
static verify_scanner_data_tverify_scanner_data = (verify_scanner_data_t*) &(command_data.verify_scanner)
 Parser callback data for VERIFY_SCANNER.
 
static run_wizard_data_trun_wizard_data = (run_wizard_data_t*) &(command_data.wizard)
 Parser callback data for WIZARD.
 
char to_client [TO_CLIENT_BUFFER_SIZE]
 Buffer of output to the client. More...
 
buffer_size_t to_client_start = 0
 The start of the data in the to_client buffer.
 
buffer_size_t to_client_end = 0
 The end of the data in the to_client buffer.
 
static GMarkupParseContext * xml_context = NULL
 Client input parsing context.
 
static GMarkupParser xml_parser
 Client input parser.
 
static client_state_t client_state = CLIENT_TOP
 The state of the client.
 
char client_address []
 The GMP client's address.
 
char from_client []
 Buffer of input from the client. More...
 
buffer_size_t from_client_start
 The start of the data in the from_client buffer.
 
buffer_size_t from_client_end
 The end of the data in the from_client buffer.
 

Detailed Description

The Greenbone Vulnerability Manager GMP library.

This file defines a Greenbone Management Protocol (GMP) library, for implementing managers such as the Greenbone Vulnerability Manager daemon.

The library provides process_gmp_client_input. This function parses a given string of GMP XML and tracks and manipulates tasks in reaction to the GMP commands in the string.

Macro Definition Documentation

◆ APPEND

#define APPEND (   state,
  dest 
)
Value:
case state: \
gvm_append_text (dest, text, text_len); \
break;

Append text to a var for a case in gmp_xml_hand_text.

Parameters
[in]stateParser state.
[in]destAppend destination.

◆ CASE_DELETE

#define CASE_DELETE (   upper,
  type,
  capital 
)

Insert DELETE case for gmp_xml_handle_end_element.

Parameters
[in]upperResource type in uppercase.
[in]typeResource type.
[in]capitalResource type capitalised.

◆ CASE_GET_END

#define CASE_GET_END (   upper,
  lower 
)
Value:
case CLIENT_GET_ ## upper: \
get_ ## lower ## _run (gmp_parser, error); \
set_client_state (CLIENT_AUTHENTIC); \
break;

Insert GET case for gmp_xml_handle_end_element.

Parameters
[in]upperWhat to GET, in uppercase.
[in]lowerWhat to GET, in lowercase.

◆ CLOSE

#define CLOSE (   parent,
  element 
)
Value:
case parent ## _ ## element: \
set_client_state (parent); \
break

Insert else clause for gmp_xml_handle_start_element.

Parameters
[in]parentParent element.
[in]elementElement.

◆ ELSE_GET_START

#define ELSE_GET_START (   lower,
  upper 
)
Value:
else if (strcasecmp ("GET_" G_STRINGIFY (upper), element_name) == 0) \
{ \
get_ ## lower ## _start (attribute_names, attribute_values); \
set_client_state (CLIENT_GET_ ## upper); \
}

Insert else clause for GET command in gmp_xml_handle_start_element.

Parameters
[in]lowerWhat to get, in lowercase.
[in]upperWhat to get, in uppercase.

◆ ELSE_READ_OVER

#define ELSE_READ_OVER
Value:
else \
{ \
set_read_over (gmp_parser); \
} \
break

Insert else clause for error in gmp_xml_handle_start_element.

◆ ELSE_READ_OVER_CREATE_TASK

#define ELSE_READ_OVER_CREATE_TASK
Value:
else \
{ \
request_delete_task (&create_task_data->task); \
set_read_over (gmp_parser); \
} \
break
static create_task_data_t * create_task_data
Parser callback data for CREATE_TASK.
Definition: gmp.c:3482
task_t task
ID of new task.
Definition: gmp.c:1033

Insert else clause for gmp_xml_handle_start_element in create_task.

◆ FEED_DESCRIPTION_TEMPLATE

#define FEED_DESCRIPTION_TEMPLATE
Value:
"This script synchronizes an NVT collection with the '%s'.\n" \
"The '%s' is provided by '%s'.\n" \
"Online information about this feed: '%s'.\n"

Template string for feed descriptions.

The first and second placeholders are replaced with the name, the third one with the vendor and the last one with the home URL.

◆ GET_NVT_FEED_ERROR

#define GET_NVT_FEED_ERROR
Value:
"<feed>" \
"<type>NVT</type>" \
"<name></name>" \
"<version></version>" \
"<description></description>" \
"<sync_not_available>" \
"<error>%s</error>" \
"</sync_not_available>" \
"</feed>"

Template string for get_nvt_feed error messages.

The placeholder is to be replaced by the actual message.

Function Documentation

◆ add_detail()

static void add_detail ( GString *  buffer,
const gchar *  name,
const gchar *  value 
)
static

Add a detail block to a XML buffer.

Parameters
[in]bufferBuffer.
[in]nameName.
[in]valueValue.

◆ buffer_aggregate_subgroup_value()

static gboolean buffer_aggregate_subgroup_value ( gchar *  key,
long int *  value,
GString *  buffer 
)
static

Buffer a get_aggregates subgroup value from a cumulative count GTree.

Parameters
[in]keyThe subgroup value used as key in the GTree.
[in]valueThe cumulative count used as value in the GTree.
[in,out]bufferA GString buffer to output the XML to.
Returns
Always FALSE.

◆ buffer_aggregate_wc_xml()

static void buffer_aggregate_wc_xml ( GString *  xml,
iterator_t aggregate,
const gchar *  type,
const char *  group_column,
GArray *  sort_data,
int  first_group,
int  max_groups 
)
static

Count words of an aggregate and buffer as XML.

Parameters
[in]xmlBuffer into which to buffer aggregate.
[in]aggregateThe aggregate iterator.
[in]typeThe aggregated type.
[in]group_columnColumn the data are grouped by.
[in]sort_dataSort data.
[in]first_groupIndex of the first word to output, starting at 0.
[in]max_groupsMaximum number of words to output or -1 for all.

◆ buffer_aggregate_xml()

static void buffer_aggregate_xml ( GString *  xml,
iterator_t aggregate,
const gchar *  type,
const char *  group_column,
const char *  group_column_type,
const char *  subgroup_column,
const char *  subgroup_column_type,
GArray *  data_columns,
GArray *  data_column_types,
GArray *  text_columns,
GArray *  text_column_types,
GArray *  c_sums 
)
static

Buffer XML for an aggregate.

Parameters
[in]xmlBuffer into which to buffer aggregate.
[in]aggregateThe aggregate iterator.
[in]typeThe aggregated type.
[in]group_columnColumn the data are grouped by.
[in]group_column_typeType of the group_column.
[in]subgroup_columnColumn the data are further grouped by.
[in]subgroup_column_type
[in]data_columnsColumns statistics are calculated for.
[in]data_column_typesTypes of the data_columns.
[in]text_columnsColumns used for labels.
[in]text_column_typesTypes of the text_columns.
[in]c_sumsArray for calculating cumulative sums.

◆ buffer_config_preference_xml()

void buffer_config_preference_xml ( GString *  buffer,
iterator_t prefs,
config_t  config,
int  hide_passwords 
)

Buffer XML for the NVT preference of a config.

Parameters
[in]bufferBuffer.
[in]prefsNVT preference iterator.
[in]configConfig.
[in]hide_passwordsWhether to hide passwords.

◆ buffer_notes_xml()

static void buffer_notes_xml ( GString *  buffer,
iterator_t notes,
int  include_notes_details,
int  include_result,
int *  count 
)
static

Buffer XML for some notes.

Parameters
[in]bufferBuffer into which to buffer notes.
[in]notesNotes iterator.
[in]include_notes_detailsWhether to include details of notes.
[in]include_resultWhether to include associated result.
[out]countNumber of notes.

◆ buffer_overrides_xml()

static void buffer_overrides_xml ( GString *  buffer,
iterator_t overrides,
int  include_overrides_details,
int  include_result,
int *  count 
)
static

Buffer XML for some overrides.

Parameters
[in]bufferBuffer into which to buffer overrides.
[in]overridesOverrides iterator.
[in]include_overrides_detailsWhether to include details of overrides.
[in]include_resultWhether to include associated result.
[out]countNumber of overrides.

◆ buffer_result_notes_xml()

static void buffer_result_notes_xml ( GString *  buffer,
result_t  result,
task_t  task,
int  include_notes_details,
int  lean 
)
static

Buffer XML for notes of a result.

Parameters
[in]bufferBuffer into which to buffer results.
[in]resultResult.
[in]taskTask associated with result.
[in]include_notes_detailsWhether to include details of notes.
[in]leanWhether to include less info.

◆ buffer_result_overrides_xml()

static void buffer_result_overrides_xml ( GString *  buffer,
result_t  result,
task_t  task,
int  include_overrides_details,
int  lean 
)
static

Buffer XML for overrides of a result.

Parameters
[in]bufferBuffer into which to buffer results.
[in]resultResult.
[in]taskTask associated with result.
[in]include_overrides_detailsWhether to include details of overrides.
[in]leanWhether to include less info.

◆ buffer_results_xml()

void buffer_results_xml ( GString *  buffer,
iterator_t results,
task_t  task,
int  include_notes,
int  include_notes_details,
int  include_overrides,
int  include_overrides_details,
int  include_tags,
int  include_tags_details,
int  include_details,
const char *  delta_state,
iterator_t delta_results,
int  changed,
int  cert_loaded,
int  lean 
)

Buffer XML for some results.

Todo:
Exported for manage_sql.c.
Todo:
Exported for manage_sql.c.

Includes cert_loaded arg.

Parameters
[in]bufferBuffer into which to buffer results.
[in]resultsResult iterator.
[in]taskTask associated with results. Only needed with include_notes or include_overrides.
[in]include_notesWhether to include notes.
[in]include_notes_detailsWhether to include details of notes.
[in]include_overridesWhether to include overrides.
[in]include_overrides_detailsWhether to include details of overrides.
[in]include_tagsWhether to include user tag count.
[in]include_tags_detailsWhether to include details of tags.
[in]include_detailsWhether to include details of the result.
[in]delta_stateDelta state of result, or NULL.
[in]delta_resultsIterator for delta result to include, or NULL.
[in]changedWhether the result is a "changed" delta.
[in]cert_loadedWhether the CERT db is loaded. 0 not loaded, -1 needs to be checked, else loaded.
[in]leanWhether to include less info.

◆ buffer_word_counts_seq()

static void buffer_word_counts_seq ( gpointer  value,
gpointer  buffer 
)
static

Buffer word count data.

Parameters
[in]valueThe value
bufferThe buffer object

◆ buffer_word_counts_tree()

static gboolean buffer_word_counts_tree ( gpointer  key,
gpointer  value,
gpointer  data 
)
static

Buffer word count data.

Parameters
[in]keyThe key (word).
[in]valueThe value (count).
dataThe buffer_counts_data_t struct containing info.
Returns
TRUE if the limit has been reached, FALSE otherwise

◆ check_certificate()

static int check_certificate ( const char *  cert_str,
const char *  credential_type 
)
static

Check that a string represents a valid certificate.

The type of certificate accepted depends on the credential_type.

Parameters
[in]cert_strCertificate string.
[in]credential_typeThe credential type to assume.
Returns
0 if valid, 1 otherwise.

◆ check_certificate_smime()

static int check_certificate_smime ( const char *  cert_str)
static

Check that a string represents a valid S/MIME Certificate.

Parameters
[in]cert_strCertificate string.
Returns
0 if valid, 1 otherwise.

◆ check_certificate_x509()

static int check_certificate_x509 ( const char *  cert_str)
static

Check that a string represents a valid x509 Certificate.

Parameters
[in]cert_strCertificate string.
Returns
0 if valid, 1 otherwise.

◆ check_public_key()

static int check_public_key ( const char *  key_str)
static

Check that a string represents a valid Public Key.

Parameters
[in]key_strPublic Key string.
Returns
0 if valid, 1 otherwise.

◆ command_data_init()

static void command_data_init ( command_data_t data)
static

Initialise command data.

Parameters
[in]dataCommand data.

◆ command_disabled()

static int command_disabled ( gmp_parser_t gmp_parser,
const gchar *  name 
)
static

Check if command has been disabled.

Parameters
[in]gmp_parserParser.
[in]nameCommand name.
Returns
1 disabled, 0 enabled.

◆ compare_count_data()

static int compare_count_data ( gconstpointer  c1,
gconstpointer  c2,
gpointer  dummy 
)
static

Helper function for comparing word count structs by count.

Parameters
[in]c1The first count struct to compare
[in]c2The second count struct to compare
[in]dummyDummy parameter required by glib.
Returns
A value > 0 if c1 > c2, a value < 0 if c1 < c2, 0 if c1 = c2.

◆ compare_count_data_reverse()

static int compare_count_data_reverse ( gconstpointer  c1,
gconstpointer  c2,
gpointer  dummy 
)
static

Helper function for comparing word count structs by count in reverse.

Parameters
[in]c1The first count struct to compare
[in]c2The second count struct to compare
[in]dummyDummy parameter required by glib.
Returns
A value > 0 if c1 < c2, a value < 0 if c1 > c2, 0 if c1 = c2.

◆ convert_to_newlines()

static gchar* convert_to_newlines ( const char *  text)
static

Convert
's to real newline's.

Parameters
[in]textThe text in which to insert newlines.
Returns
A newly allocated version of text.

◆ copy_word_counts_asc()

static gboolean copy_word_counts_asc ( gpointer  key,
gpointer  value,
gpointer  data 
)
static

Copy word counts to a GSequence of count_data_t structs (ascending).

Parameters
[in]keyThe key (word).
[in]valueThe value (count).
dataThe GSequence object to insert into.
Returns
Always FALSE.

◆ copy_word_counts_desc()

static gboolean copy_word_counts_desc ( gpointer  key,
gpointer  value,
gpointer  data 
)
static

Copy word counts to a GSequence of count_data_t structs (descending).

Parameters
[in]keyThe key (word).
[in]valueThe value (count).
dataThe GSequence object to insert into.
Returns
Always FALSE.

◆ create_alert_data_reset()

static void create_alert_data_reset ( create_alert_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_asset_data_reset()

static void create_asset_data_reset ( create_asset_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_credential_data_reset()

static void create_credential_data_reset ( create_credential_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_filter_data_reset()

static void create_filter_data_reset ( create_filter_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_group_data_reset()

static void create_group_data_reset ( create_group_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_note_data_reset()

static void create_note_data_reset ( create_note_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_override_data_reset()

static void create_override_data_reset ( create_override_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_permission_data_reset()

static void create_permission_data_reset ( create_permission_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_port_range_data_reset()

static void create_port_range_data_reset ( create_port_range_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_report_data_reset()

static void create_report_data_reset ( create_report_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_role_data_reset()

static void create_role_data_reset ( create_role_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_scanner_data_reset()

static void create_scanner_data_reset ( create_scanner_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_schedule_data_reset()

static void create_schedule_data_reset ( create_schedule_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_tag_data_reset()

static void create_tag_data_reset ( create_tag_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_target_data_reset()

static void create_target_data_reset ( create_target_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_task_data_reset()

static void create_task_data_reset ( create_task_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ create_user_data_reset()

static void create_user_data_reset ( create_user_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_alert_data_reset()

static void delete_alert_data_reset ( delete_alert_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_asset_data_reset()

static void delete_asset_data_reset ( delete_asset_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_config_data_reset()

static void delete_config_data_reset ( delete_config_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_credential_data_reset()

static void delete_credential_data_reset ( delete_credential_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_filter_data_reset()

static void delete_filter_data_reset ( delete_filter_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_group_data_reset()

static void delete_group_data_reset ( delete_group_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_note_data_reset()

static void delete_note_data_reset ( delete_note_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_override_data_reset()

static void delete_override_data_reset ( delete_override_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_permission_data_reset()

static void delete_permission_data_reset ( delete_permission_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_port_list_data_reset()

static void delete_port_list_data_reset ( delete_port_list_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_port_range_data_reset()

static void delete_port_range_data_reset ( delete_port_range_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_report_data_reset()

static void delete_report_data_reset ( delete_report_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_report_format_data_reset()

static void delete_report_format_data_reset ( delete_report_format_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_role_data_reset()

static void delete_role_data_reset ( delete_role_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_scanner_data_reset()

static void delete_scanner_data_reset ( delete_scanner_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_schedule_data_reset()

static void delete_schedule_data_reset ( delete_schedule_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_tag_data_reset()

static void delete_tag_data_reset ( delete_tag_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_target_data_reset()

static void delete_target_data_reset ( delete_target_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_task_data_reset()

static void delete_task_data_reset ( delete_task_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ delete_user_data_reset()

static void delete_user_data_reset ( delete_user_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ feed_type_name()

static const char* feed_type_name ( int  feed_type)
static

Get a single feed.

Parameters
[in]feed_typeFeed type.
Returns
Name of feed type.

◆ get_aggregates_data_reset()

static void get_aggregates_data_reset ( get_aggregates_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_alerts_data_reset()

static void get_alerts_data_reset ( get_alerts_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_assets_data_reset()

static void get_assets_data_reset ( get_assets_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_configs_data_reset()

static void get_configs_data_reset ( get_configs_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_credentials_data_reset()

static void get_credentials_data_reset ( get_credentials_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_feed()

static void get_feed ( gmp_parser_t gmp_parser,
GError **  error,
int  feed_type 
)
static

Get a single feed.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.
[in]feed_typeType of feed.

◆ get_feed_info()

static int get_feed_info ( int  feed_type,
gchar **  feed_name,
gchar **  feed_version,
gchar **  feed_description 
)
static

Get feed info.

Parameters
[in]feed_typeType of feed.
[out]feed_nameName of feed.
[out]feed_versionVersion of feed.
[out]feed_descriptionDescription of feed.
Returns
0 success, -1 error.

◆ get_feed_info_parse()

static int get_feed_info_parse ( entity_t  entity,
const gchar *  config_path,
gchar **  name,
gchar **  version,
gchar **  description 
)
static

Parse feed info entity.

Parameters
[in]entityConfig XML.
[in]config_pathPath to config XML file.
[out]nameName of feed.
[out]versionVersion of feed.
[out]descriptionDescription of feed.
Returns
0 success, -1 error.

◆ get_feed_lock_status()

static int get_feed_lock_status ( const char *  lockfile_name,
gchar **  timestamp 
)
static

Gets the status and timestamp of a feed lockfile.

Parameters
[in]lockfile_namePath to the lockfile.
[out]timestampOptional output o timestamp string.
Returns
0 lockfile was not locked, 1 lockfile was locked.

◆ get_feeds_data_reset()

static void get_feeds_data_reset ( get_feeds_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_filters_data_reset()

static void get_filters_data_reset ( get_filters_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_groups_data_reset()

static void get_groups_data_reset ( get_groups_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_info_data_reset()

static void get_info_data_reset ( get_info_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_notes_data_reset()

static void get_notes_data_reset ( get_notes_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_nvt_families_data_reset()

static void get_nvt_families_data_reset ( get_nvt_families_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_nvt_feed()

static void get_nvt_feed ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Get NVT feed.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ get_nvts_data_reset()

static void get_nvts_data_reset ( get_nvts_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_overrides_data_reset()

static void get_overrides_data_reset ( get_overrides_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_permissions_data_reset()

static void get_permissions_data_reset ( get_permissions_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_port_lists_data_reset()

static void get_port_lists_data_reset ( get_port_lists_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_preferences_data_reset()

static void get_preferences_data_reset ( get_preferences_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_report_formats_data_reset()

static void get_report_formats_data_reset ( get_report_formats_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_reports_data_reset()

static void get_reports_data_reset ( get_reports_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_results_data_reset()

static void get_results_data_reset ( get_results_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_roles_data_reset()

static void get_roles_data_reset ( get_roles_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_scanners_data_reset()

static void get_scanners_data_reset ( get_scanners_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_schedules_data_reset()

static void get_schedules_data_reset ( get_schedules_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_settings_data_reset()

static void get_settings_data_reset ( get_settings_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_system_reports_data_reset()

static void get_system_reports_data_reset ( get_system_reports_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_tags_data_reset()

static void get_tags_data_reset ( get_tags_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_targets_data_reset()

static void get_targets_data_reset ( get_targets_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_task_schedule_xml()

static gchar* get_task_schedule_xml ( task_t  task)
static

Gets task schedule data of a task as XML.

Parameters
[in]taskThe task to get schedule data for.
Returns
Newly allocated XML string.

◆ get_tasks_data_reset()

static void get_tasks_data_reset ( get_tasks_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_users_data_reset()

static void get_users_data_reset ( get_users_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ get_vulns_data_reset()

static void get_vulns_data_reset ( get_vulns_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ gmp_parser_free()

static void gmp_parser_free ( gmp_parser_t gmp_parser)
static

Free a GMP parser.

Parameters
[in]gmp_parserGMP parser.

◆ gmp_parser_new()

static gmp_parser_t* gmp_parser_new ( int(*)(const char *, void *)  write_to_client,
void *  write_to_client_data,
gchar **  disable 
)
static

Create a GMP parser.

Parameters
[in]write_to_clientFunction to write to client.
[in]write_to_client_dataArgument to write_to_client.
[in]disableCommands to disable. Copied, and freed by gmp_parser_free.
Returns
A GMP parser.

◆ gmp_xml_handle_end_element()

static void gmp_xml_handle_end_element ( GMarkupParseContext *  context,
const gchar *  element_name,
gpointer  user_data,
GError **  error 
)
static

Handle the end of a GMP XML element.

React to the end of an XML element according to the current value of client_state, usually adjusting client_state to indicate the change (with set_client_state). Call send_to_client to queue any responses for the client. Call the task utilities to adjust the tasks (for example start_task, stop_task, modify_task, delete_task and find_task_with_permission ).

Set error parameter on encountering an error.

Parameters
[in]contextParser context.
[in]element_nameXML element name.
[in]user_dataGMP parser.
[in]errorError parameter.
Todo:
Should respond with internal error.
Todo:
Legitimate to pass an empty hosts element?
Todo:
Any fail cases of the CLIENT_CREATE_TASK_* states must do so too.
Todo:

This is a contention hole. Some other process could remove the schedule at this point. The variable "schedule" would still refer to the removed schedule.

This happens all over the place. Anywhere that a libmanage client gets a reference to a resource, in fact.

Possibly libmanage should lock the db whenever it hands out a reference, and the client should call something to release the lock when it's done.

In many cases, like this one, the client could pass the UUID directly to libmanage, instead of getting the reference. In this case the client would then need something like set_task_schedule_uuid.

Todo:
Should respond with internal error.

◆ gmp_xml_handle_error()

static void gmp_xml_handle_error ( GMarkupParseContext *  context,
GError *  error,
gpointer  user_data 
)
static

Handle a GMP XML parsing error.

Simply leave the error for the caller of the parser to handle.

Parameters
[in]contextParser context.
[in]errorThe error.
[in]user_dataDummy parameter.

◆ gmp_xml_handle_result()

static void gmp_xml_handle_result ( )
static

Handle create_report_data->results_* for gmp_xml_handle_end_element.

Uses data: create_report_data->result_description create_report_data->result_host create_report_data->result_hostname create_report_data->result_nvt_oid create_report_data->result_port create_report_data->result_qod create_report_data->result_qod_type create_report_data->result_scan_nvt_version create_report_data->result_severity create_report_data->result_threat create_report_data->result_detection_name create_report_data->result_detection_product create_report_data->result_detection_source_name create_report_data->result_detection_source_oid create_report_data->result_detection_location create_report_data->result_detection

to create a create_report_data->result and add it into create_report_data->results

◆ gmp_xml_handle_start_element()

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

Handle the start of a GMP XML element.

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

React to the start of an XML element according to the current value of client_state, usually adjusting client_state to indicate the change (with set_client_state). Call send_to_client to queue any responses for the client.

Set error parameter on encountering an error.

Parameters
[in]contextParser context.
[in]element_nameXML element name.
[in]attribute_namesXML attribute names.
[in]attribute_valuesXML attribute values.
[in]user_dataGMP parser.
[in]errorError parameter.
Todo:
If a real GMP command, return STATUS_ERROR_MUST_AUTH.

◆ gmp_xml_handle_text()

static void gmp_xml_handle_text ( GMarkupParseContext *  context,
const gchar *  text,
gsize  text_len,
gpointer  user_data,
GError **  error 
)
static

Handle the addition of text to a GMP XML element.

React to the addition of text to the value of an XML element. React according to the current value of client_state, usually appending the text to some part of the current task with functions like gvm_append_text and append_to_task_comment.

Parameters
[in]contextParser context.
[in]textThe text.
[in]text_lenLength of the text.
[in]user_dataDummy parameter.
[in]errorError parameter.

◆ handle_create_scanner()

static void handle_create_scanner ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of CREATE_SCANNER element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_create_schedule()

static void handle_create_schedule ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of CREATE_SCHEDULE element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_aggregates()

static void handle_get_aggregates ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_AGGREGATES element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_alerts()

static void handle_get_alerts ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_ALERTS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_assets()

static void handle_get_assets ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_ASSETS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_configs()

static void handle_get_configs ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_CONFIGS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.
Todo:
This should really be an nvt_selector_t.

◆ handle_get_credentials()

static void handle_get_credentials ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_CREDENTIALS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_feeds()

static void handle_get_feeds ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_FEEDS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_filters()

static void handle_get_filters ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_FILTERS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_groups()

static void handle_get_groups ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_GROUPS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_info()

static void handle_get_info ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_INFO element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_notes()

static void handle_get_notes ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_NOTES element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_nvt_families()

static void handle_get_nvt_families ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_NVT_FAMILIES element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_nvts()

static void handle_get_nvts ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_NVTS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_overrides()

static void handle_get_overrides ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_OVERRIDES element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_permissions()

static void handle_get_permissions ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_PERMISSIONS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_port_lists()

static void handle_get_port_lists ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_PORT_LISTS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_preferences()

static void handle_get_preferences ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_PREFERENCES element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_report_formats()

static void handle_get_report_formats ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_REPORT_FORMATS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_reports()

static void handle_get_reports ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_REPORTS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.
Todo:
Respond in all error cases.

When something fails mid-way through the report, we can only close the connection. It would be nice to instead prepare everything before trying to send it, so that we could send an error response when there is a problem. Buffering the entire report before sending it would probably take too long and/or use to much memory.

◆ handle_get_results()

static void handle_get_results ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_RESULTS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_roles()

static void handle_get_roles ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_ROLES element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_scanners()

static void handle_get_scanners ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_SCANNERS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_schedules()

static void handle_get_schedules ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_SCHEDULES element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_settings()

static void handle_get_settings ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_SCHEDULES element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_system_reports()

static void handle_get_system_reports ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_SYSTEM_REPORTS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_tags()

static void handle_get_tags ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_TAGS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_targets()

static void handle_get_targets ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_TARGETS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_tasks()

static void handle_get_tasks ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_TASKS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_users()

static void handle_get_users ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_USER element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_version()

static void handle_get_version ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_VERSION element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_get_vulns()

static void handle_get_vulns ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of GET_VULNS element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_modify_scanner()

static void handle_modify_scanner ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of MODIFY_SCANNER element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ handle_modify_schedule()

static void handle_modify_schedule ( gmp_parser_t gmp_parser,
GError **  error 
)
static

Handle end of MODIFY_SCHEDULE element.

Parameters
[in]gmp_parserGMP parser.
[in]errorError parameter.

◆ help_data_reset()

static void help_data_reset ( help_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ init_aggregate_lists()

static void init_aggregate_lists ( const gchar *  group_column,
const gchar *  subgroup_column,
GList *  data_column_list,
GList *  text_column_list,
GList *  sort_data_list,
gchar **  group_column_type,
gchar **  subgroup_column_type,
GArray **  data_column_types,
GArray **  data_columns,
GArray **  text_column_types,
GArray **  text_columns,
GArray **  sort_data,
GArray **  c_sums 
)
static

Initialize lists for aggregates.

Parameters
[in]group_columnColumn the data are grouped by.
[in]subgroup_columnSecond column the data grouped by.
[in]data_column_listGList of columns statistics are calculated for.
[in]text_column_listGList of columns used for labels.
[in]sort_data_listGList of sort data.
[out]group_column_typeType of the group_column.
[out]subgroup_column_typeType of the group_column.
[out]data_column_typesTypes of the data_column.
[out]data_columnsdata_column_list copied to a GArray.
[out]text_column_typesTypes of the text_columns.
[out]text_columnstext_column_list copied to a GArray.
[out]sort_datasort_data_list copied to a GArray.
[out]c_sumsArray for calculating cumulative sums.

◆ init_gmp()

int init_gmp ( GSList *  log_config,
const db_conn_info_t database,
int  max_ips_per_target,
int  max_email_attachment_size,
int  max_email_include_size,
int  max_email_message_size,
manage_connection_forker_t  fork_connection,
int  skip_db_check 
)

Initialise GMP library.

Parameters
[in]log_configLogging configuration list.
[in]databaseLocation of manage database.
[in]max_ips_per_targetMax number of IPs per target.
[in]max_email_attachment_sizeMax size of email attachments.
[in]max_email_include_sizeMax size of email inclusions.
[in]max_email_message_sizeMax size of email user message text.
[in]fork_connectionFunction to fork a connection to the GMP daemon layer, or NULL.
[in]skip_db_checkSkip DB check.
Returns
0 success, -1 error, -2 database is wrong version, -4 max_ips_per_target out of range.

◆ init_gmp_process()

void init_gmp_process ( const db_conn_info_t database,
int(*)(const char *, void *)  write_to_client,
void *  write_to_client_data,
gchar **  disable 
)

Initialise GMP library data for a process.

Parameters
[in]databaseLocation of manage database.
[in]write_to_clientFunction to write to client.
[in]write_to_client_dataArgument to write_to_client.
[in]disableCommands to disable.

This should run once per process, before the first call to process_gmp_client_input.

◆ make_xml_error_syntax()

static char* make_xml_error_syntax ( const char *  tag,
const char *  text 
)
static

Expand to XML for a STATUS_ERROR_SYNTAX response.

This is a variant of the XML_ERROR_SYNTAX macro to allow for a runtime defined syntax_text attribute value.

Parameters
tagName of the command generating the response.
textValue for the status_text attribute of the response. The function takes care of proper quoting.
Returns
A malloced XML string. The caller must use g_free to release it.

◆ modify_alert_data_reset()

static void modify_alert_data_reset ( modify_alert_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_asset_data_reset()

static void modify_asset_data_reset ( modify_asset_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_auth_data_reset()

static void modify_auth_data_reset ( modify_auth_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_credential_data_reset()

static void modify_credential_data_reset ( modify_credential_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_filter_data_reset()

static void modify_filter_data_reset ( modify_filter_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_group_data_reset()

static void modify_group_data_reset ( modify_group_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_note_data_reset()

static void modify_note_data_reset ( modify_note_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_override_data_reset()

static void modify_override_data_reset ( modify_override_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_permission_data_reset()

static void modify_permission_data_reset ( modify_permission_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_port_list_data_reset()

static void modify_port_list_data_reset ( modify_port_list_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_report_format_data_reset()

static void modify_report_format_data_reset ( modify_report_format_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_role_data_reset()

static void modify_role_data_reset ( modify_role_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_scanner_data_reset()

static void modify_scanner_data_reset ( modify_scanner_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_schedule_data_reset()

static void modify_schedule_data_reset ( modify_schedule_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_setting_data_reset()

static void modify_setting_data_reset ( modify_setting_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_tag_data_reset()

static void modify_tag_data_reset ( modify_tag_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_target_data_reset()

static void modify_target_data_reset ( modify_target_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_task_data_reset()

static void modify_task_data_reset ( modify_task_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ modify_user_data_reset()

static void modify_user_data_reset ( modify_user_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ move_task_data_reset()

static void move_task_data_reset ( move_task_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ process_gmp()

static int process_gmp ( gmp_parser_t parser,
const gchar *  command,
gchar **  response 
)
static

Process an XML string.

Parameters
[in]parserParser.
[in]commandCommand.
[in]responseResponse.
Returns
0 success, -4 XML syntax error. -1 error.

◆ process_gmp_client_input()

int process_gmp_client_input ( )

Process any XML available in from_client.

Returns
0 success, -1 error, -4 XML syntax error.

◆ process_gmp_write()

static int process_gmp_write ( const char *  msg,
void *  buffer 
)
static

Buffer the response for process_gmp.

Parameters
[in]msgGMP response.
[in]bufferBuffer.
Returns
TRUE if failed, else FALSE.

◆ restore_data_reset()

static void restore_data_reset ( restore_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ results_xml_append_cert()

static void results_xml_append_cert ( GString *  buffer,
iterator_t results,
const char *  oid,
int  cert_loaded,
int *  first 
)
static

Append a REFS element to an XML buffer.

Parameters
[in]bufferBuffer.
[in]resultsResult iterator.
[in]oidOID.
[in]cert_loadedWhether CERT db is loaded.
[in]firstMarker for first element.

◆ results_xml_append_nvt()

static void results_xml_append_nvt ( iterator_t results,
GString *  buffer,
int  cert_loaded 
)
static

Append an NVT element to an XML buffer.

Parameters
[in]resultsResults.
[in]bufferBuffer.
[in]cert_loadedWhether CERT db is loaded.

◆ resume_task_data_reset()

static void resume_task_data_reset ( resume_task_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ run_wizard_data_reset()

static void run_wizard_data_reset ( run_wizard_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ send_nvt()

static gboolean send_nvt ( iterator_t nvts,
int  details,
int  preferences,
int  pref_count,
const char *  timeout,
config_t  config,
int(*)(const char *, void *)  write_to_client,
void *  write_to_client_data 
)
static

Send XML for an NVT.

The caller must send the closing NVT tag.

Parameters
[in]nvtsThe NVT.
[in]detailsIf true, detailed XML, else simple XML.
[in]preferencesIf true, included preferences.
[in]pref_countPreference count. Used if details is true.
[in]timeoutTimeout. Used if details is true.
[in]configConfig, used if preferences is true.
[in]write_to_clientFunction to write to client.
[in]write_to_client_dataArgument to write_to_client.
Returns
TRUE if out of space in to_client buffer, else FALSE.

◆ set_client_state()

static void set_client_state ( client_state_t  state)
static

Set the client state.

Parameters
[in]stateNew state.

◆ set_read_over()

static void set_read_over ( gmp_parser_t gmp_parser)
static

Set read_over flag on a parser.

Parameters
[in]gmp_parserParser.

◆ start_task_data_reset()

static void start_task_data_reset ( start_task_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ stop_task_data_reset()

static void stop_task_data_reset ( stop_task_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ strcasecmp_reverse()

static int strcasecmp_reverse ( gchar *  s1,
gchar *  s2 
)
static

Helper function for comparing strings in reverse order.

Parameters
[in]s1The first string to compare
[in]s2The second string to compare
Returns
The result of g_ascii_strcasecmp with string order reversed.

◆ strdiff()

static gchar* strdiff ( const gchar *  one,
const gchar *  two 
)
static

Compare two string with the "diff" command.

Parameters
[in]oneFirst string.
[in]twoSecond string.
Returns
Output of "diff", or NULL on error.

◆ test_alert_data_reset()

static void test_alert_data_reset ( test_alert_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ try_gpgme_import()

static int try_gpgme_import ( const char *  key_str,
GArray *  key_types,
gpgme_protocol_t  protocol 
)
static

Check that a string represents a valid public key or certificate.

Parameters
[in]key_strKey string.
[in]key_typesGArray of the data types to check for.
[in]protocolThe GPG protocol to check.
Returns
0 if valid, 1 otherwise.

◆ utf8_substring()

static gchar* utf8_substring ( const gchar *  str,
glong  start_pos,
glong  end_pos 
)
static

Get substring of UTF8 string.

Parameters
[in]strString
[in]start_posStart.
[in]end_posEnd.
Returns
Substring.

◆ verify_report_format_data_reset()

static void verify_report_format_data_reset ( verify_report_format_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

◆ verify_scanner_data_reset()

static void verify_scanner_data_reset ( verify_scanner_data_t data)
static

Reset command data.

Parameters
[in]dataCommand data.

Variable Documentation

◆ from_client

char from_client[]
extern

Buffer of input from the client.

Todo:
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".

◆ to_client

char to_client[TO_CLIENT_BUFFER_SIZE]

Buffer of output to the client.

Todo:
As described in gmp.c, probably should be replaced by gmp_parser_t.