OpenVAS Libraries
4.0+rc3.SVN
|
OMP client interface. More...
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include "omp.h"
#include "xml.h"
#include "openvas_server.h"
Defines | |
#define | G_LOG_DOMAIN "lib omp" |
GLib log domain. | |
#define | DO_CHILDREN(entity, child, temp, body) |
Do something for each child of an entity. | |
Functions | |
const char * | omp_task_status (entity_t response) |
Get the task status from an OMP GET_TASKS response. | |
int | omp_ping (gnutls_session_t *session, int timeout) |
"Ping" the manager. | |
int | omp_authenticate (gnutls_session_t *session, const char *username, const char *password) |
Authenticate with the manager. | |
int | omp_authenticate_env (gnutls_session_t *session) |
Authenticate, getting credentials from the environment. | |
int | omp_create_task (gnutls_session_t *session, const char *name, const char *config, const char *target, const char *comment, char **id) |
Create a task given a config and target. | |
int | omp_create_task_rc (gnutls_session_t *session, const char *config, unsigned int config_len, const char *name, const char *comment, char **id) |
Create a task, given the task description as an RC file. | |
int | omp_create_task_rc_file (gnutls_session_t *session, const char *file_name, const char *name, const char *comment, char **id) |
Create a task, given the task description as an RC file. | |
int | omp_start_task_report (gnutls_session_t *session, const char *task_id, char **report_id) |
Start a task and read the manager response. | |
int | omp_start_task (gnutls_session_t *session, const char *task_id) |
Start a task and read the manager response. | |
int | omp_resume_or_start_task_report (gnutls_session_t *session, const char *task_id, char **report_id) |
Resume or start a task and read the manager response. | |
int | omp_resume_or_start_task (gnutls_session_t *session, const char *task_id) |
Resume or start a task and read the manager response. | |
int | check_response (gnutls_session_t *session) |
Read response and convert status of response to a return value. | |
int | omp_read_create_response (gnutls_session_t *session, char **uuid) |
Read response status and resource UUID. | |
int | omp_abort_task (gnutls_session_t *session, const char *id) |
Deprecated wrapper function for /ref omp_stop_task. | |
int | omp_stop_task (gnutls_session_t *session, const char *id) |
Stop a task and read the manager response. | |
int | omp_pause_task (gnutls_session_t *session, const char *task_id) |
Pause a task and read the manager response. | |
int | omp_resume_paused_task (gnutls_session_t *session, const char *task_id) |
Resume a paused task and read the manager response. | |
int | omp_resume_stopped_task (gnutls_session_t *session, const char *task_id) |
Resume a stopped task and read the manager response. | |
int | omp_resume_stopped_task_report (gnutls_session_t *session, const char *task_id, char **report_id) |
Resume a stopped task and read the manager response. | |
int | omp_get_nvt_all (gnutls_session_t *session, entity_t *response) |
Issue an OMP <get_nvts\/> command and wait for the response. | |
int | omp_get_nvt_feed_checksum (gnutls_session_t *session, entity_t *response) |
Issue an OMP <get_nvt_feed_checksum algoithm=md5/> command and. | |
int | omp_get_dependencies_503 (gnutls_session_t *session, entity_t *response) |
Issue an OMP <get_dependencies/> command and wait for the response. | |
int | omp_wait_for_task_start (gnutls_session_t *session, const char *id) |
Wait for a task to start running on the server. | |
int | omp_wait_for_task_end (gnutls_session_t *session, const char *id) |
Wait for a task to finish running on the server. | |
int | omp_wait_for_task_stop (gnutls_session_t *session, const char *id) |
Wait for a task to stop on the server. | |
int | omp_wait_for_task_delete (gnutls_session_t *session, const char *id) |
Wait for the manager to actually remove a task. | |
int | omp_delete_task (gnutls_session_t *session, const char *id) |
Delete a task and read the manager response. | |
int | omp_get_status (gnutls_session_t *session, const char *id, int include_rcfile, entity_t *status) |
Deprecated wrapper function for /ref omp_get_tasks. | |
int | omp_get_tasks (gnutls_session_t *session, const char *id, int details, int include_rcfile, entity_t *status) |
Get the status of a task. | |
int | omp_get_targets (gnutls_session_t *session, const char *id, int tasks, int include_rcfile, entity_t *target) |
Get a target. | |
int | omp_get_report (gnutls_session_t *session, const char *id, const char *format, int first_result_number, entity_t *response) |
Get a report. | |
int | omp_get_report_format (gnutls_session_t *session, const char *id, const char *format, void **report, gsize *report_size) |
Get a report in a given format. | |
int | omp_delete_report (gnutls_session_t *session, const char *id) |
Remove a report. | |
int | omp_get_results (gnutls_session_t *session, const char *task_id, int notes, int notes_details, int overrides, int overrides_details, int apply_overrides, entity_t *response) |
Get results. | |
int | omp_modify_task (gnutls_session_t *session, const char *id, const char *rcfile, const char *name, const char *comment) |
Modify a task. | |
int | omp_modify_task_file (gnutls_session_t *session, const char *id, const char *name, const void *content, gsize content_len) |
Modify a file on a task. | |
int | omp_get_preferences (gnutls_session_t *session, entity_t *response) |
Get the manager preferences. | |
int | omp_get_preferences_503 (gnutls_session_t *session, entity_t *response) |
Get the manager preferences, waiting for them to appear. | |
int | omp_get_certificates (gnutls_session_t *session, entity_t *response) |
Get the manager certificates. | |
int | omp_until_up (int(*function)(gnutls_session_t *, entity_t *), gnutls_session_t *session, entity_t *response) |
Poll an OMP service until it is up. | |
int | omp_create_target (gnutls_session_t *session, const char *name, const char *hosts, const char *comment, const char *ssh_credential, const char *smb_credential, char **uuid) |
Create a target. | |
int | omp_delete_target (gnutls_session_t *session, const char *id) |
Delete a target. | |
int | omp_create_config (gnutls_session_t *session, const char *name, const char *comment, const char *config, unsigned int config_len) |
Create a config, given the config description as a string. | |
int | omp_create_config_from_rc_file (gnutls_session_t *session, const char *name, const char *comment, const char *file_name) |
Create a config, given the config description as an RC file. | |
int | omp_delete_config (gnutls_session_t *session, const char *id) |
Delete a config. | |
int | omp_create_lsc_credential (gnutls_session_t *session, const char *name, const char *login, const char *password, const char *comment, char **uuid) |
Create an LSC Credential. | |
int | omp_delete_lsc_credential (gnutls_session_t *session, const char *id) |
Delete a LSC credential. | |
int | omp_create_agent (gnutls_session_t *session, const char *name, const char *comment) |
Create an agent. | |
int | omp_delete_agent (gnutls_session_t *session, const char *name) |
Delete an agent. | |
int | omp_get_nvt_details_503 (gnutls_session_t *session, const char *oid, entity_t *response) |
Get NVT Information. | |
int | omp_get_system_reports (gnutls_session_t *session, const char *name, int brief, entity_t *reports) |
Get system reports. |
OMP client interface.
This provides higher level, OMP-aware, facilities for working with with the OpenVAS manager.
There are examples of using this interface in the openvas-manager tests.
#define DO_CHILDREN | ( | entity, | |
child, | |||
temp, | |||
body | |||
) |
do \ { \ GSList* temp = entity->entities; \ while (temp) \ { \ entity_t child = temp->data; \ { \ body; \ } \ temp = g_slist_next (temp); \ } \ } \ while (0)
Do something for each child of an entity.
Calling "break" during body exits the loop.
[in] | entity | The entity. |
[in] | child | Name to use for child variable. |
[in] | temp | Name to use for internal variable. |
[in] | body | The code to run for each child. |
int check_response | ( | gnutls_session_t * | session | ) |
Read response and convert status of response to a return value.
[in] | session | Pointer to GNUTLS session. |
int omp_abort_task | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Deprecated wrapper function for /ref omp_stop_task.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |
int omp_authenticate | ( | gnutls_session_t * | session, |
const char * | username, | ||
const char * | password | ||
) |
Authenticate with the manager.
[in] | session | Pointer to GNUTLS session. |
[in] | username | Username. |
[in] | password | Password. |
int omp_authenticate_env | ( | gnutls_session_t * | session | ) |
Authenticate, getting credentials from the environment.
Get the user name from environment variable OPENVAS_TEST_USER if that is set, else from USER. Get the password from OPENVAS_TEST_PASSWORD.
[in] | session | Pointer to GNUTLS session. |
int omp_create_agent | ( | gnutls_session_t * | session, |
const char * | name, | ||
const char * | comment | ||
) |
Create an agent.
[in] | session | Pointer to GNUTLS session. |
[in] | name | Name of agent. |
[in] | comment | Agent comment. |
int omp_create_config | ( | gnutls_session_t * | session, |
const char * | name, | ||
const char * | comment, | ||
const char * | config, | ||
unsigned int | config_len | ||
) |
Create a config, given the config description as a string.
[in] | session | Pointer to GNUTLS session. |
[in] | name | Config name. |
[in] | comment | Config comment. |
[in] | config | Config configuration. |
[in] | config_len | Length of config. |
int omp_create_config_from_rc_file | ( | gnutls_session_t * | session, |
const char * | name, | ||
const char * | comment, | ||
const char * | file_name | ||
) |
Create a config, given the config description as an RC file.
[in] | session | Pointer to GNUTLS session. |
[in] | name | Config name. |
[in] | comment | Config comment. |
[in] | file_name | Name of RC file. |
int omp_create_lsc_credential | ( | gnutls_session_t * | session, |
const char * | name, | ||
const char * | login, | ||
const char * | password, | ||
const char * | comment, | ||
char ** | uuid | ||
) |
Create an LSC Credential.
[in] | session | Pointer to GNUTLS session. |
[in] | name | Name of LSC Credential. |
[in] | login | Login associated with name. |
[in] | password | Password, or NULL for autogenerated credentials. |
[in] | comment | LSC Credential comment. |
[out] | uuid | Either NULL or address for UUID of created credential. |
int omp_create_target | ( | gnutls_session_t * | session, |
const char * | name, | ||
const char * | hosts, | ||
const char * | comment, | ||
const char * | ssh_credential, | ||
const char * | smb_credential, | ||
char ** | uuid | ||
) |
Create a target.
[in] | session | Pointer to GNUTLS session. |
[in] | name | Name of target. |
[in] | hosts | Target hosts. |
[in] | comment | Target comment. |
[in] | ssh_credential | UUID of SSH LSC credential. |
[in] | smb_credential | UUID of SMB LSC credential. |
[out] | uuid | Either NULL or address for UUID of created target. |
int omp_create_task | ( | gnutls_session_t * | session, |
const char * | name, | ||
const char * | config, | ||
const char * | target, | ||
const char * | comment, | ||
char ** | id | ||
) |
Create a task given a config and target.
[in] | session | Pointer to GNUTLS session. |
[in] | name | Task name. |
[in] | config | Task config name. |
[in] | target | Task target name. |
[in] | comment | Task comment. |
[out] | id | Pointer for newly allocated ID of new task. Only set on successful return. |
int omp_create_task_rc | ( | gnutls_session_t * | session, |
const char * | config, | ||
unsigned int | config_len, | ||
const char * | name, | ||
const char * | comment, | ||
char ** | id | ||
) |
Create a task, given the task description as an RC file.
[in] | session | Pointer to GNUTLS session. |
[in] | config | Task configuration. |
[in] | config_len | Length of config. |
[in] | name | Task name. |
[in] | comment | Task comment. |
[out] | id | Pointer for newly allocated ID of new task. Only set on successful return. |
int omp_create_task_rc_file | ( | gnutls_session_t * | session, |
const char * | file_name, | ||
const char * | name, | ||
const char * | comment, | ||
char ** | id | ||
) |
Create a task, given the task description as an RC file.
[in] | session | Pointer to GNUTLS session. |
[in] | file_name | Name of the RC file. |
[in] | name | Task name. |
[in] | comment | Task comment. |
[out] | id | ID of new task. |
int omp_delete_agent | ( | gnutls_session_t * | session, |
const char * | name | ||
) |
Delete an agent.
[in] | session | Pointer to GNUTLS session. |
[in] | name | Name of agent. |
int omp_delete_config | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Delete a config.
[in] | session | Pointer to GNUTLS session. |
[in] | id | UUID of config. |
int omp_delete_lsc_credential | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Delete a LSC credential.
[in] | session | Pointer to GNUTLS session. |
[in] | uuid | UUID of LSC credential. |
int omp_delete_report | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Remove a report.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of report. |
int omp_delete_target | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Delete a target.
[in] | session | Pointer to GNUTLS session. |
[in] | id | UUID of target. |
int omp_delete_task | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Delete a task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |
int omp_get_certificates | ( | gnutls_session_t * | session, |
entity_t * | response | ||
) |
Get the manager certificates.
[in] | session | Pointer to GNUTLS session. |
[out] | response | On success contains GET_CERTIFICATES response. |
int omp_get_dependencies_503 | ( | gnutls_session_t * | session, |
entity_t * | response | ||
) |
Issue an OMP <get_dependencies/> command and wait for the response.
[in] | session | Session to the server. |
[out] | response | Entity containing the response, must be freed. |
int omp_get_nvt_all | ( | gnutls_session_t * | session, |
entity_t * | response | ||
) |
Issue an OMP <get_nvts\/> command and wait for the response.
[in] | session | Session to the server. |
[out] | response | Entity containing the response, must be freed. |
int omp_get_nvt_details_503 | ( | gnutls_session_t * | session, |
const char * | oid, | ||
entity_t * | response | ||
) |
Get NVT Information.
[in] | session | Pointer to GNUTLS session. |
[in] | oid | OID of NVT or NULL for all NVTs. |
[out] | response | Status return. On success contains GET_TASKS response. |
int omp_get_nvt_feed_checksum | ( | gnutls_session_t * | session, |
entity_t * | response | ||
) |
Issue an OMP <get_nvt_feed_checksum algoithm=md5/> command and.
wait for the response.
[in] | session | Session to the server. |
[out] | response | Entity containing the response, must be freed. |
int omp_get_preferences | ( | gnutls_session_t * | session, |
entity_t * | response | ||
) |
Get the manager preferences.
[in] | session | Pointer to GNUTLS session. |
[out] | response | On success contains GET_PREFERENCES response. |
int omp_get_preferences_503 | ( | gnutls_session_t * | session, |
entity_t * | response | ||
) |
Get the manager preferences, waiting for them to appear.
[in] | session | Pointer to GNUTLS session. |
[out] | response | On success contains GET_PREFERENCES response. |
int omp_get_report | ( | gnutls_session_t * | session, |
const char * | id, | ||
const char * | format, | ||
int | first_result_number, | ||
entity_t * | response | ||
) |
Get a report.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of report. |
[out] | response | Report. On success contains GET_REPORT response. |
int omp_get_report_format | ( | gnutls_session_t * | session, |
const char * | id, | ||
const char * | format, | ||
void ** | report, | ||
gsize * | report_size | ||
) |
Get a report in a given format.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of report. |
[in] | format | Required format. |
[out] | report | Report. On success contains the report. |
[out] | report_size | Size of report in bytes. |
int omp_get_results | ( | gnutls_session_t * | session, |
const char * | task_id, | ||
int | notes, | ||
int | notes_details, | ||
int | overrides, | ||
int | overrides_details, | ||
int | apply_overrides, | ||
entity_t * | response | ||
) |
Get results.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task whose to get, NULL for all. |
[in] | notes | Whether to include notes. |
[in] | notes_details | If notes, whether to include details. |
[in] | overrides | Whether to include notes. |
[in] | overrides_details | If overrides, whether to include details. |
[in] | apply_overrides | Whether to apply overrides. |
[out] | response | On success contains the GET_RESULTS response. |
int omp_get_status | ( | gnutls_session_t * | session, |
const char * | id, | ||
int | include_rcfile, | ||
entity_t * | status | ||
) |
Deprecated wrapper function for /ref omp_get_tasks.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task or NULL for all tasks. |
[in] | include_rcfile | Request rcfile in status if true. |
[out] | status | Status return. On success contains GET_TASKS response. |
int omp_get_system_reports | ( | gnutls_session_t * | session, |
const char * | name, | ||
int | brief, | ||
entity_t * | reports | ||
) |
Get system reports.
[in] | session | Pointer to GNUTLS session. |
[in] | name | Name of system report. NULL for all. |
[in] | brief | Whether to request brief response. |
[out] | reports | Reports return. On success contains GET_SYSTEM_REPORTS response. |
int omp_get_targets | ( | gnutls_session_t * | session, |
const char * | id, | ||
int | tasks, | ||
int | include_rcfile, | ||
entity_t * | target | ||
) |
Get a target.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of target or NULL for all targets. |
[in] | tasks | Whether to include tasks that use the target. |
[out] | target | Target return. On success contains GET_TARGETS response. |
int omp_get_tasks | ( | gnutls_session_t * | session, |
const char * | id, | ||
int | details, | ||
int | include_rcfile, | ||
entity_t * | status | ||
) |
Get the status of a task.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task or NULL for all tasks. |
[in] | details | Whether to request task details. |
[in] | include_rcfile | Request rcfile in status if true. |
[out] | status | Status return. On success contains GET_TASKS response. |
int omp_modify_task | ( | gnutls_session_t * | session, |
const char * | id, | ||
const char * | rcfile, | ||
const char * | name, | ||
const char * | comment | ||
) |
Modify a task.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |
[in] | rcfile | NULL or new RC file (as plain text). |
[in] | name | NULL or new name. |
[in] | comment | NULL or new comment. |
int omp_modify_task_file | ( | gnutls_session_t * | session, |
const char * | id, | ||
const char * | name, | ||
const void * | content, | ||
gsize | content_len | ||
) |
Modify a file on a task.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |
[in] | name | Name of file. |
[in] | content | New content. NULL to remove file. |
[in] | content_len | Length of content. |
int omp_pause_task | ( | gnutls_session_t * | session, |
const char * | task_id | ||
) |
Pause a task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task. |
int omp_ping | ( | gnutls_session_t * | session, |
int | timeout | ||
) |
"Ping" the manager.
[in] | session | Pointer to GNUTLS session. |
[in] | timeout | Server idle time before giving up, in milliseconds. 0 to wait forever. |
int omp_read_create_response | ( | gnutls_session_t * | session, |
char ** | uuid | ||
) |
Read response status and resource UUID.
[in] | session | Pointer to GNUTLS session. |
[out] | uuid | Either NULL or address for freshly allocated UUID of created response. |
int omp_resume_or_start_task | ( | gnutls_session_t * | session, |
const char * | task_id | ||
) |
Resume or start a task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task. |
int omp_resume_or_start_task_report | ( | gnutls_session_t * | session, |
const char * | task_id, | ||
char ** | report_id | ||
) |
Resume or start a task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task. |
[out] | report_id | ID of report. |
int omp_resume_paused_task | ( | gnutls_session_t * | session, |
const char * | task_id | ||
) |
Resume a paused task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task. |
int omp_resume_stopped_task | ( | gnutls_session_t * | session, |
const char * | task_id | ||
) |
Resume a stopped task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task. |
int omp_resume_stopped_task_report | ( | gnutls_session_t * | session, |
const char * | task_id, | ||
char ** | report_id | ||
) |
Resume a stopped task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task. |
[out] | report_id | ID of report. |
int omp_start_task | ( | gnutls_session_t * | session, |
const char * | task_id | ||
) |
Start a task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task. |
int omp_start_task_report | ( | gnutls_session_t * | session, |
const char * | task_id, | ||
char ** | report_id | ||
) |
Start a task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | task_id | ID of task. |
[out] | report_id | ID of report. |
int omp_stop_task | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Stop a task and read the manager response.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |
const char* omp_task_status | ( | entity_t | response | ) |
Get the task status from an OMP GET_TASKS response.
[in] | response | GET_TASKS response. |
int omp_until_up | ( | int(*)(gnutls_session_t *, entity_t *) | function, |
gnutls_session_t * | session, | ||
entity_t * | response | ||
) |
Poll an OMP service until it is up.
Repeatedly call a function while it returns the value 503.
[in] | function | Function to call to do polling. |
[in] | session | Pointer to GNUTLS session. |
[out] | response | On success contains GET_CERTIFICATES response. |
int omp_wait_for_task_delete | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Wait for the manager to actually remove a task.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |
int omp_wait_for_task_end | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Wait for a task to finish running on the server.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |
int omp_wait_for_task_start | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Wait for a task to start running on the server.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |
int omp_wait_for_task_stop | ( | gnutls_session_t * | session, |
const char * | id | ||
) |
Wait for a task to stop on the server.
[in] | session | Pointer to GNUTLS session. |
[in] | id | ID of task. |