99 #include <arpa/inet.h> 104 #include <glib/gstdio.h> 106 #include <netinet/in.h> 109 #include <sys/socket.h> 110 #include <sys/stat.h> 111 #include <sys/types.h> 112 #include <sys/wait.h> 114 #include <gnutls/x509.h> 116 #include <openvas/base/nvti.h> 117 #include <openvas/osp/osp.h> 118 #include <openvas/base/openvas_string.h> 119 #include <openvas/base/openvas_file.h> 120 #include <openvas/base/pwpolicy.h> 121 #include <openvas/misc/openvas_auth.h> 122 #include <openvas/misc/openvas_logging.h> 123 #include <openvas/misc/openvas_ssh.h> 124 #include <openvas/omp/xml.h> 130 #define G_LOG_DOMAIN "md omp" 141 buffer_xml_append_printf (GString*,
const char*, ...);
154 is_uuid (
const char *uuid)
156 while (*uuid)
if (isxdigit (*uuid) || (*uuid ==
'-')) uuid++;
else return 0;
176 time_from_strings (
const char *hour,
const char *minute,
177 const char *day_of_month,
const char *month,
178 const char *year,
const char *timezone)
180 struct tm given_broken, *now_broken;
188 tz = getenv (
"TZ") ? g_strdup (getenv (
"TZ")) : NULL;
190 if (setenv (
"TZ", timezone, 1) == -1)
199 now_broken = localtime (&now);
201 given_broken.tm_sec = 0;
202 given_broken.tm_min = (minute ? atoi (minute) : now_broken->tm_min);
203 given_broken.tm_hour = (hour ? atoi (hour) : now_broken->tm_hour);
204 given_broken.tm_mday = (day_of_month
205 ? atoi (day_of_month)
206 : now_broken->tm_mday);
207 given_broken.tm_mon = (month ? (atoi (month) - 1) : now_broken->tm_mon);
208 given_broken.tm_year = (year ? (atoi (year) - 1900) : now_broken->tm_year);
209 given_broken.tm_isdst = now_broken->tm_isdst;
211 ret = mktime (&given_broken);
217 setenv (
"TZ", tz, 1);
239 interval_from_strings (
const char *value,
const char *unit, time_t *months)
244 if ((unit == NULL) || (strcasecmp (unit,
"second") == 0))
247 val = strtol (value, NULL, 10);
248 if ((val >= INT_MAX) || (val < 0))
253 if (strcasecmp (unit,
"minute") == 0)
256 val = strtol (value, NULL, 10);
257 if ((val >= (INT_MAX / 60)) || (val < 0))
262 if (strcasecmp (unit,
"hour") == 0)
265 val = strtol (value, NULL, 10);
266 if ((val >= (INT_MAX / (60 * 60))) || (val < 0))
268 return val * 60 * 60;
271 if (strcasecmp (unit,
"day") == 0)
274 val = strtol (value, NULL, 10);
275 if ((val >= (INT_MAX / (60 * 60 * 24))) || (val < 0))
277 return val * 60 * 60 * 24;
280 if (strcasecmp (unit,
"week") == 0)
283 val = strtol (value, NULL, 10);
284 if ((val >= (INT_MAX / (60 * 60 * 24 * 7))) || (val < 0))
286 return val * 60 * 60 * 24 * 7;
291 if (strcasecmp (unit,
"month") == 0)
293 *months = atoi (value);
294 if ((*months >= INT_MAX) || (*months < 0))
299 if (strcasecmp (unit,
"year") == 0)
301 *months = atoi (value);
302 if ((*months >= (INT_MAX / 12)) || (*months < 0))
304 *months = *months * 12;
308 if (strcasecmp (unit,
"decade") == 0)
310 *months = atoi (value);
311 if ((*months >= (INT_MAX / (12 * 10))) || (*months < 0))
313 *months = *months * 12 * 10;
333 const gchar **attribute_values,
334 const char *attribute_name,
335 const gchar **attribute_value)
337 while (*attribute_names && *attribute_values)
338 if (strcmp (*attribute_names, attribute_name))
339 attribute_names++, attribute_values++;
342 *attribute_value = *attribute_values;
362 const gchar **attribute_values,
363 const char *attribute_name,
366 const gchar* attribute;
367 if (
find_attribute (attribute_names, attribute_values, attribute_name,
370 openvas_append_string (
string, attribute);
399 gchar *filter, *replacement;
407 if (get->filter_replace && strlen (get->filter_replace) && get->filter)
414 if (get->filt_id && strcmp (get->filt_id,
"-2") == 0)
418 if (user_filter && strlen (user_filter))
420 get->filt_id = user_filter;
426 get->filt_id = g_strdup (
"0");
432 if (get->filt_id && strcmp (get->filt_id,
"0"))
441 g_free (get->filt_id);
444 if (user_filter && strlen (user_filter))
446 get->filt_id = user_filter;
451 get->filt_id = g_strdup (
"0");
464 term = filter ? filter :
get->filter;
468 gchar *new_filter, *clean;
471 new_filter = g_strdup_printf
479 g_free (get->filter);
480 get->filter = new_filter;
487 get->filter_replacement = g_strdup (new_filter);
490 g_free (replacement);
514 check_certificate (
const char *cert_str)
516 gnutls_x509_crt_t crt;
521 if (gnutls_x509_crt_init (&crt))
523 data.size = strlen (cert_str);
524 data.data = (
void *) g_strdup (cert_str);
525 if (gnutls_x509_crt_import (crt, &data, GNUTLS_X509_FMT_PEM))
527 gnutls_x509_crt_deinit (crt);
532 if (time (NULL) > gnutls_x509_crt_get_expiration_time (crt))
534 g_warning (
"Certificate expiration time passed");
537 if (time (NULL) < gnutls_x509_crt_get_activation_time (crt))
539 g_warning (
"Certificate activation time in the future");
543 gnutls_x509_crt_deinit (crt);
555 check_private_key (
const char *key_str)
557 gnutls_x509_privkey_t key;
561 if (gnutls_x509_privkey_init (&key))
563 data.size = strlen (key_str);
564 data.data = (
void *) g_strdup (key_str);
565 if (gnutls_x509_privkey_import (key, &data, GNUTLS_X509_FMT_PEM))
567 gnutls_x509_privkey_deinit (key);
572 gnutls_x509_privkey_deinit (key);
592 #define STATUS_ERROR_SYNTAX "400" 597 #define STATUS_ERROR_MUST_AUTH "401" 602 #define STATUS_ERROR_MUST_AUTH_TEXT "Authenticate first" 607 #define STATUS_ERROR_ACCESS "403" 612 #define STATUS_ERROR_ACCESS_TEXT "Access to resource forbidden" 617 #define STATUS_ERROR_MISSING "404" 622 #define STATUS_ERROR_MISSING_TEXT "Resource missing" 627 #define STATUS_ERROR_BUSY "409" 632 #define STATUS_ERROR_BUSY_TEXT "Resource busy" 637 #define STATUS_ERROR_AUTH_FAILED "400" 642 #define STATUS_ERROR_AUTH_FAILED_TEXT "Authentication failed" 647 #define STATUS_OK "200" 652 #define STATUS_OK_TEXT "OK" 657 #define STATUS_OK_CREATED "201" 662 #define STATUS_OK_CREATED_TEXT "OK, resource created" 667 #define STATUS_OK_REQUESTED "202" 672 #define STATUS_OK_REQUESTED_TEXT "OK, request submitted" 677 #define STATUS_INTERNAL_ERROR "500" 682 #define STATUS_INTERNAL_ERROR_TEXT "Internal error" 687 #define STATUS_SERVICE_UNAVAILABLE "503" 692 #define STATUS_SERVICE_DOWN "503" 697 #define STATUS_SERVICE_DOWN_TEXT "Service temporarily down" 707 int (*client_writer) (
const char*,
void*);
729 omp_parser_new (
int (*write_to_client) (
const char*,
void*),
void* write_to_client_data,
763 command_disabled (
omp_parser_t *omp_parser,
const gchar *name)
770 if (strcasecmp (*disabled, name) == 0)
795 preference_new (
char *name,
char *type,
char *value,
char *nvt_name,
796 char *
nvt_oid, array_t *alts,
char* default_value,
802 preference->
name = name;
803 preference->
type = type;
804 preference->
value = value;
807 preference->
alts = alts;
825 nvt_selector_new (
char *name,
char *type,
int include,
char *family_or_nvt)
830 selector->
name = name;
831 selector->
type = type;
950 g_free (import->comment);
951 g_free (import->name);
952 array_free (import->nvt_selectors);
953 g_free (import->nvt_selector_name);
954 g_free (import->nvt_selector_type);
955 g_free (import->nvt_selector_family_or_nvt);
957 if (import->preferences)
959 guint index =
import->preferences->len;
963 preference = (
preference_t*) g_ptr_array_index (import->preferences,
966 array_free (preference->
alts);
968 array_free (import->preferences);
971 g_free (import->preference_alt);
972 g_free (import->preference_name);
973 g_free (import->preference_name);
974 g_free (import->preference_nvt_name);
975 g_free (import->preference_nvt_oid);
976 g_free (import->preference_type);
977 g_free (import->preference_value);
978 g_free (import->type);
1304 index = data->
ranges->len;
1315 free (range->
start);
1319 array_free (data->
ranges);
1402 guint index = data->
details->len;
1423 guint index = data->
results->len;
1431 free (result->
host);
1434 free (result->
port);
1495 array_free (data->
files);
1508 options = (array_t*) g_ptr_array_index (data->
params_options, index);
1510 array_free (options);
1519 array_free (data->
params);
1759 array_free (data->
alerts);
1760 array_free (data->
groups);
1771 g_free (pair->
name);
1772 g_free (pair->
value);
1810 g_free (data->
copy);
1811 array_free (data->
groups);
1812 g_free (data->
name);
1814 g_free (data->
hosts);
1816 array_free (data->
roles);
2347 const gchar **attribute_names,
2348 const gchar **attribute_values)
2351 const gchar *attribute;
2358 name = g_strdup_printf (
"%s_id",
type);
2367 "trash", &attribute))
2368 data->
trash = strcmp (attribute,
"0");
2373 "details", &attribute))
2374 data->
details = strcmp (attribute,
"0");
2379 "ignore_pagination", &attribute))
3249 GSList *item, *subitem;
3252 g_free (data->
value);
3266 g_free (kvp->
value);
3268 subitem = g_slist_next (subitem);
3270 item = g_slist_next (item);
3272 g_slist_free (data->
groups);
3282 g_free (kvp->
value);
3284 item = g_slist_next (item);
3585 g_free (data->
name);
3586 g_free (data->
host);
3587 g_free (data->
port);
3588 g_free (data->
type);
3790 array_free (data->
alerts);
3791 array_free (data->
groups);
3809 g_free (pair->
name);
3810 g_free (pair->
value);
3932 array_free (data->
groups);
3933 g_free (data->
name);
3937 g_free (data->
hosts);
3939 array_free (data->
roles);
4188 guint index = data->
params->len;
4195 g_free (pair->
name);
4196 g_free (pair->
value);
4200 array_free (data->
params);
4993 static GMarkupParseContext*
4999 static GMarkupParser xml_parser;
5004 static const gchar *nvt_sync_script = SBINDIR
"/greenbone-nvt-sync";
5009 static const gchar *scap_sync_script = SBINDIR
"/greenbone-scapdata-sync";
5014 static const gchar *cert_sync_script = SBINDIR
"/greenbone-certdata-sync";
5638 client_state = state;
5639 g_debug (
" client state set: %i\n", client_state);
5655 send_to_client (
const char* msg,
5656 int (*user_send_to_client) (
const char*,
void*),
5657 void* user_send_to_client_data)
5659 if (user_send_to_client && msg)
5660 return user_send_to_client (msg, user_send_to_client_data);
5675 send_element_error_to_client (
const char* command,
const char* element,
5676 int (*write_to_client) (
const char*,
void*),
5677 void* write_to_client_data)
5683 msg = g_strdup_printf (
"<%s_response status=\"" 5685 "\" status_text=\"Bogus element: %s\"/>",
5688 ret = send_to_client (msg, write_to_client, write_to_client_data);
5704 send_find_error_to_client (
const char* command,
const char*
type,
5710 msg = g_strdup_printf (
"<%s_response status=\"" 5712 "\" status_text=\"Failed to find %s '%s'\"/>",
5726 error_send_to_client (GError** error)
5728 g_debug (
" send_to_client out of space in to_client\n");
5729 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
5730 "Manager out of space for reply to client.");
5739 internal_error_send_to_client (GError** error)
5741 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
5754 #define XML_ERROR_SYNTAX(tag, text) \ 5755 "<" tag "_response" \ 5756 " status=\"" STATUS_ERROR_SYNTAX "\"" \ 5757 " status_text=\"" text "\"/>" 5773 make_xml_error_syntax (
const char *tag,
const char *text)
5778 textbuf = g_markup_escape_text (text, -1);
5780 " status_text=\"%s\"/>", tag, textbuf);
5791 #define XML_ERROR_ACCESS(tag) \ 5792 "<" tag "_response" \ 5793 " status=\"" STATUS_ERROR_ACCESS "\"" \ 5794 " status_text=\"" STATUS_ERROR_ACCESS_TEXT "\"/>" 5802 #define XML_ERROR_UNAVAILABLE(tag, text) \ 5803 "<" tag "_response" \ 5804 " status=\"" STATUS_SERVICE_UNAVAILABLE "\"" \ 5805 " status_text=\"" text "\"/>" 5812 #define XML_ERROR_MISSING(tag) \ 5813 "<" tag "_response" \ 5814 " status=\"" STATUS_ERROR_MISSING "\"" \ 5815 " status_text=\"" STATUS_ERROR_MISSING_TEXT "\"/>" 5822 #define XML_ERROR_AUTH_FAILED(tag) \ 5823 "<" tag "_response" \ 5824 " status=\"" STATUS_ERROR_AUTH_FAILED "\"" \ 5825 " status_text=\"" STATUS_ERROR_AUTH_FAILED_TEXT "\"/>" 5832 #define XML_ERROR_BUSY(tag) \ 5833 "<" tag "_response" \ 5834 " status=\"" STATUS_ERROR_BUSY "\"" \ 5835 " status_text=\"" STATUS_ERROR_BUSY_TEXT "\"/>" 5842 #define XML_OK(tag) \ 5843 "<" tag "_response" \ 5844 " status=\"" STATUS_OK "\"" \ 5845 " status_text=\"" STATUS_OK_TEXT "\"/>" 5852 #define XML_OK_CREATED(tag) \ 5853 "<" tag "_response" \ 5854 " status=\"" STATUS_OK_CREATED "\"" \ 5855 " status_text=\"" STATUS_OK_CREATED_TEXT "\"/>" 5862 #define XML_OK_CREATED_ID(tag) \ 5863 "<" tag "_response" \ 5864 " status=\"" STATUS_OK_CREATED "\"" \ 5865 " status_text=\"" STATUS_OK_CREATED_TEXT "\"" \ 5873 #define XML_OK_REQUESTED(tag) \ 5874 "<" tag "_response" \ 5875 " status=\"" STATUS_OK_REQUESTED "\"" \ 5876 " status_text=\"" STATUS_OK_REQUESTED_TEXT "\"/>" 5883 #define XML_INTERNAL_ERROR(tag) \ 5884 "<" tag "_response" \ 5885 " status=\"" STATUS_INTERNAL_ERROR "\"" \ 5886 " status_text=\"" STATUS_INTERNAL_ERROR_TEXT "\"/>" 5893 #define SEND_XML_SERVICE_DOWN(tag) \ 5896 if (scanner_current_loading && scanner_total_loading) \ 5897 str = g_strdup_printf ("<%s_response status='%s' " \ 5898 "status_text='Scanner loading nvts (%d/%d)'/>", \ 5899 tag, STATUS_SERVICE_DOWN, \ 5900 scanner_current_loading, scanner_total_loading); \ 5902 str = g_strdup_printf ("<%s_response status='%s' status_text='%s'/>", \ 5903 tag, STATUS_SERVICE_DOWN, \ 5904 STATUS_SERVICE_DOWN_TEXT); \ 5905 SEND_TO_CLIENT_OR_FAIL(str); \ 5919 send_get_start (
const char *
type,
int (*write_to_client) (
const char*,
void*),
5920 void* write_to_client_data)
5924 if (strcmp (
type,
"info"))
5925 msg = g_markup_printf_escaped (
"<get_%ss_response" 5930 msg = g_markup_printf_escaped (
"<get_%s_response" 5936 if (send_to_client (msg, write_to_client, write_to_client_data))
5960 int (*write_to_client) (
const char *,
void*),
5961 void* write_to_client_data,
int writable,
int in_use)
5964 const char *tag_type;
5967 buffer = g_string_new (
"");
5969 buffer_xml_append_printf (buffer,
5971 "<owner><name>%s</name></owner>" 5973 "<comment>%s</comment>" 5974 "<creation_time>%s</creation_time>" 5975 "<modification_time>%s</modification_time>" 5976 "<writable>%i</writable>" 5977 "<in_use>%i</in_use>" 6013 && (((strcmp (
type,
"permission") == 0)
6014 || (strcmp (
type,
"report_format") == 0))
6020 buffer_xml_append_printf (buffer,
6022 "<name>Everything</name>" 6027 && ((strcmp (
type,
"user") == 0)
6028 || (strcmp (
type,
"role") == 0)
6029 || (strcmp (
type,
"group") == 0))
6033 if ((strcmp (
type,
"user") == 0)
6038 buffer_xml_append_printf (buffer,
6039 "<permission><name>get_users</name></permission>" 6046 buffer_xml_append_printf (buffer,
6048 "<name>Everything</name>" 6057 memset (&perms_get,
'\0',
sizeof (perms_get));
6058 perms_get.
filter = g_strdup_printf (
"resource_uuid=%s" 6063 g_free (perms_get.
filter);
6064 while (
next (&perms))
6065 buffer_xml_append_printf (buffer,
6066 "<permission><name>%s</name></permission>",
6070 buffer_xml_append_printf (buffer,
"</permissions>");
6073 tag_type =
get->subtype ?
get->subtype :
get->type;
6075 if (get->details || get->id)
6077 buffer_xml_append_printf (buffer,
6079 "<count>%i</count>",
6089 while (
next (&tags))
6091 buffer_xml_append_printf (buffer,
6095 "<comment>%s</comment>" 6105 buffer_xml_append_printf (buffer,
6110 buffer_xml_append_printf (buffer,
6120 if (send_to_client (buffer->str, write_to_client, write_to_client_data))
6122 g_string_free (buffer, TRUE);
6125 g_string_free (buffer, TRUE);
6140 const char *extra_xml)
6146 buffer_xml_append_printf (msg,
6147 "<filters id=\"%s\">" 6149 get->filt_id ? get->filt_id :
"",
6153 && strcmp (get->filt_id,
"")
6156 buffer_xml_append_printf (msg,
6161 g_string_append (msg, extra_xml);
6163 buffer_xml_append_printf (msg,
6172 buffer_xml_append_printf (msg,
6174 "<column>%s</column>" 6175 "<relation>%s</relation>" 6176 "<value>%s%s%s</value>" 6189 buffer_xml_append_printf (msg,
6208 send_get_end_internal (
const char *
type,
get_data_t *
get,
int get_counts,
6209 int count,
int filtered,
int full,
6210 int (*write_to_client) (
const char *,
void*),
6211 void* write_to_client_data)
6213 gchar *sort_field, *filter;
6214 int first, max, sort_order;
6215 GString *type_many, *msg;
6217 if (get->filt_id && strcmp (get->filt_id,
"0"))
6219 if (get->filter_replacement)
6220 filter = g_strdup (get->filter_replacement);
6230 &first, &max, &sort_field, &sort_order);
6232 if (get->ignore_pagination
6233 && (strcmp (
type,
"task") == 0))
6241 if (filter || get->filter)
6246 if ((strcmp (
type,
"task") == 0)
6247 || (strcmp (
type,
"report") == 0)
6248 || (strcmp (
type,
"result") == 0))
6255 filter = new_filter;
6256 new_filter = g_strdup_printf (
"min_qod=%i %s",
6266 filter = new_filter;
6267 new_filter = g_strdup_printf (
"apply_overrides=%i %s",
6274 filter = new_filter;
6278 if ((strcmp (
type,
"task") == 0)
6279 || (strcmp (
type,
"report") == 0)
6280 || (strcmp (
type,
"result") == 0))
6289 type_many = g_string_new (
type);
6291 if (strcmp (
type,
"info") != 0)
6292 g_string_append (type_many,
"s");
6294 msg = g_string_new (
"");
6298 buffer_xml_append_printf (msg,
6300 "<field>%s<order>%s</order></field>" 6302 "<%s start=\"%i\" max=\"%i\"/>",
6304 sort_order ?
"ascending" :
"descending",
6309 buffer_xml_append_printf (msg,
6312 "<filtered>%i</filtered>" 6320 buffer_xml_append_printf (msg,
6321 "</get_%s_response>",
6323 g_string_free (type_many, TRUE);
6324 g_free (sort_field);
6327 if (send_to_client (msg->str, write_to_client, write_to_client_data))
6329 g_string_free (msg, TRUE);
6332 g_string_free (msg, TRUE);
6348 send_get_end (
const char *
type,
get_data_t *
get,
int count,
int filtered,
6349 int full,
int (*write_to_client) (
const char *,
void*),
6350 void* write_to_client_data)
6352 return send_get_end_internal (
type,
get, 1, count, filtered, full,
6353 write_to_client, write_to_client_data);
6369 int (*write_to_client) (
const char *,
void*),
6370 void* write_to_client_data)
6372 return send_get_end_internal (
type,
get, 0, 0, 0, 0, write_to_client,
6373 write_to_client_data);
6382 #define SEND_GET_START(type) \ 6385 if (send_get_start (type, omp_parser->client_writer, \ 6386 omp_parser->client_writer_data)) \ 6388 error_send_to_client (error); \ 6401 #define SEND_GET_COMMON(type, get, iterator) \ 6404 if (send_get_common (G_STRINGIFY (type), get, iterator, \ 6405 omp_parser->client_writer, \ 6406 omp_parser->client_writer_data, \ 6408 ? trash_ ## type ## _writable \ 6409 (get_iterator_resource \ 6411 : type ## _writable \ 6412 (get_iterator_resource \ 6415 ? trash_ ## type ## _in_use \ 6416 (get_iterator_resource \ 6419 (get_iterator_resource \ 6422 error_send_to_client (error); \ 6434 #define SEND_GET_END(type, get, count, filtered) \ 6437 if (send_get_end (type, get, count, filtered, \ 6438 resource_count (type, get), \ 6439 omp_parser->client_writer, \ 6440 omp_parser->client_writer_data)) \ 6442 error_send_to_client (error); \ 6456 #define SEND_TO_CLIENT_OR_FAIL(msg) \ 6459 if (send_to_client (msg, omp_parser->client_writer, \ 6460 omp_parser->client_writer_data)) \ 6462 error_send_to_client (error); \ 6477 #define SENDF_TO_CLIENT_OR_FAIL(format, args...) \ 6480 gchar* msg = g_markup_printf_escaped (format , ## args); \ 6481 if (send_to_client (msg, omp_parser->client_writer, \ 6482 omp_parser->client_writer_data)) \ 6485 error_send_to_client (error); \ 6500 #define ELSE_ERROR(op) \ 6501 else if (omp_parser->importing) \ 6503 if (omp_parser->read_over == 0) \ 6505 omp_parser->read_over = 1; \ 6506 omp_parser->parent_state = client_state; \ 6511 if (send_element_error_to_client (op, element_name, \ 6513 write_to_client_data)) \ 6515 error_send_to_client (error); \ 6518 set_client_state (CLIENT_AUTHENTIC); \ 6519 g_set_error (error, \ 6521 G_MARKUP_ERROR_UNKNOWN_ELEMENT, \ 6530 #define ELSE_ERROR_CREATE_TASK() \ 6531 else if (omp_parser->importing) \ 6533 if (omp_parser->read_over == 0) \ 6535 omp_parser->read_over = 1; \ 6536 omp_parser->parent_state = client_state; \ 6541 request_delete_task (&create_task_data->task); \ 6542 if (send_element_error_to_client ("create_task", element_name, \ 6544 write_to_client_data)) \ 6546 error_send_to_client (error); \ 6549 set_client_state (CLIENT_AUTHENTIC); \ 6550 g_set_error (error, \ 6552 G_MARKUP_ERROR_UNKNOWN_ELEMENT, \ 6567 log_event_internal (
const char *
type,
const char *
type_name,
const char *
id,
6568 const char *action,
int fail)
6572 domain = g_strdup_printf (
"event %s",
type);
6580 else if ((name == NULL)
6585 g_log (domain, G_LOG_LEVEL_MESSAGE,
6586 "%s %s (%s) %s %s by %s",
6588 fail ?
"could not be" :
"has been",
6592 g_log (domain, G_LOG_LEVEL_MESSAGE,
6593 "%s %s %s %s by %s",
6595 fail ?
"could not be" :
"has been",
6602 g_log (domain, G_LOG_LEVEL_MESSAGE,
6605 fail ?
"could not be" :
"has been",
6621 log_event (
const char *
type,
const char *
type_name,
const char *
id,
6636 log_event_fail (
const char *
type,
const char *
type_name,
const char *
id,
6661 omp_xml_handle_start_element ( GMarkupParseContext* context,
6662 const gchar *element_name,
6663 const gchar **attribute_names,
6664 const gchar **attribute_values,
6669 int (*write_to_client) (
const char *,
void*)
6670 = (
int (*) (
const char *,
void*)) omp_parser->
client_writer;
6673 g_debug (
" XML start: %s (%i)\n", element_name, client_state);
6677 else switch (client_state)
6680 if (strcasecmp (
"GET_VERSION", element_name) == 0)
6687 if (strcasecmp (
"AUTHENTICATE", element_name) == 0)
6691 else if (strcasecmp (
"COMMANDS", element_name) == 0)
6693 SENDF_TO_CLIENT_OR_FAIL
6694 (
"<commands_response" 6703 "First command must be AUTHENTICATE," 6704 " COMMANDS or GET_VERSION"),
6706 write_to_client_data))
6708 error_send_to_client (error);
6712 send_to_client (
"</commands_response>",
6714 write_to_client_data);
6715 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
6716 "Must authenticate first.");
6722 if (command_disabled (omp_parser, element_name))
6724 SEND_TO_CLIENT_OR_FAIL
6726 "Service unavailable: Command disabled"));
6729 G_MARKUP_ERROR_UNKNOWN_ELEMENT,
6730 "Command Unavailable");
6732 else if (strcasecmp (
"AUTHENTICATE", element_name) == 0)
6739 else if (strcasecmp (
"COMMANDS", element_name) == 0)
6741 SEND_TO_CLIENT_OR_FAIL
6742 (
"<commands_response" 6746 else if (strcasecmp (
"CREATE_AGENT", element_name) == 0)
6756 else if (strcasecmp (
"CREATE_ASSET", element_name) == 0)
6758 else if (strcasecmp (
"CREATE_CONFIG", element_name) == 0)
6764 else if (strcasecmp (
"CREATE_ALERT", element_name) == 0)
6780 else if (strcasecmp (
"CREATE_CREDENTIAL", element_name) == 0)
6786 else if (strcasecmp (
"CREATE_FILTER", element_name) == 0)
6792 else if (strcasecmp (
"CREATE_GROUP", element_name) == 0)
6797 else if (strcasecmp (
"CREATE_ROLE", element_name) == 0)
6802 else if (strcasecmp (
"CREATE_NOTE", element_name) == 0)
6804 else if (strcasecmp (
"CREATE_OVERRIDE", element_name) == 0)
6806 else if (strcasecmp (
"CREATE_PORT_LIST", element_name) == 0)
6808 else if (strcasecmp (
"CREATE_PORT_RANGE", element_name) == 0)
6810 else if (strcasecmp (
"CREATE_PERMISSION", element_name) == 0)
6815 else if (strcasecmp (
"CREATE_REPORT", element_name) == 0)
6817 else if (strcasecmp (
"CREATE_REPORT_FORMAT", element_name) == 0)
6819 else if (strcasecmp (
"CREATE_SCANNER", element_name) == 0)
6821 else if (strcasecmp (
"CREATE_SCHEDULE", element_name) == 0)
6823 else if (strcasecmp (
"CREATE_TAG", element_name) == 0)
6827 else if (strcasecmp (
"CREATE_TARGET", element_name) == 0)
6832 else if (strcasecmp (
"CREATE_TASK", element_name) == 0)
6839 else if (strcasecmp (
"CREATE_USER", element_name) == 0)
6847 else if (strcasecmp (
"DELETE_AGENT", element_name) == 0)
6849 const gchar* attribute;
6853 "ultimate", &attribute))
6859 else if (strcasecmp (
"DELETE_ASSET", element_name) == 0)
6867 else if (strcasecmp (
"DELETE_CONFIG", element_name) == 0)
6869 const gchar* attribute;
6873 "ultimate", &attribute))
6879 else if (strcasecmp (
"DELETE_ALERT", element_name) == 0)
6881 const gchar* attribute;
6886 "ultimate", &attribute))
6892 else if (strcasecmp (
"DELETE_CREDENTIAL", element_name) == 0)
6894 const gchar* attribute;
6899 "ultimate", &attribute))
6901 = strcmp (attribute,
"0");
6906 else if (strcasecmp (
"DELETE_FILTER", element_name) == 0)
6908 const gchar* attribute;
6912 "ultimate", &attribute))
6918 else if (strcasecmp (
"DELETE_GROUP", element_name) == 0)
6920 const gchar* attribute;
6924 "ultimate", &attribute))
6930 else if (strcasecmp (
"DELETE_NOTE", element_name) == 0)
6932 const gchar* attribute;
6936 "ultimate", &attribute))
6942 else if (strcasecmp (
"DELETE_OVERRIDE", element_name) == 0)
6944 const gchar* attribute;
6948 "ultimate", &attribute))
6954 else if (strcasecmp (
"DELETE_PERMISSION", element_name) == 0)
6956 const gchar* attribute;
6961 "ultimate", &attribute))
6967 else if (strcasecmp (
"DELETE_PORT_LIST", element_name) == 0)
6969 const gchar* attribute;
6973 "ultimate", &attribute))
6979 else if (strcasecmp (
"DELETE_PORT_RANGE", element_name) == 0)
6985 else if (strcasecmp (
"DELETE_REPORT", element_name) == 0)
6991 else if (strcasecmp (
"DELETE_REPORT_FORMAT", element_name) == 0)
6993 const gchar* attribute;
6997 "ultimate", &attribute))
7004 else if (strcasecmp (
"DELETE_ROLE", element_name) == 0)
7006 const gchar* attribute;
7010 "ultimate", &attribute))
7016 else if (strcasecmp (
"DELETE_SCANNER", element_name) == 0)
7018 const gchar* attribute;
7021 if (
find_attribute (attribute_names, attribute_values,
"ultimate",
7028 else if (strcasecmp (
"DELETE_SCHEDULE", element_name) == 0)
7030 const gchar* attribute;
7034 "ultimate", &attribute))
7040 else if (strcasecmp (
"DELETE_TAG", element_name) == 0)
7042 const gchar* attribute;
7046 "ultimate", &attribute))
7052 else if (strcasecmp (
"DELETE_TARGET", element_name) == 0)
7054 const gchar* attribute;
7058 "ultimate", &attribute))
7064 else if (strcasecmp (
"DELETE_TASK", element_name) == 0)
7066 const gchar* attribute;
7070 "ultimate", &attribute))
7076 else if (strcasecmp (
"DELETE_USER", element_name) == 0)
7078 const gchar* attribute;
7090 "ultimate", &attribute))
7096 else if (strcasecmp (
"DESCRIBE_AUTH", element_name) == 0)
7098 else if (strcasecmp (
"EMPTY_TRASHCAN", element_name) == 0)
7100 else if (strcasecmp (
"GET_AGENTS", element_name) == 0)
7109 else if (strcasecmp (
"GET_AGGREGATES", element_name) == 0)
7111 gchar *data_column = g_strdup (
"");
7113 const gchar *attribute;
7114 int sort_order_given;
7117 sort_data->
field = g_strdup (
"");
7118 sort_data->
stat = g_strdup (
"");
7144 &(sort_data->
field));
7146 &(sort_data->
stat));
7148 "sort_order", &attribute))
7150 sort_data->
order = strcmp (attribute,
"descending");
7151 sort_order_given = 1;
7155 sort_data->
order = 1;
7156 sort_order_given = 0;
7159 if (strcmp (sort_data->
field,
"") || sort_order_given)
7170 "first_group", &attribute))
7176 "max_groups", &attribute))
7189 else if (strcasecmp (
"GET_CONFIGS", element_name) == 0)
7191 const gchar* attribute;
7199 "tasks", &attribute))
7205 "families", &attribute))
7211 "preferences", &attribute))
7218 else if (strcasecmp (
"GET_ALERTS", element_name) == 0)
7220 const gchar* attribute;
7227 "tasks", &attribute))
7234 else if (strcasecmp (
"GET_ASSETS", element_name) == 0)
7236 const gchar* typebuf;
7245 else if (strcasecmp (
"GET_CREDENTIALS", element_name) == 0)
7247 const gchar* attribute;
7255 "scanners", &attribute))
7261 "targets", &attribute))
7270 else if (strcasecmp (
"GET_FEEDS", element_name) == 0)
7276 else if (strcasecmp (
"GET_FILTERS", element_name) == 0)
7278 const gchar* attribute;
7283 "alerts", &attribute))
7289 else if (strcasecmp (
"GET_GROUPS", element_name) == 0)
7296 else if (strcasecmp (
"GET_NOTES", element_name) == 0)
7298 const gchar* attribute;
7314 "result", &attribute))
7321 else if (strcasecmp (
"GET_NVTS", element_name) == 0)
7323 const gchar* attribute;
7329 "preferences_config_id",
7332 "details", &attribute))
7339 "preferences", &attribute))
7344 "preference_count", &attribute))
7349 "timeout", &attribute))
7356 "sort_order", &attribute))
7363 else if (strcasecmp (
"GET_NVT_FAMILIES", element_name) == 0)
7365 const gchar* attribute;
7367 "sort_order", &attribute))
7374 else if (strcasecmp (
"GET_OVERRIDES", element_name) == 0)
7376 const gchar* attribute;
7392 "result", &attribute))
7399 else if (strcasecmp (
"GET_PORT_LISTS", element_name) == 0)
7401 const gchar* attribute;
7408 "targets", &attribute))
7414 else if (strcasecmp (
"GET_PERMISSIONS", element_name) == 0)
7423 else if (strcasecmp (
"GET_PREFERENCES", element_name) == 0)
7433 else if (strcasecmp (
"GET_REPORTS", element_name) == 0)
7435 const gchar* attribute;
7448 "details", &attribute))
7481 "host_first_result", &attribute))
7488 "host_max_results", &attribute))
7497 "host_search_phrase",
7501 "notes_details", &attribute))
7507 "overrides_details", &attribute))
7513 "type", &attribute))
7529 "ignore_pagination", &attribute))
7536 else if (strcasecmp (
"GET_REPORT_FORMATS", element_name) == 0)
7538 const gchar* attribute;
7545 "alerts", &attribute))
7551 "params", &attribute))
7558 else if (strcasecmp (
"GET_RESULTS", element_name) == 0)
7560 const gchar* attribute;
7570 "notes_details", &attribute))
7576 "overrides_details", &attribute))
7582 "get_counts", &attribute))
7589 else if (strcasecmp (
"GET_ROLES", element_name) == 0)
7596 else if (strcasecmp (
"GET_SCANNERS", element_name) == 0)
7599 attribute_names, attribute_values);
7602 else if (strcasecmp (
"GET_SCHEDULES", element_name) == 0)
7604 const gchar *attribute;
7609 "tasks", &attribute))
7615 else if (strcasecmp (
"GET_SETTINGS", element_name) == 0)
7617 const gchar* attribute;
7626 "first", &attribute))
7646 "sort_order", &attribute))
7653 else if (strcasecmp (
"GET_TAGS", element_name) == 0)
7655 const gchar* attribute;
7661 "names_only", &attribute))
7668 else if (strcasecmp (
"GET_SYSTEM_REPORTS", element_name) == 0)
7670 const gchar* attribute;
7682 "brief", &attribute))
7688 else if (strcasecmp (
"GET_TARGETS", element_name) == 0)
7690 const gchar *attribute;
7695 "tasks", &attribute))
7701 else if (strcasecmp (
"GET_TASKS", element_name) == 0)
7703 const gchar *attribute;
7708 "schedules_only", &attribute))
7714 else if (strcasecmp (
"GET_USERS", element_name) == 0)
7721 else if (strcasecmp (
"GET_INFO", element_name) == 0)
7723 const gchar* attribute;
7724 const gchar* typebuf;
7731 "details", &attribute))
7741 else if (strcasecmp (
"GET_VERSION", element_name) == 0)
7743 else if (strcasecmp (
"HELP", element_name) == 0)
7751 else if (strcasecmp (
"MODIFY_AGENT", element_name) == 0)
7757 else if (strcasecmp (
"MODIFY_ALERT", element_name) == 0)
7770 else if (strcasecmp (
"MODIFY_ASSET", element_name) == 0)
7776 else if (strcasecmp (
"MODIFY_AUTH", element_name) == 0)
7778 else if (strcasecmp (
"MODIFY_CONFIG", element_name) == 0)
7784 else if (strcasecmp (
"MODIFY_CREDENTIAL", element_name) == 0)
7791 else if (strcasecmp (
"MODIFY_FILTER", element_name) == 0)
7797 else if (strcasecmp (
"MODIFY_GROUP", element_name) == 0)
7803 else if (strcasecmp (
"MODIFY_PORT_LIST", element_name) == 0)
7810 else if (strcasecmp (
"MODIFY_NOTE", element_name) == 0)
7816 else if (strcasecmp (
"MODIFY_OVERRIDE", element_name) == 0)
7822 else if (strcasecmp (
"MODIFY_PERMISSION", element_name) == 0)
7829 else if (strcasecmp (
"MODIFY_REPORT", element_name) == 0)
7835 else if (strcasecmp (
"MODIFY_REPORT_FORMAT", element_name) == 0)
7842 else if (strcasecmp (
"MODIFY_ROLE", element_name) == 0)
7848 else if (strcasecmp (
"MODIFY_SCANNER", element_name) == 0)
7854 else if (strcasecmp (
"MODIFY_SCHEDULE", element_name) == 0)
7860 else if (strcasecmp (
"MODIFY_SETTING", element_name) == 0)
7867 else if (strcasecmp (
"MODIFY_TAG", element_name) == 0)
7873 else if (strcasecmp (
"MODIFY_TARGET", element_name) == 0)
7879 else if (strcasecmp (
"MODIFY_TASK", element_name) == 0)
7887 else if (strcasecmp (
"MODIFY_USER", element_name) == 0)
7893 else if (strcasecmp (
"MOVE_TASK", element_name) == 0)
7901 else if (strcasecmp (
"RESTORE", element_name) == 0)
7907 else if (strcasecmp (
"RESUME_TASK", element_name) == 0)
7913 else if (strcasecmp (
"RUN_WIZARD", element_name) == 0)
7921 else if (strcasecmp (
"START_TASK", element_name) == 0)
7927 else if (strcasecmp (
"STOP_TASK", element_name) == 0)
7933 else if (strcasecmp (
"SYNC_CERT", element_name) == 0)
7935 else if (strcasecmp (
"SYNC_CONFIG", element_name) == 0)
7941 else if (strcasecmp (
"SYNC_FEED", element_name) == 0)
7943 else if (strcasecmp (
"SYNC_SCAP", element_name) == 0)
7945 else if (strcasecmp (
"TEST_ALERT", element_name) == 0)
7952 else if (strcasecmp (
"VERIFY_AGENT", element_name) == 0)
7958 else if (strcasecmp (
"VERIFY_REPORT_FORMAT", element_name) == 0)
7964 else if (strcasecmp (
"VERIFY_SCANNER", element_name) == 0)
7974 write_to_client_data))
7976 error_send_to_client (error);
7981 G_MARKUP_ERROR_UNKNOWN_ELEMENT,
7987 if (strcasecmp (
"CREDENTIALS", element_name) == 0)
7996 if (strcasecmp (
"USERNAME", element_name) == 0)
7998 else if (strcasecmp (
"PASSWORD", element_name) == 0)
8003 if (strcasecmp (
"COMMENT", element_name) == 0)
8005 else if (strcasecmp (
"COPY", element_name) == 0)
8007 else if (strcasecmp (
"NAME", element_name) == 0)
8009 else if (strcasecmp (
"HOST", element_name) == 0)
8011 else if (strcasecmp (
"PORT", element_name) == 0)
8013 else if (strcasecmp (
"TYPE", element_name) == 0)
8015 else if (strcasecmp (
"CA_PUB", element_name) == 0)
8017 else if (strcasecmp (
"CREDENTIAL", element_name) == 0)
8026 if (strcasecmp (
"COMMENT", element_name) == 0)
8028 else if (strcasecmp (
"COPY", element_name) == 0)
8030 else if (strcasecmp (
"DURATION", element_name) == 0)
8032 else if (strcasecmp (
"FIRST_TIME", element_name) == 0)
8034 else if (strcasecmp (
"NAME", element_name) == 0)
8036 else if (strcasecmp (
"PERIOD", element_name) == 0)
8038 else if (strcasecmp (
"TIMEZONE", element_name) == 0)
8043 if (strcasecmp (
"DAY_OF_MONTH", element_name) == 0)
8045 else if (strcasecmp (
"HOUR", element_name) == 0)
8047 else if (strcasecmp (
"MINUTE", element_name) == 0)
8049 else if (strcasecmp (
"MONTH", element_name) == 0)
8051 else if (strcasecmp (
"YEAR", element_name) == 0)
8056 if (strcasecmp (
"UNIT", element_name) == 0)
8061 if (strcasecmp (
"UNIT", element_name) == 0)
8066 if (strcasecmp (
"DATA_COLUMN", element_name) == 0)
8073 else if (strcasecmp (
"SORT", element_name) == 0)
8075 int sort_order_given;
8076 const gchar* attribute;
8079 sort_data->
field = g_strdup (
"");
8080 sort_data->
stat = g_strdup (
"");
8083 &(sort_data->
field));
8085 &(sort_data->
stat));
8087 "order", &attribute))
8089 sort_order_given = 1;
8090 sort_data->
order = strcmp (attribute,
"descending");
8094 sort_order_given = 0;
8095 sort_data->
order = 1;
8098 if (strcmp (sort_data->
field,
"") || sort_order_given)
8107 else if (strcasecmp (
"TEXT_COLUMN", element_name) == 0)
8117 if (strcasecmp (
"COMMENT", element_name) == 0)
8122 else if (strcasecmp (
"NAME", element_name) == 0)
8130 if (strcasecmp (
"NAME", element_name) == 0)
8135 else if (strcasecmp (
"COMMENT", element_name) == 0)
8140 else if (strcasecmp (
"EVENT", element_name) == 0)
8142 else if (strcasecmp (
"FILTER", element_name) == 0)
8148 else if (strcasecmp (
"CONDITION", element_name) == 0)
8150 else if (strcasecmp (
"METHOD", element_name) == 0)
8155 if (strcasecmp (
"DATA", element_name) == 0)
8160 if (strcasecmp (
"NAME", element_name) == 0)
8165 if (strcasecmp (
"DATA", element_name) == 0)
8170 if (strcasecmp (
"NAME", element_name) == 0)
8175 if (strcasecmp (
"DATA", element_name) == 0)
8180 if (strcasecmp (
"NAME", element_name) == 0)
8185 if (strcasecmp (
"COMMENT", element_name) == 0)
8193 if (strcasecmp (
"GROUP", element_name) == 0)
8195 const gchar* attribute;
8201 new_group->
group_name = g_strdup (attribute);
8209 if (strcasecmp (
"AUTH_CONF_SETTING", element_name) == 0)
8214 if (strcasecmp (
"KEY", element_name) == 0)
8216 else if (strcasecmp (
"VALUE", element_name) == 0)
8221 if (strcasecmp (
"COMMENT", element_name) == 0)
8227 else if (strcasecmp (
"SCANNER", element_name) == 0)
8233 else if (strcasecmp (
"FAMILY_SELECTION", element_name) == 0)
8242 else if (strcasecmp (
"NAME", element_name) == 0)
8244 else if (strcasecmp (
"NVT_SELECTION", element_name) == 0)
8249 else if (strcasecmp (
"PREFERENCE", element_name) == 0)
8259 if (strcasecmp (
"FAMILY", element_name) == 0)
8261 else if (strcasecmp (
"NVT", element_name) == 0)
8270 if (strcasecmp (
"FAMILY", element_name) == 0)
8278 else if (strcasecmp (
"GROWING", element_name) == 0)
8283 if (strcasecmp (
"ALL", element_name) == 0)
8286 else if (strcasecmp (
"GROWING", element_name) == 0)
8289 else if (strcasecmp (
"NAME", element_name) == 0)
8294 if (strcasecmp (
"NAME", element_name) == 0)
8296 else if (strcasecmp (
"NVT", element_name) == 0)
8302 else if (strcasecmp (
"VALUE", element_name) == 0)
8307 if (strcasecmp (
"ALLOW_INSECURE", element_name) == 0)
8309 else if (strcasecmp (
"AUTH_ALGORITHM", element_name) == 0)
8313 else if (strcasecmp (
"NAME", element_name) == 0)
8315 else if (strcasecmp (
"COMMENT", element_name) == 0)
8321 else if (strcasecmp (
"CERTIFICATE", element_name) == 0)
8325 else if (strcasecmp (
"COMMUNITY", element_name) == 0)
8330 else if (strcasecmp (
"KEY", element_name) == 0)
8335 else if (strcasecmp (
"LOGIN", element_name) == 0)
8337 else if (strcasecmp (
"PASSWORD", element_name) == 0)
8343 else if (strcasecmp (
"PRIVACY", element_name) == 0)
8352 if (strcasecmp (
"PHRASE", element_name) == 0)
8358 else if (strcasecmp (
"PRIVATE", element_name) == 0)
8365 if (strcasecmp (
"ALGORITHM", element_name) == 0)
8369 else if (strcasecmp (
"PASSWORD", element_name) == 0)
8379 if (strcasecmp (
"COMMENT", element_name) == 0)
8384 else if (strcasecmp (
"NAME", element_name) == 0)
8389 else if (strcasecmp (
"TERM", element_name) == 0)
8394 else if (strcasecmp (
"TYPE", element_name) == 0)
8402 if (strcasecmp (
"COMMENT", element_name) == 0)
8407 else if (strcasecmp (
"NAME", element_name) == 0)
8412 else if (strcasecmp (
"USERS", element_name) == 0)
8420 if (strcasecmp (
"COMMENT", element_name) == 0)
8422 else if (strcasecmp (
"NAME", element_name) == 0)
8424 else if (strcasecmp (
"RESOURCE", element_name) == 0)
8430 else if (strcasecmp (
"SUBJECT", element_name) == 0)
8439 if (strcasecmp (
"TYPE", element_name) == 0)
8444 if (strcasecmp (
"TYPE", element_name) == 0)
8449 if (strcasecmp (
"NAME", element_name) == 0)
8451 else if (strcasecmp (
"COMMENT", element_name) == 0)
8460 if (strcasecmp (
"COMMENT", element_name) == 0)
8465 if (strcasecmp (
"ACTIVE", element_name) == 0)
8467 else if (strcasecmp (
"NAME", element_name) == 0)
8469 else if (strcasecmp (
"SUMMARY", element_name) == 0)
8471 else if (strcasecmp (
"PARAM", element_name) == 0)
8476 if (strcasecmp (
"NAME", element_name) == 0)
8478 else if (strcasecmp (
"VALUE", element_name) == 0)
8483 if (strcasecmp (
"COMMENT", element_name) == 0)
8488 else if (strcasecmp (
"NAME", element_name) == 0)
8493 else if (strcasecmp (
"USERS", element_name) == 0)
8501 if (strcasecmp (
"COMMENT", element_name) == 0)
8506 else if (strcasecmp (
"NAME", element_name) == 0)
8511 else if (strcasecmp (
"HOST", element_name) == 0)
8516 else if (strcasecmp (
"PORT", element_name) == 0)
8521 else if (strcasecmp (
"TYPE", element_name) == 0)
8526 else if (strcasecmp (
"CA_PUB", element_name) == 0)
8531 else if (strcasecmp (
"CREDENTIAL", element_name) == 0)
8540 if (strcasecmp (
"COMMENT", element_name) == 0)
8545 else if (strcasecmp (
"NAME", element_name) == 0)
8550 else if (strcasecmp (
"DURATION", element_name) == 0)
8552 else if (strcasecmp (
"FIRST_TIME", element_name) == 0)
8554 else if (strcasecmp (
"NAME", element_name) == 0)
8556 else if (strcasecmp (
"PERIOD", element_name) == 0)
8558 else if (strcasecmp (
"TIMEZONE", element_name) == 0)
8563 if (strcasecmp (
"DAY_OF_MONTH", element_name) == 0)
8565 else if (strcasecmp (
"HOUR", element_name) == 0)
8567 else if (strcasecmp (
"MINUTE", element_name) == 0)
8569 else if (strcasecmp (
"MONTH", element_name) == 0)
8571 else if (strcasecmp (
"YEAR", element_name) == 0)
8576 if (strcasecmp (
"UNIT", element_name) == 0)
8581 if (strcasecmp (
"UNIT", element_name) == 0)
8586 if (strcasecmp (
"NAME", element_name) == 0)
8588 else if (strcasecmp (
"VALUE", element_name) == 0)
8596 if (strcasecmp (
"ACTIVE", element_name) == 0)
8601 else if (strcasecmp (
"RESOURCE", element_name) == 0)
8607 else if (strcasecmp (
"COMMENT", element_name) == 0)
8612 else if (strcasecmp (
"NAME", element_name) == 0)
8617 else if (strcasecmp (
"VALUE", element_name) == 0)
8625 if (strcasecmp (
"TYPE", element_name) == 0)
8633 if (strcasecmp (
"EXCLUDE_HOSTS", element_name) == 0)
8638 else if (strcasecmp (
"REVERSE_LOOKUP_ONLY", element_name) == 0)
8640 else if (strcasecmp (
"REVERSE_LOOKUP_UNIFY", element_name) == 0)
8642 else if (strcasecmp (
"ALIVE_TESTS", element_name) == 0)
8644 else if (strcasecmp (
"COMMENT", element_name) == 0)
8649 else if (strcasecmp (
"ESXI_CREDENTIAL", element_name) == 0)
8655 else if (strcasecmp (
"ESXI_LSC_CREDENTIAL", element_name) == 0)
8661 else if (strcasecmp (
"HOSTS", element_name) == 0)
8666 else if (strcasecmp (
"PORT_LIST", element_name) == 0)
8672 else if (strcasecmp (
"SSH_CREDENTIAL", element_name) == 0)
8678 else if (strcasecmp (
"SSH_LSC_CREDENTIAL", element_name) == 0)
8684 else if (strcasecmp (
"SMB_CREDENTIAL", element_name) == 0)
8690 else if (strcasecmp (
"SMB_LSC_CREDENTIAL", element_name) == 0)
8696 else if (strcasecmp (
"SNMP_CREDENTIAL", element_name) == 0)
8702 else if (strcasecmp (
"NAME", element_name) == 0)
8710 if (strcasecmp (
"PORT", element_name) == 0)
8715 if (strcasecmp (
"PORT", element_name) == 0)
8720 if (strcasecmp (
"ALTERABLE", element_name) == 0)
8722 else if (strcasecmp (
"COMMENT", element_name) == 0)
8727 else if (strcasecmp (
"HOSTS_ORDERING", element_name) == 0)
8729 else if (strcasecmp (
"SCANNER", element_name) == 0)
8735 else if (strcasecmp (
"ALERT", element_name) == 0)
8737 const gchar* attribute;
8743 else if (strcasecmp (
"CONFIG", element_name) == 0)
8749 else if (strcasecmp (
"NAME", element_name) == 0)
8751 else if (strcasecmp (
"OBSERVERS", element_name) == 0)
8756 else if (strcasecmp (
"PREFERENCES", element_name) == 0)
8761 else if (strcasecmp (
"SCHEDULE", element_name) == 0)
8767 else if (strcasecmp (
"SCHEDULE_PERIODS", element_name) == 0)
8769 else if (strcasecmp (
"TARGET", element_name) == 0)
8775 else if (strcasecmp (
"FILE", element_name) == 0)
8777 const gchar* attribute;
8781 "action", &attribute))
8790 if (strcasecmp (
"GROUP", element_name) == 0)
8792 const gchar* attribute;
8801 if (strcasecmp (
"PREFERENCE", element_name) == 0)
8812 if (strcasecmp (
"SCANNER_NAME", element_name) == 0)
8814 else if (strcasecmp (
"VALUE", element_name) == 0)
8819 if (strcasecmp (
"GROUPS", element_name) == 0)
8826 else if (strcasecmp (
"HOSTS", element_name) == 0)
8828 const gchar *attribute;
8830 (attribute_names, attribute_values,
"allow", &attribute))
8838 else if (strcasecmp (
"IFACES", element_name) == 0)
8840 const gchar *attribute;
8842 (attribute_names, attribute_values,
"allow", &attribute))
8849 else if (strcasecmp (
"NAME", element_name) == 0)
8851 else if (strcasecmp (
"NEW_NAME", element_name) == 0)
8853 else if (strcasecmp (
"PASSWORD", element_name) == 0)
8855 const gchar *attribute;
8857 (attribute_names, attribute_values,
"modify", &attribute))
8863 else if (strcasecmp (
"ROLE", element_name) == 0)
8865 const gchar* attribute;
8877 else if (strcasecmp (
"SOURCES", element_name) == 0)
8884 if (send_element_error_to_client (
"modify_user", element_name,
8886 write_to_client_data))
8888 error_send_to_client (error);
8892 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
8898 if (strcasecmp (
"GROUP", element_name) == 0)
8900 const gchar* attribute;
8909 if (strcasecmp (
"SOURCE", element_name) == 0)
8915 if (send_element_error_to_client (
"modify_user_sources",
8918 write_to_client_data))
8920 error_send_to_client (error);
8924 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
8930 if (strcasecmp (
"COMMENT", element_name) == 0)
8932 else if (strcasecmp (
"COPY", element_name) == 0)
8934 else if (strcasecmp (
"HOWTO_INSTALL", element_name) == 0)
8936 else if (strcasecmp (
"HOWTO_USE", element_name) == 0)
8938 else if (strcasecmp (
"INSTALLER", element_name) == 0)
8940 else if (strcasecmp (
"NAME", element_name) == 0)
8947 if (strcasecmp (
"FILENAME", element_name) == 0)
8949 else if (strcasecmp (
"SIGNATURE", element_name) == 0)
8954 if (strcasecmp (
"ASSET", element_name) == 0)
8956 else if (strcasecmp (
"REPORT", element_name) == 0)
8965 if (strcasecmp (
"COMMENT", element_name) == 0)
8967 else if (strcasecmp (
"NAME", element_name) == 0)
8969 else if (strcasecmp (
"TYPE", element_name) == 0)
8974 if (strcasecmp (
"FILTER", element_name) == 0)
8979 if (strcasecmp (
"TERM", element_name) == 0)
8984 if (strcasecmp (
"COMMENT", element_name) == 0)
8986 else if (strcasecmp (
"SCANNER", element_name) == 0)
8988 else if (strcasecmp (
"COPY", element_name) == 0)
8990 else if (strcasecmp (
"GET_CONFIGS_RESPONSE", element_name) == 0)
8996 else if (strcasecmp (
"NAME", element_name) == 0)
9001 if (strcasecmp (
"CONFIG", element_name) == 0)
9011 if (strcasecmp (
"COMMENT", element_name) == 0)
9013 else if (strcasecmp (
"NAME", element_name) == 0)
9015 else if (strcasecmp (
"NVT_SELECTORS", element_name) == 0)
9021 else if (strcasecmp (
"PREFERENCES", element_name) == 0)
9027 else if (strcasecmp (
"TYPE", element_name) == 0)
9034 if (strcasecmp (
"NVT_SELECTOR", element_name) == 0)
9039 if (strcasecmp (
"INCLUDE", element_name) == 0)
9042 else if (strcasecmp (
"NAME", element_name) == 0)
9045 else if (strcasecmp (
"TYPE", element_name) == 0)
9048 else if (strcasecmp (
"FAMILY_OR_NVT", element_name) == 0)
9054 if (strcasecmp (
"PREFERENCE", element_name) == 0)
9062 if (strcasecmp (
"ALT", element_name) == 0)
9065 else if (strcasecmp (
"DEFAULT", element_name) == 0)
9068 else if (strcasecmp (
"HR_NAME", element_name) == 0)
9071 else if (strcasecmp (
"NAME", element_name) == 0)
9074 else if (strcasecmp (
"NVT", element_name) == 0)
9081 else if (strcasecmp (
"TYPE", element_name) == 0)
9084 else if (strcasecmp (
"VALUE", element_name) == 0)
9090 if (strcasecmp (
"NAME", element_name) == 0)
9096 if (strcasecmp (
"COMMENT", element_name) == 0)
9098 else if (strcasecmp (
"COPY", element_name) == 0)
9100 else if (strcasecmp (
"CONDITION", element_name) == 0)
9102 else if (strcasecmp (
"EVENT", element_name) == 0)
9104 else if (strcasecmp (
"FILTER", element_name) == 0)
9110 else if (strcasecmp (
"METHOD", element_name) == 0)
9112 else if (strcasecmp (
"NAME", element_name) == 0)
9117 if (strcasecmp (
"DATA", element_name) == 0)
9122 if (strcasecmp (
"NAME", element_name) == 0)
9127 if (strcasecmp (
"DATA", element_name) == 0)
9132 if (strcasecmp (
"NAME", element_name) == 0)
9137 if (strcasecmp (
"DATA", element_name) == 0)
9142 if (strcasecmp (
"NAME", element_name) == 0)
9147 if (strcasecmp (
"ALLOW_INSECURE", element_name) == 0)
9149 else if (strcasecmp (
"AUTH_ALGORITHM", element_name) == 0)
9151 else if (strcasecmp (
"CERTIFICATE", element_name) == 0)
9153 else if (strcasecmp (
"COMMENT", element_name) == 0)
9155 else if (strcasecmp (
"COMMUNITY", element_name) == 0)
9157 else if (strcasecmp (
"KEY", element_name) == 0)
9162 else if (strcasecmp (
"LOGIN", element_name) == 0)
9164 else if (strcasecmp (
"COPY", element_name) == 0)
9166 else if (strcasecmp (
"NAME", element_name) == 0)
9168 else if (strcasecmp (
"PASSWORD", element_name) == 0)
9173 else if (strcasecmp (
"PRIVACY", element_name) == 0)
9175 else if (strcasecmp (
"TYPE", element_name) == 0)
9180 if (strcasecmp (
"PHRASE", element_name) == 0)
9185 else if (strcasecmp (
"PRIVATE", element_name) == 0)
9190 if (strcasecmp (
"ALGORITHM", element_name) == 0)
9192 else if (strcasecmp (
"PASSWORD", element_name) == 0)
9197 if (strcasecmp (
"COMMENT", element_name) == 0)
9199 else if (strcasecmp (
"COPY", element_name) == 0)
9201 else if (strcasecmp (
"NAME", element_name) == 0)
9206 else if (strcasecmp (
"TERM", element_name) == 0)
9208 else if (strcasecmp (
"TYPE", element_name) == 0)
9213 if (strcasecmp (
"MAKE_UNIQUE", element_name) == 0)
9218 if (strcasecmp (
"COMMENT", element_name) == 0)
9220 else if (strcasecmp (
"COPY", element_name) == 0)
9222 else if (strcasecmp (
"NAME", element_name) == 0)
9227 else if (strcasecmp (
"SPECIALS", element_name) == 0)
9229 else if (strcasecmp (
"USERS", element_name) == 0)
9234 if (strcasecmp (
"FULL", element_name) == 0)
9242 if (strcasecmp (
"ACTIVE", element_name) == 0)
9244 else if (strcasecmp (
"COPY", element_name) == 0)
9246 else if (strcasecmp (
"HOSTS", element_name) == 0)
9248 else if (strcasecmp (
"NVT", element_name) == 0)
9254 else if (strcasecmp (
"PORT", element_name) == 0)
9256 else if (strcasecmp (
"RESULT", element_name) == 0)
9268 else if (strcasecmp (
"SEVERITY", element_name) == 0)
9270 else if (strcasecmp (
"TASK", element_name) == 0)
9282 else if (strcasecmp (
"TEXT", element_name) == 0)
9284 else if (strcasecmp (
"THREAT", element_name) == 0)
9289 if (strcasecmp (
"COMMENT", element_name) == 0)
9291 else if (strcasecmp (
"COPY", element_name) == 0)
9293 else if (strcasecmp (
"NAME", element_name) == 0)
9298 else if (strcasecmp (
"RESOURCE", element_name) == 0)
9304 else if (strcasecmp (
"SUBJECT", element_name) == 0)
9313 if (strcasecmp (
"TYPE", element_name) == 0)
9318 if (strcasecmp (
"TYPE", element_name) == 0)
9323 if (strcasecmp (
"COMMENT", element_name) == 0)
9325 else if (strcasecmp (
"COPY", element_name) == 0)
9327 else if (strcasecmp (
"GET_PORT_LISTS_RESPONSE", element_name) == 0)
9333 else if (strcasecmp (
"PORT_RANGE", element_name) == 0)
9338 else if (strcasecmp (
"NAME", element_name) == 0)
9343 if (strcasecmp (
"PORT_LIST", element_name) == 0)
9352 if (strcasecmp (
"COMMENT", element_name) == 0)
9354 else if (strcasecmp (
"IN_USE", element_name) == 0)
9356 else if (strcasecmp (
"NAME", element_name) == 0)
9358 else if (strcasecmp (
"PORT_RANGE", element_name) == 0)
9360 else if (strcasecmp (
"PORT_RANGES", element_name) == 0)
9365 else if (strcasecmp (
"TARGETS", element_name) == 0)
9373 if (strcasecmp (
"PORT_RANGE", element_name) == 0)
9385 if (strcasecmp (
"COMMENT", element_name) == 0)
9390 else if (strcasecmp (
"END", element_name) == 0)
9395 else if (strcasecmp (
"START", element_name) == 0)
9400 else if (strcasecmp (
"TYPE", element_name) == 0)
9408 if (strcasecmp (
"COMMENT", element_name) == 0)
9410 else if (strcasecmp (
"END", element_name) == 0)
9412 else if (strcasecmp (
"PORT_LIST", element_name) == 0)
9418 else if (strcasecmp (
"START", element_name) == 0)
9420 else if (strcasecmp (
"TYPE", element_name) == 0)
9425 if (strcasecmp (
"COMMENT", element_name) == 0)
9427 else if (strcasecmp (
"COPY", element_name) == 0)
9429 else if (strcasecmp (
"NAME", element_name) == 0)
9434 else if (strcasecmp (
"USERS", element_name) == 0)
9439 if (strcasecmp (
"IN_ASSETS", element_name) == 0)
9443 else if (strcasecmp (
"REPORT", element_name) == 0)
9445 const gchar* attribute;
9452 if (
find_attribute (attribute_names, attribute_values,
"format_id",
9470 else if (strcasecmp (
"TASK", element_name) == 0)
9479 if (strcasecmp (
"REPORT", element_name) == 0)
9490 if (strcasecmp (
"FILTERS", element_name) == 0)
9495 else if (strcasecmp (
"HOST", element_name) == 0)
9499 else if (strcasecmp (
"HOST_COUNT", element_name) == 0)
9504 else if (strcasecmp (
"HOST_END", element_name) == 0)
9506 else if (strcasecmp (
"HOST_START", element_name) == 0)
9508 else if (strcasecmp (
"HOSTS", element_name) == 0)
9513 else if (strcasecmp (
"PORTS", element_name) == 0)
9518 else if (strcasecmp (
"REPORT_FORMAT", element_name) == 0)
9523 else if (strcasecmp (
"RESULTS", element_name) == 0)
9525 else if (strcasecmp (
"RESULT_COUNT", element_name) == 0)
9530 else if (strcasecmp (
"SCAN_RUN_STATUS", element_name) == 0)
9536 else if (strcasecmp (
"SCAN_END", element_name) == 0)
9540 else if (strcasecmp (
"SCAN_START", element_name) == 0)
9544 else if (strcasecmp (
"SORT", element_name) == 0)
9549 else if (strcasecmp (
"TASK", element_name) == 0)
9557 if (strcasecmp (
"HOST", element_name) == 0)
9562 if (strcasecmp (
"HOST", element_name) == 0)
9567 if (strcasecmp (
"IP", element_name) == 0)
9571 else if (strcasecmp (
"DETAIL", element_name) == 0)
9575 else if (strcasecmp (
"END", element_name) == 0)
9579 else if (strcasecmp (
"START", element_name) == 0)
9586 if (strcasecmp (
"NAME", element_name) == 0)
9590 else if (strcasecmp (
"VALUE", element_name) == 0)
9594 else if (strcasecmp (
"SOURCE", element_name) == 0)
9601 if (strcasecmp (
"DESCRIPTION", element_name) == 0)
9605 else if (strcasecmp (
"NAME", element_name) == 0)
9609 else if (strcasecmp (
"TYPE", element_name) == 0)
9616 if (strcasecmp (
"RESULT", element_name) == 0)
9622 if (strcasecmp (
"COMMENT", element_name) == 0)
9628 else if (strcasecmp (
"CREATION_TIME", element_name) == 0)
9634 else if (strcasecmp (
"DESCRIPTION", element_name) == 0)
9637 else if (strcasecmp (
"DETECTION", element_name) == 0)
9642 else if (strcasecmp (
"HOST", element_name) == 0)
9647 else if (strcasecmp (
"MODIFICATION_TIME", element_name) == 0)
9653 else if (strcasecmp (
"NAME", element_name) == 0)
9659 else if (strcasecmp (
"NOTES", element_name) == 0)
9664 else if (strcasecmp (
"NVT", element_name) == 0)
9670 else if (strcasecmp (
"ORIGINAL_SEVERITY", element_name) == 0)
9673 else if (strcasecmp (
"ORIGINAL_THREAT", element_name) == 0)
9676 else if (strcasecmp (
"OVERRIDES", element_name) == 0)
9681 else if (strcasecmp (
"OWNER", element_name) == 0)
9687 else if (strcasecmp (
"PORT", element_name) == 0)
9689 else if (strcasecmp (
"QOD", element_name) == 0)
9691 else if (strcasecmp (
"SCAN_NVT_VERSION", element_name) == 0)
9694 else if (strcasecmp (
"SEVERITY", element_name) == 0)
9696 else if (strcasecmp (
"THREAT", element_name) == 0)
9701 if (strcasecmp (
"BID", element_name) == 0)
9703 else if (strcasecmp (
"CVE", element_name) == 0)
9705 else if (strcasecmp (
"CVSS_BASE", element_name) == 0)
9708 else if (strcasecmp (
"FAMILY", element_name) == 0)
9710 else if (strcasecmp (
"NAME", element_name) == 0)
9712 else if (strcasecmp (
"XREF", element_name) == 0)
9714 else if (strcasecmp (
"CERT", element_name) == 0)
9719 if (strcasecmp (
"CERT_REF", element_name) == 0)
9725 if (strcasecmp (
"TYPE", element_name) == 0)
9727 else if (strcasecmp (
"VALUE", element_name) == 0)
9732 if (strcasecmp (
"COMMENT", element_name) == 0)
9734 else if (strcasecmp (
"NAME", element_name) == 0)
9739 if (strcasecmp (
"GET_REPORT_FORMATS_RESPONSE", element_name) == 0)
9745 else if (strcasecmp (
"COPY", element_name) == 0)
9750 if (strcasecmp (
"REPORT_FORMAT", element_name) == 0)
9762 if (strcasecmp (
"CONTENT_TYPE", element_name) == 0)
9764 else if (strcasecmp (
"DESCRIPTION", element_name) == 0)
9766 else if (strcasecmp (
"EXTENSION", element_name) == 0)
9768 else if (strcasecmp (
"GLOBAL", element_name) == 0)
9770 else if (strcasecmp (
"FILE", element_name) == 0)
9779 else if (strcasecmp (
"NAME", element_name) == 0)
9781 else if (strcasecmp (
"PARAM", element_name) == 0)
9791 else if (strcasecmp (
"PREDEFINED", element_name) == 0)
9793 else if (strcasecmp (
"SIGNATURE", element_name) == 0)
9795 else if (strcasecmp (
"SUMMARY", element_name) == 0)
9797 else if (strcasecmp (
"TRUST", element_name) == 0)
9805 if (strcasecmp (
"DEFAULT", element_name) == 0)
9811 else if (strcasecmp (
"NAME", element_name) == 0)
9813 else if (strcasecmp (
"OPTIONS", element_name) == 0)
9815 else if (strcasecmp (
"TYPE", element_name) == 0)
9820 else if (strcasecmp (
"VALUE", element_name) == 0)
9825 if (strcasecmp (
"REPORT_FORMAT", element_name) == 0)
9834 if (strcasecmp (
"REPORT_FORMAT", element_name) == 0)
9843 if (strcasecmp (
"OPTION", element_name) == 0)
9853 if (strcasecmp (
"MAX", element_name) == 0)
9858 else if (strcasecmp (
"MIN", element_name) == 0)
9866 if (strcasecmp (
"ACTIVE", element_name) == 0)
9868 else if (strcasecmp (
"COPY", element_name) == 0)
9870 else if (strcasecmp (
"HOSTS", element_name) == 0)
9872 else if (strcasecmp (
"NEW_SEVERITY", element_name) == 0)
9874 else if (strcasecmp (
"NEW_THREAT", element_name) == 0)
9876 else if (strcasecmp (
"NVT", element_name) == 0)
9882 else if (strcasecmp (
"PORT", element_name) == 0)
9884 else if (strcasecmp (
"RESULT", element_name) == 0)
9896 else if (strcasecmp (
"SEVERITY", element_name) == 0)
9898 else if (strcasecmp (
"TASK", element_name) == 0)
9910 else if (strcasecmp (
"TEXT", element_name) == 0)
9912 else if (strcasecmp (
"THREAT", element_name) == 0)
9917 if (strcasecmp (
"ACTIVE", element_name) == 0)
9922 else if (strcasecmp (
"RESOURCE", element_name) == 0)
9928 else if (strcasecmp (
"COMMENT", element_name) == 0)
9933 else if (strcasecmp (
"COPY", element_name) == 0)
9938 else if (strcasecmp (
"NAME", element_name) == 0)
9943 else if (strcasecmp (
"VALUE", element_name) == 0)
9951 if (strcasecmp (
"TYPE", element_name) == 0)
9959 if (strcasecmp (
"ASSET_HOSTS", element_name) == 0)
9965 else if (strcasecmp (
"EXCLUDE_HOSTS", element_name) == 0)
9967 else if (strcasecmp (
"REVERSE_LOOKUP_ONLY", element_name) == 0)
9969 else if (strcasecmp (
"REVERSE_LOOKUP_UNIFY", element_name) == 0)
9971 else if (strcasecmp (
"ALIVE_TESTS", element_name) == 0)
9973 else if (strcasecmp (
"COMMENT", element_name) == 0)
9975 else if (strcasecmp (
"COPY", element_name) == 0)
9977 else if (strcasecmp (
"ESXI_CREDENTIAL", element_name) == 0)
9983 else if (strcasecmp (
"ESXI_LSC_CREDENTIAL", element_name) == 0)
9989 else if (strcasecmp (
"HOSTS", element_name) == 0)
9991 else if (strcasecmp (
"PORT_LIST", element_name) == 0)
9997 else if (strcasecmp (
"PORT_RANGE", element_name) == 0)
10002 else if (strcasecmp (
"SSH_CREDENTIAL", element_name) == 0)
10008 else if (strcasecmp (
"SSH_LSC_CREDENTIAL", element_name) == 0)
10014 else if (strcasecmp (
"SMB_CREDENTIAL", element_name) == 0)
10020 else if (strcasecmp (
"SMB_LSC_CREDENTIAL", element_name) == 0)
10026 else if (strcasecmp (
"SNMP_CREDENTIAL", element_name) == 0)
10032 else if (strcasecmp (
"NAME", element_name) == 0)
10040 if (strcasecmp (
"MAKE_UNIQUE", element_name) == 0)
10045 if (strcasecmp (
"PORT", element_name) == 0)
10050 if (strcasecmp (
"PORT", element_name) == 0)
10055 if (strcasecmp (
"ALTERABLE", element_name) == 0)
10057 else if (strcasecmp (
"COPY", element_name) == 0)
10059 else if (strcasecmp (
"PREFERENCES", element_name) == 0)
10064 else if (strcasecmp (
"NAME", element_name) == 0)
10066 else if (strcasecmp (
"COMMENT", element_name) == 0)
10068 else if (strcasecmp (
"HOSTS_ORDERING", element_name) == 0)
10070 else if (strcasecmp (
"SCANNER", element_name) == 0)
10076 else if (strcasecmp (
"CONFIG", element_name) == 0)
10082 else if (strcasecmp (
"ALERT", element_name) == 0)
10084 const gchar* attribute;
10090 else if (strcasecmp (
"OBSERVERS", element_name) == 0)
10092 else if (strcasecmp (
"SCHEDULE", element_name) == 0)
10098 else if (strcasecmp (
"SCHEDULE_PERIODS", element_name) == 0)
10100 else if (strcasecmp (
"TARGET", element_name) == 0)
10109 if (strcasecmp (
"GROUP", element_name) == 0)
10111 const gchar* attribute;
10120 if (strcasecmp (
"PREFERENCE", element_name) == 0)
10131 if (strcasecmp (
"SCANNER_NAME", element_name) == 0)
10133 else if (strcasecmp (
"VALUE", element_name) == 0)
10138 if (strcasecmp (
"COPY", element_name) == 0)
10140 else if (strcasecmp (
"GROUPS", element_name) == 0)
10142 else if (strcasecmp (
"HOSTS", element_name) == 0)
10144 const gchar *attribute;
10146 (attribute_names, attribute_values,
"allow", &attribute))
10152 else if (strcasecmp (
"IFACES", element_name) == 0)
10154 const gchar *attribute;
10156 (attribute_names, attribute_values,
"allow", &attribute))
10162 else if (strcasecmp (
"NAME", element_name) == 0)
10164 else if (strcasecmp (
"PASSWORD", element_name) == 0)
10166 else if (strcasecmp (
"ROLE", element_name) == 0)
10168 const gchar* attribute;
10174 else if (strcasecmp (
"SOURCES", element_name) == 0)
10181 if (send_element_error_to_client (
"create_user", element_name,
10183 write_to_client_data))
10185 error_send_to_client (error);
10189 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
10195 if (strcasecmp (
"GROUP", element_name) == 0)
10197 const gchar* attribute;
10206 if (strcasecmp (
"SOURCE", element_name) == 0)
10210 if (send_element_error_to_client (
"create_user", element_name,
10212 write_to_client_data))
10214 error_send_to_client (error);
10218 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
10224 if (strcasecmp (
"ACTIVE", element_name) == 0)
10226 else if (strcasecmp (
"HOSTS", element_name) == 0)
10228 else if (strcasecmp (
"PORT", element_name) == 0)
10230 else if (strcasecmp (
"RESULT", element_name) == 0)
10242 else if (strcasecmp (
"SEVERITY", element_name) == 0)
10244 else if (strcasecmp (
"TASK", element_name) == 0)
10256 else if (strcasecmp (
"TEXT", element_name) == 0)
10258 else if (strcasecmp (
"THREAT", element_name) == 0)
10263 if (strcasecmp (
"ACTIVE", element_name) == 0)
10265 else if (strcasecmp (
"HOSTS", element_name) == 0)
10267 else if (strcasecmp (
"NEW_SEVERITY", element_name) == 0)
10269 else if (strcasecmp (
"NEW_THREAT", element_name) == 0)
10271 else if (strcasecmp (
"PORT", element_name) == 0)
10273 else if (strcasecmp (
"RESULT", element_name) == 0)
10285 else if (strcasecmp (
"SEVERITY", element_name) == 0)
10287 else if (strcasecmp (
"TASK", element_name) == 0)
10299 else if (strcasecmp (
"TEXT", element_name) == 0)
10301 else if (strcasecmp (
"THREAT", element_name) == 0)
10306 if (strcasecmp (
"MODE", element_name) == 0)
10310 else if (strcasecmp (
"NAME", element_name) == 0)
10314 else if (strcasecmp (
"PARAMS", element_name) == 0)
10322 if (strcasecmp (
"PARAM", element_name) == 0)
10333 if (strcasecmp (
"NAME", element_name) == 0)
10337 else if (strcasecmp (
"VALUE", element_name) == 0)
10345 if (send_element_error_to_client (
"omp", element_name,
10347 write_to_client_data))
10349 error_send_to_client (error);
10353 g_set_error (error,
10355 G_MARKUP_ERROR_UNKNOWN_ELEMENT,
10380 send_nvt (
iterator_t *nvts,
int details,
int preferences,
int pref_count,
10381 const char *timeout,
config_t config,
10382 int (*write_to_client) (
const char *,
void*),
10383 void* write_to_client_data)
10387 msg =
get_nvti_xml (nvts, details, pref_count, preferences, timeout, config,
10389 if (send_to_client (msg, write_to_client, write_to_client_data))
10411 send_reports (
task_t task,
int apply_overrides,
int min_qod,
10412 int (*write_to_client) (
const char*,
void*),
10413 void* write_to_client_data)
10418 if (send_to_client (
"<reports>", write_to_client, write_to_client_data))
10424 gchar *uuid, *timestamp, *msg;
10425 int debugs, false_positives, holes, infos, logs, warnings, run_status;
10427 char *scan_start, *scan_end;
10431 if (
report_counts (uuid, &debugs, &holes, &infos, &logs, &warnings,
10432 &false_positives, &severity, apply_overrides,
10445 g_debug (
" %s\n", uuid);
10450 msg = g_strdup_printf (
"<report" 10452 "<timestamp>%s</timestamp>" 10453 "<scan_start>%s</scan_start>" 10454 "<scan_end>%s</scan_end>" 10455 "<scan_run_status>%s</scan_run_status>" 10457 "<debug>%i</debug>" 10461 "<warning>%i</warning>" 10462 "<false_positive>%i</false_positive>" 10464 "<severity>%1.1f</severity>" 10471 (run_status ? run_status
10482 g_free (timestamp);
10483 if (send_to_client (msg, write_to_client, write_to_client_data))
10494 if (send_to_client (
"</reports>", write_to_client, write_to_client_data))
10508 convert_to_newlines (
const char *text)
10512 new = g_malloc (strlen (text) + 1);
10518 if (*(text+1) ==
'n')
10524 else if (*(text+1) ==
'r')
10544 buffer_xml_append_printf (GString *buffer,
const char *format, ...)
10548 va_start (args, format);
10549 msg = g_markup_vprintf_escaped (format, args);
10551 g_string_append (buffer, msg);
10565 utf8_substring (
const gchar *str, glong start_pos, glong end_pos)
10572 start = g_utf8_offset_to_pointer (str, start_pos);
10573 end = g_utf8_offset_to_pointer (
start, end_pos - start_pos);
10592 buffer_notes_xml (GString *buffer,
iterator_t *notes,
int include_notes_details,
10593 int include_result,
int *count)
10595 while (
next (notes))
10597 char *uuid_task, *uuid_result;
10612 uuid_result = NULL;
10614 buffer_xml_append_printf (buffer,
10628 buffer_xml_append_printf (buffer,
10629 "<permission><name>Everything</name></permission>" 10636 memset (&perms_get,
'\0',
sizeof (perms_get));
10637 perms_get.
filter = g_strdup_printf (
"resource_uuid=%s" 10642 g_free (perms_get.
filter);
10643 while (
next (&perms))
10644 buffer_xml_append_printf (buffer,
10645 "<permission><name>%s</name></permission>",
10649 buffer_xml_append_printf (buffer,
"</permissions>");
10652 if (include_notes_details == 0)
10655 gchar *excerpt = utf8_substring (text, 0, 60);
10657 buffer_xml_append_printf (buffer,
10658 "<owner><name>%s</name></owner>" 10663 "<creation_time>%s</creation_time>" 10664 "<modification_time>%s</modification_time>" 10665 "<writable>1</writable>" 10666 "<in_use>0</in_use>" 10667 "<active>%i</active>" 10668 "<text excerpt=\"%i\">%s</text>" 10669 "<orphan>%i</orphan>" 10671 "<count>%i</count>" 10683 strlen (excerpt) < strlen (text),
10686 && (uuid_task == NULL))
10688 && (uuid_result == NULL))),
10716 buffer_xml_append_printf
10718 "<owner><name>%s</name></owner>" 10723 "<creation_time>%s</creation_time>" 10724 "<modification_time>%s</modification_time>" 10725 "<writable>1</writable>" 10726 "<in_use>0</in_use>" 10727 "<active>%i</active>" 10728 "<end_time>%s</end_time>" 10730 "<hosts>%s</hosts>" 10732 "<severity>%s</severity>" 10733 "<threat>%s</threat>" 10734 "<task id=\"%s\"><name>%s</name><trash>%i</trash></task>" 10735 "<orphan>%i</orphan>",
10745 end_time > 1 ?
iso_time (&end_time) :
"",
10755 uuid_task ? uuid_task :
"",
10756 name_task ? name_task :
"",
10779 while (
next (&results))
10796 buffer_xml_append_printf (buffer,
10797 "<result id=\"%s\"/>",
10798 uuid_result ? uuid_result :
"");
10800 buffer_xml_append_printf (buffer,
10802 "<count>%i</count>",
10812 while (
next (&tags))
10814 buffer_xml_append_printf (buffer,
10817 "<value>%s</value>" 10818 "<comment>%s</comment>" 10828 buffer_xml_append_printf (buffer,
10833 free (uuid_result);
10847 buffer_overrides_xml (GString *buffer,
iterator_t *overrides,
10848 int include_overrides_details,
int include_result,
10851 while (
next (overrides))
10853 char *uuid_task, *uuid_result;
10868 uuid_result = NULL;
10870 buffer_xml_append_printf (buffer,
10871 "<override id=\"%s\">" 10884 buffer_xml_append_printf (buffer,
10885 "<permission><name>Everything</name></permission>" 10892 memset (&perms_get,
'\0',
sizeof (perms_get));
10893 perms_get.
filter = g_strdup_printf (
"resource_uuid=%s" 10898 g_free (perms_get.
filter);
10899 while (
next (&perms))
10900 buffer_xml_append_printf (buffer,
10901 "<permission><name>%s</name></permission>",
10905 buffer_xml_append_printf (buffer,
"</permissions>");
10908 if (include_overrides_details == 0)
10911 gchar *excerpt = utf8_substring (text, 0, 60);
10913 buffer_xml_append_printf (buffer,
10914 "<owner><name>%s</name></owner>" 10919 "<creation_time>%s</creation_time>" 10920 "<modification_time>%s</modification_time>" 10921 "<writable>1</writable>" 10922 "<in_use>0</in_use>" 10923 "<active>%i</active>" 10924 "<text excerpt=\"%i\">%s</text>" 10925 "<threat>%s</threat>" 10926 "<severity>%s</severity>" 10927 "<new_threat>%s</new_threat>" 10928 "<new_severity>%s</new_severity>" 10929 "<orphan>%i</orphan>" 10931 "<count>%i</count>" 10943 strlen (excerpt) < strlen (text),
10954 && (uuid_task == NULL))
10956 && (uuid_result == NULL))),
10984 buffer_xml_append_printf
10986 "<owner><name>%s</name></owner>" 10991 "<creation_time>%s</creation_time>" 10992 "<modification_time>%s</modification_time>" 10993 "<writable>1</writable>" 10994 "<in_use>0</in_use>" 10995 "<active>%i</active>" 10996 "<end_time>%s</end_time>" 10998 "<hosts>%s</hosts>" 11000 "<threat>%s</threat>" 11001 "<severity>%s</severity>" 11002 "<new_threat>%s</new_threat>" 11003 "<new_severity>%s</new_severity>" 11004 "<task id=\"%s\"><name>%s</name><trash>%i</trash></task>" 11005 "<orphan>%i</orphan>",
11015 end_time > 1 ?
iso_time (&end_time) :
"",
11027 uuid_task ? uuid_task :
"",
11028 name_task ? name_task :
"",
11044 &(result_get->
id));
11052 while (
next (&results))
11069 buffer_xml_append_printf (buffer,
11070 "<result id=\"%s\"/>",
11071 uuid_result ? uuid_result :
"");
11073 buffer_xml_append_printf (buffer,
11075 "<count>%i</count>",
11085 while (
next (&tags))
11087 buffer_xml_append_printf (buffer,
11090 "<value>%s</value>" 11091 "<comment>%s</comment>" 11101 buffer_xml_append_printf (buffer,
11106 free (uuid_result);
11121 config_t config,
int hide_passwords)
11123 char *real_name, *
type, *value, *nvt;
11124 const char *default_value;
11134 if (nvt) oid =
nvt_oid (nvt);
11136 buffer_xml_append_printf (buffer,
11138 "<nvt oid=\"%s\"><name>%s</name></nvt>" 11139 "<hr_name>%s</hr_name>" 11144 real_name ? real_name :
"",
11145 real_name ? real_name :
"",
11150 && (strcmp (
type,
"radio") == 0))
11153 char *pos = strchr (value,
';');
11154 if (pos) *pos =
'\0';
11155 buffer_xml_append_printf (buffer,
"<value>%s</value>", value);
11158 char *pos2 = strchr (++pos,
';');
11159 if (pos2) *pos2 =
'\0';
11160 buffer_xml_append_printf (buffer,
"<alt>%s</alt>", pos);
11167 && (strcmp (
type,
"password") == 0))
11168 buffer_xml_append_printf (buffer,
"<value></value>");
11170 buffer_xml_append_printf (buffer,
"<value>%s</value>", value ? value :
"");
11174 && (strcmp (
type,
"radio") == 0))
11177 char *pos = strchr (default_value,
';');
11178 if (pos) *pos =
'\0';
11179 buffer_xml_append_printf (buffer,
"<default>%s</default>", default_value);
11181 else if (default_value
11183 && (strcmp (
type,
"password") == 0))
11184 buffer_xml_append_printf (buffer,
"<default></default>");
11186 buffer_xml_append_printf (buffer,
"<default>%s</default>", default_value
11190 buffer_xml_append_printf (buffer,
"</preference>");
11210 gchar **cmd, *ret, *one_file, *two_file, *old_lc_all, *old_language;
11212 gchar *standard_out = NULL;
11213 gchar *standard_err = NULL;
11214 char dir[] =
"/tmp/openvasmd-strdiff-XXXXXX";
11215 GError *error = NULL;
11217 if (mkdtemp (dir) == NULL)
11220 one_file = g_build_filename (dir,
"Report 1", NULL);
11222 g_file_set_contents (one_file, one, strlen (one), &error);
11225 g_warning (
"%s", error->message);
11226 g_error_free (error);
11227 openvas_file_remove_recurse (dir);
11232 two_file = g_build_filename (dir,
"Report 2", NULL);
11234 g_file_set_contents (two_file, two, strlen (two), &error);
11237 g_warning (
"%s", error->message);
11238 g_error_free (error);
11239 openvas_file_remove_recurse (dir);
11245 old_lc_all = getenv (
"LC_ALL") ? g_strdup (getenv (
"LC_ALL")) : NULL;
11246 if (setenv (
"LC_ALL",
"C", 1) == -1)
11248 g_warning (
"%s: failed to set LC_ALL\n", __FUNCTION__);
11252 old_language = getenv (
"LANGUAGE") ? g_strdup (getenv (
"LANGUAGE")) : NULL;
11253 if (setenv (
"LANGUAGE",
"C", 1) == -1)
11255 g_warning (
"%s: failed to set LANGUAGE\n", __FUNCTION__);
11259 cmd = (gchar **) g_malloc (5 *
sizeof (gchar *));
11261 cmd[0] = g_strdup (
"diff");
11262 cmd[1] = g_strdup (
"-u");
11263 cmd[2] = g_strdup (
"Report 1");
11264 cmd[3] = g_strdup (
"Report 2");
11266 g_debug (
"%s: Spawning in %s: %s \"%s\" \"%s\"\n",
11268 cmd[0], cmd[1], cmd[2]);
11269 if ((g_spawn_sync (dir,
11272 G_SPAWN_SEARCH_PATH,
11279 || (WIFEXITED (exit_status) == 0)
11280 || WEXITSTATUS (exit_status))
11282 if (WEXITSTATUS (exit_status) == 1)
11283 ret = standard_out;
11286 g_debug (
"%s: failed to run diff: %d (WIF %i, WEX %i)",
11289 WIFEXITED (exit_status),
11290 WEXITSTATUS (exit_status));
11291 g_debug (
"%s: stdout: %s\n", __FUNCTION__, standard_out);
11292 g_debug (
"%s: stderr: %s\n", __FUNCTION__, standard_err);
11294 g_free (standard_out);
11298 ret = standard_out;
11300 if (old_lc_all && (setenv (
"LC_ALL", old_lc_all, 1) == -1))
11302 g_warning (
"%s: failed to reset LC_ALL\n", __FUNCTION__);
11305 else if (old_language && (setenv (
"LANGUAGE", old_language, 1) == -1))
11307 g_warning (
"%s: failed to reset LANGUAGE\n", __FUNCTION__);
11311 g_free (old_lc_all);
11312 g_free (old_language);
11318 g_free (standard_err);
11321 openvas_file_remove_recurse (dir);
11335 buffer_result_notes_xml (GString *buffer,
result_t result,
task_t task,
11336 int include_notes_details)
11338 g_string_append (buffer,
"<notes>");
11344 memset (&
get,
'\0',
sizeof (
get));
11346 get.filter =
"sort-reverse=created owner=any permission=any";
11352 buffer_notes_xml (buffer,
11354 include_notes_details,
11360 g_string_append (buffer,
"</notes>");
11372 buffer_result_overrides_xml (GString *buffer,
result_t result,
task_t task,
11373 int include_overrides_details)
11375 g_string_append (buffer,
"<overrides>");
11381 memset (&
get,
'\0',
sizeof (
get));
11383 get.filter =
"sort-reverse=created owner=any permission=any";
11389 buffer_overrides_xml (buffer,
11391 include_overrides_details,
11397 g_string_append (buffer,
"</overrides>");
11408 add_detail (GString *buffer,
const gchar *name,
const gchar *value)
11410 buffer_xml_append_printf (buffer,
11413 "<value>%s</value>" 11426 results_xml_append_cert (GString *buffer,
const char *oid)
11430 buffer_xml_append_printf (buffer,
"<cert>");
11434 while (
next (&cert_refs_iterator))
11436 g_string_append_printf
11437 (buffer,
"<cert_ref type=\"CERT-Bund\" id=\"%s\"/>",
11443 while (
next (&cert_refs_iterator))
11445 g_string_append_printf
11446 (buffer,
"<cert_ref type=\"DFN-CERT\" id=\"%s\"/>",
11452 g_string_append_printf (buffer,
11453 "<warning>database not available</warning>");
11454 buffer_xml_append_printf (buffer,
"</cert>");
11464 results_xml_append_nvt (
iterator_t *results, GString *buffer)
11471 if (g_str_has_prefix (oid,
"CVE-"))
11475 buffer_xml_append_printf (buffer,
11479 "<cvss_base>%s</cvss_base>" 11488 g_free (cvss_base);
11492 if (g_str_has_prefix (oid,
"oval:"))
11499 memset (&
get,
'\0',
sizeof (
get));
11500 get.id = g_strdup (oid);
11507 buffer_xml_append_printf (buffer,
11509 "<type>ovaldef</type>" 11512 "<cvss_base>%s</cvss_base>" 11515 "<tags>summary=%s</tags>" 11530 if (!cvss_base && !strcmp (oid,
"0"))
11533 buffer_xml_append_printf (buffer,
11537 "<family>%s</family>" 11538 "<cvss_base>%s</cvss_base>" 11553 results_xml_append_cert (buffer, oid);
11554 buffer_xml_append_printf (buffer,
"</nvt>");
11580 int include_notes,
int include_notes_details,
11581 int include_overrides,
int include_overrides_details,
11582 int include_tags,
int include_tags_details,
11583 int include_details,
11584 const char *delta_state,
iterator_t *delta_results,
11588 const char *name, *owner_name, *
comment, *creation_time, *modification_time;
11589 gchar *nl_descr, *asset_id;
11594 char *detect_ref, *detect_cpe, *detect_loc, *detect_oid, *detect_name;
11597 nl_descr = descr ? convert_to_newlines (descr) : NULL;
11601 buffer_xml_append_printf (buffer,
"<result id=\"%s\">", uuid);
11603 selected_task = task;
11607 buffer_xml_append_printf (buffer,
11613 buffer_xml_append_printf (buffer,
11614 "<owner><name>%s</name></owner>",
11619 buffer_xml_append_printf (buffer,
11620 "<comment>%s</comment>",
11625 buffer_xml_append_printf (buffer,
11626 "<creation_time>%s</creation_time>",
11630 if (modification_time)
11631 buffer_xml_append_printf (buffer,
11632 "<modification_time>%s</modification_time>",
11633 modification_time);
11635 if (include_details)
11637 char *result_report_id, *result_task_id, *result_task_name;
11642 task_uuid (selected_task, &result_task_id);
11646 buffer_xml_append_printf (buffer,
11647 "<report id=\"%s\"/>" 11648 "<task id=\"%s\"><name>%s</name></task>",
11653 free (result_report_id);
11654 free (result_task_id);
11655 free (result_task_name);
11660 buffer_xml_append_printf (buffer,
11662 "<count>%i</count>",
11665 if (include_tags_details)
11671 while (
next (&tags))
11673 buffer_xml_append_printf (buffer,
11676 "<value>%s</value>" 11677 "<comment>%s</comment>" 11688 buffer_xml_append_printf (buffer,
"</user_tags>");
11691 detect_ref = detect_cpe = detect_loc = detect_oid = detect_name = NULL;
11693 &detect_oid, &detect_name) == 0)
11695 buffer_xml_append_printf (buffer,
11697 "<result id=\"%s\">" 11701 add_detail (buffer,
"product", detect_cpe);
11702 add_detail (buffer,
"location", detect_loc);
11703 add_detail (buffer,
"source_oid", detect_oid);
11704 add_detail (buffer,
"source_name", detect_name);
11706 buffer_xml_append_printf (buffer,
11711 g_free (detect_ref);
11712 g_free (detect_cpe);
11713 g_free (detect_loc);
11714 g_free (detect_oid);
11715 g_free (detect_name);
11723 buffer_xml_append_printf (buffer,
11726 "<asset asset_id=\"%s\"/>" 11729 asset_id ? asset_id :
"");
11732 buffer_xml_append_printf (buffer,
11736 results_xml_append_nvt (results, buffer);
11738 buffer_xml_append_printf
11740 "<scan_nvt_version>%s</scan_nvt_version>" 11741 "<threat>%s</threat>" 11742 "<severity>%.1f</severity>" 11743 "<qod><value>%s</value><type>%s</type></qod>" 11744 "<description>%s</description>",
11749 qod_type ? qod_type :
"",
11750 descr ? nl_descr :
"");
11752 if (include_overrides)
11753 buffer_xml_append_printf (buffer,
11754 "<original_threat>%s</original_threat>" 11755 "<original_severity>%s</original_severity>",
11762 buffer_result_notes_xml (buffer, result,
11763 selected_task, include_notes_details);
11765 if (include_overrides)
11766 buffer_result_overrides_xml (buffer, result,
11767 selected_task, include_overrides_details);
11769 if (delta_state || delta_results)
11771 g_string_append (buffer,
"<delta>");
11773 g_string_append_printf (buffer,
"%s", delta_state);
11774 if (changed && delta_results)
11776 gchar *diff, *delta_nl_descr;
11777 const char *delta_descr;
11779 include_notes, include_notes_details,
11780 include_overrides, include_overrides_details,
11781 include_tags, include_tags_details,
11782 include_details, delta_state, NULL, 0);
11784 delta_nl_descr = delta_descr ? convert_to_newlines (delta_descr)
11786 diff =
strdiff (descr ? nl_descr :
"",
11787 delta_descr ? delta_nl_descr :
"");
11788 g_free (delta_nl_descr);
11791 gchar **split, *diff_xml;
11793 split = g_strsplit ((gchar*) diff,
"\n", 3);
11794 if (split[0] && split[1] && split[2])
11795 diff_xml = g_markup_escape_text (split[2], strlen (split[2]));
11797 diff_xml = g_markup_escape_text (diff, strlen (diff));
11798 g_strfreev (split);
11799 g_string_append_printf (buffer,
"<diff>%s</diff>", diff_xml);
11804 g_string_append (buffer,
"<diff>Error creating diff.</diff>");
11810 buffer_result_notes_xml (buffer,
11813 include_notes_details);
11815 if (include_overrides)
11816 buffer_result_overrides_xml (buffer,
11819 include_overrides_details);
11821 g_string_append (buffer,
"</delta>");
11824 if (descr) g_free (nl_descr);
11826 g_string_append (buffer,
"</result>");
11850 const gchar* subgroup_column,
11851 GList *data_column_list,
11852 GList *text_column_list,
11853 GList *sort_data_list,
11854 gchar **group_column_type,
11855 gchar **subgroup_column_type,
11856 GArray **data_column_types,
11857 GArray **data_columns,
11858 GArray **text_column_types,
11859 GArray **text_columns,
11860 GArray **sort_data,
11863 if (group_column == NULL)
11864 *group_column_type =
"";
11865 else if (strcmp (group_column,
"severity") == 0)
11866 *group_column_type =
"cvss";
11867 else if (strcmp (group_column,
"created") == 0
11868 || strcmp (group_column,
"modified") == 0)
11869 *group_column_type =
"unix_time";
11871 *group_column_type =
"text";
11873 if (subgroup_column == NULL)
11874 *subgroup_column_type =
"";
11875 else if (strcmp (subgroup_column,
"severity") == 0)
11876 *subgroup_column_type =
"cvss";
11877 else if (strcmp (subgroup_column,
"created") == 0
11878 || strcmp (subgroup_column,
"modified") == 0)
11879 *subgroup_column_type =
"unix_time";
11881 *subgroup_column_type =
"text";
11883 *data_columns = g_array_new (TRUE, TRUE,
sizeof (gchar*));
11884 *data_column_types = g_array_new (TRUE, TRUE,
sizeof (
char*));
11885 *text_columns = g_array_new (TRUE, TRUE,
sizeof (gchar*));
11886 *text_column_types = g_array_new (TRUE, TRUE,
sizeof (
char*));
11887 *c_sums = g_array_new (TRUE, TRUE,
sizeof (
double));
11888 *sort_data = g_array_new (TRUE, TRUE,
sizeof (
sort_data_t*));
11890 data_column_list = g_list_first (data_column_list);
11891 while (data_column_list)
11893 gchar *data_column = data_column_list->data;
11894 if (strcmp (data_column,
""))
11896 gchar *current_column = g_strdup (data_column);
11897 gchar *current_column_type;
11898 double c_sum = 0.0;
11899 g_array_append_val (*data_columns,
11902 if (strcmp (data_column,
"severity") == 0)
11903 current_column_type = g_strdup (
"cvss");
11904 else if (strcmp (data_column,
"created") == 0
11905 || strcmp (data_column,
"modified") == 0)
11906 current_column_type = g_strdup (
"unix_time");
11908 current_column_type = g_strdup (
"decimal");
11910 g_array_append_val (*data_column_types, current_column_type);
11912 g_array_append_val (*c_sums, c_sum);
11914 data_column_list = data_column_list->next;
11917 text_column_list = g_list_first (text_column_list);
11918 while (text_column_list)
11920 gchar *text_column = text_column_list->data;
11921 if (strcmp (text_column,
""))
11923 gchar *current_column = g_strdup (text_column);
11924 gchar *current_column_type;
11926 current_column_type = g_strdup (
"text");
11928 g_array_append_val (*text_columns, current_column);
11929 g_array_append_val (*text_column_types, current_column_type);
11931 text_column_list = text_column_list->next;
11934 sort_data_list = g_list_first (sort_data_list);
11935 while (sort_data_list)
11937 sort_data_t *sort_data_item = sort_data_list->data;
11940 sort_data_copy->
field = g_strdup (sort_data_item->
field);
11941 sort_data_copy->
stat = g_strdup (sort_data_item->
stat);
11942 sort_data_copy->
order = sort_data_item->
order;
11943 g_array_append_val (*sort_data, sort_data_copy);
11945 sort_data_list = sort_data_list->next;
11977 strcasecmp_reverse (gchar *s1, gchar *s2)
11979 return g_ascii_strcasecmp (s2, s1);
11992 compare_count_data (gconstpointer c1, gconstpointer c2, gpointer dummy)
12007 compare_count_data_reverse (gconstpointer c1, gconstpointer c2, gpointer dummy)
12022 copy_word_counts_asc (gpointer key, gpointer value, gpointer data)
12026 new_count->
string = (gchar*)key;
12027 new_count->
count = GPOINTER_TO_INT (value);
12029 g_sequence_insert_sorted ((GSequence*) data,
12031 compare_count_data_reverse,
12047 copy_word_counts_desc (gpointer key, gpointer value, gpointer data)
12051 new_count->
string = (gchar*)key;
12052 new_count->
count = GPOINTER_TO_INT (value);
12054 g_sequence_insert_sorted ((GSequence*) data,
12056 compare_count_data,
12072 buffer_word_counts_tree (gpointer key, gpointer value, gpointer data)
12075 if (count_data->
skip)
12077 count_data->
skip--;
12080 xml_string_append (count_data->
buffer,
12082 "<value>%s</value>" 12083 "<count>%d</count>" 12086 GPOINTER_TO_INT (value));
12087 if (count_data->
limit > 0)
12088 count_data->
limit--;
12090 return (count_data->
limit == 0);
12102 buffer_word_counts_seq (gpointer value, gpointer buffer)
12104 xml_string_append ((GString*) buffer,
12106 "<value>%s</value>" 12107 "<count>%d</count>" 12126 const gchar*
type,
const char* group_column,
12128 int first_group,
int max_groups)
12131 const char *sort_stat;
12134 if (sort_data && sort_data->len)
12136 first_sort_data = g_array_index (sort_data,
sort_data_t*, 0);
12137 sort_stat = first_sort_data->
stat;
12138 sort_order = first_sort_data->
order;
12142 sort_stat =
"value";
12146 GTree *word_counts, *ignore_words;
12147 GRegex *word_regex;
12150 word_regex = g_regex_new (
"[[:alpha:]]", 0, 0, NULL);
12152 ignore_words = g_tree_new_full ((GCompareDataFunc) g_ascii_strcasecmp, NULL,
12154 g_tree_insert (ignore_words, g_strdup (
"an"), GINT_TO_POINTER (1));
12155 g_tree_insert (ignore_words, g_strdup (
"the"), GINT_TO_POINTER (1));
12156 g_tree_insert (ignore_words, g_strdup (
"and"), GINT_TO_POINTER (1));
12157 g_tree_insert (ignore_words, g_strdup (
"or"), GINT_TO_POINTER (1));
12158 g_tree_insert (ignore_words, g_strdup (
"not"), GINT_TO_POINTER (1));
12159 g_tree_insert (ignore_words, g_strdup (
"is"), GINT_TO_POINTER (1));
12160 g_tree_insert (ignore_words, g_strdup (
"are"), GINT_TO_POINTER (1));
12161 g_tree_insert (ignore_words, g_strdup (
"was"), GINT_TO_POINTER (1));
12162 g_tree_insert (ignore_words, g_strdup (
"were"), GINT_TO_POINTER (1));
12163 g_tree_insert (ignore_words, g_strdup (
"you"), GINT_TO_POINTER (1));
12164 g_tree_insert (ignore_words, g_strdup (
"your"), GINT_TO_POINTER (1));
12165 g_tree_insert (ignore_words, g_strdup (
"it"), GINT_TO_POINTER (1));
12166 g_tree_insert (ignore_words, g_strdup (
"its"), GINT_TO_POINTER (1));
12167 g_tree_insert (ignore_words, g_strdup (
"they"), GINT_TO_POINTER (1));
12168 g_tree_insert (ignore_words, g_strdup (
"this"), GINT_TO_POINTER (1));
12169 g_tree_insert (ignore_words, g_strdup (
"that"), GINT_TO_POINTER (1));
12170 g_tree_insert (ignore_words, g_strdup (
"which"), GINT_TO_POINTER (1));
12171 g_tree_insert (ignore_words, g_strdup (
"when"), GINT_TO_POINTER (1));
12172 g_tree_insert (ignore_words, g_strdup (
"if"), GINT_TO_POINTER (1));
12173 g_tree_insert (ignore_words, g_strdup (
"do"), GINT_TO_POINTER (1));
12174 g_tree_insert (ignore_words, g_strdup (
"does"), GINT_TO_POINTER (1));
12175 g_tree_insert (ignore_words, g_strdup (
"did"), GINT_TO_POINTER (1));
12176 g_tree_insert (ignore_words, g_strdup (
"at"), GINT_TO_POINTER (1));
12177 g_tree_insert (ignore_words, g_strdup (
"where"), GINT_TO_POINTER (1));
12178 g_tree_insert (ignore_words, g_strdup (
"in"), GINT_TO_POINTER (1));
12179 g_tree_insert (ignore_words, g_strdup (
"will"), GINT_TO_POINTER (1));
12180 g_tree_insert (ignore_words, g_strdup (
"as"), GINT_TO_POINTER (1));
12181 g_tree_insert (ignore_words, g_strdup (
"has"), GINT_TO_POINTER (1));
12182 g_tree_insert (ignore_words, g_strdup (
"have"), GINT_TO_POINTER (1));
12183 g_tree_insert (ignore_words, g_strdup (
"can"), GINT_TO_POINTER (1));
12184 g_tree_insert (ignore_words, g_strdup (
"cannot"), GINT_TO_POINTER (1));
12185 g_tree_insert (ignore_words, g_strdup (
"been"), GINT_TO_POINTER (1));
12186 g_tree_insert (ignore_words, g_strdup (
"with"), GINT_TO_POINTER (1));
12187 g_tree_insert (ignore_words, g_strdup (
"under"), GINT_TO_POINTER (1));
12188 g_tree_insert (ignore_words, g_strdup (
"for"), GINT_TO_POINTER (1));
12189 g_tree_insert (ignore_words, g_strdup (
"than"), GINT_TO_POINTER (1));
12190 g_tree_insert (ignore_words, g_strdup (
"seen"), GINT_TO_POINTER (1));
12191 g_tree_insert (ignore_words, g_strdup (
"full"), GINT_TO_POINTER (1));
12192 g_tree_insert (ignore_words, g_strdup (
"use"), GINT_TO_POINTER (1));
12193 g_tree_insert (ignore_words, g_strdup (
"see"), GINT_TO_POINTER (1));
12194 g_tree_insert (ignore_words, g_strdup (
"more"), GINT_TO_POINTER (1));
12197 word_counts = g_tree_new_full ((GCompareDataFunc) g_ascii_strcasecmp, NULL,
12200 word_counts = g_tree_new_full ((GCompareDataFunc) strcasecmp_reverse, NULL,
12203 g_string_append_printf (xml,
"<aggregate>");
12205 g_string_append_printf (xml,
12206 "<group_column>%s</group_column>",
12209 while (
next (aggregate))
12214 int current_index = 0;
12215 gchar **split_string;
12220 split_string = g_strsplit_set (value,
" \t\n.,:;\"'()[]{}<>&", -1);
12221 while (split_string [current_index])
12223 gchar *word = split_string [current_index];
12224 if (strlen (word) >= 3
12225 && g_regex_match (word_regex, word, 0, NULL)
12226 && g_tree_lookup (ignore_words, word) == 0)
12229 = GPOINTER_TO_INT (g_tree_lookup (word_counts, word));
12232 g_tree_insert (word_counts, word,
12233 GINT_TO_POINTER (word_count + count));
12237 g_tree_insert (word_counts, g_strdup (word),
12238 GINT_TO_POINTER (count));
12245 if (sort_stat && strcasecmp (sort_stat,
"count") == 0)
12247 GSequence *word_counts_sorted;
12249 word_counts_sorted = g_sequence_new (g_free);
12250 g_tree_foreach (word_counts,
12252 ? copy_word_counts_asc
12253 : copy_word_counts_desc,
12254 word_counts_sorted);
12256 start = g_sequence_get_iter_at_pos (word_counts_sorted, first_group);
12257 if (max_groups < 0)
12258 end = g_sequence_get_end_iter (word_counts_sorted);
12260 end = g_sequence_get_iter_at_pos (word_counts_sorted,
12261 first_group + max_groups);
12263 g_sequence_foreach_range (
start,
end, buffer_word_counts_seq, xml);
12265 g_sequence_free (word_counts_sorted);
12271 counts_data.
buffer = xml;
12272 counts_data.
skip = first_group;
12273 counts_data.
limit = max_groups;
12274 g_tree_foreach (word_counts, buffer_word_counts_tree, &counts_data);
12277 g_tree_destroy (word_counts);
12278 g_tree_destroy (ignore_words);
12280 g_string_append (xml,
"<column_info>");
12282 g_string_append_printf (xml,
12283 "<aggregate_column>" 12284 "<name>value</name>" 12285 "<stat>value</stat>" 12287 "<column>%s</column>" 12288 "<data_type>text</data_type>" 12289 "</aggregate_column>",
12293 g_string_append_printf (xml,
12294 "<aggregate_column>" 12295 "<name>count</name>" 12296 "<stat>count</stat>" 12298 "<column></column>" 12299 "<data_type>integer</data_type>" 12300 "</aggregate_column>",
12303 g_string_append (xml,
"</column_info>");
12305 g_string_append_printf (xml,
"</aggregate>");
12316 buffer_aggregate_subgroup_value (gchar *key,
12320 xml_string_append (buffer,
"<value>%s</value>", key ? key :
"");
12342 const char* group_column,
const char* group_column_type,
12343 const char* subgroup_column,
12344 const char* subgroup_column_type,
12345 GArray *data_columns, GArray *data_column_types,
12346 GArray *text_columns, GArray *text_column_types,
12350 long c_count, previous_c_count;
12351 gchar *previous_group_value;
12352 long int aggregate_group_count;
12353 GArray *group_mins, *group_maxs, *group_mean_sums, *group_sums, *group_c_sums;
12354 GTree *subgroup_c_counts;
12355 int has_groups = 0;
12357 g_string_append_printf (xml,
"<aggregate>");
12359 for (index = 0; index < data_columns->len ;index ++)
12361 gchar *column_name = g_array_index (data_columns, gchar*, index);
12362 if (column_name && strcmp (column_name,
""))
12364 g_string_append_printf (xml,
12365 "<data_column>%s</data_column>",
12370 for (index = 0; index < text_columns->len ;index ++)
12372 gchar *column_name = g_array_index (text_columns, gchar*, index);
12373 if (column_name && strcmp (column_name,
""))
12375 g_string_append_printf (xml,
12376 "<text_column>%s</text_column>",
12382 g_string_append_printf (xml,
12383 "<group_column>%s</group_column>",
12386 if (subgroup_column)
12387 g_string_append_printf (xml,
12388 "<subgroup_column>%s</subgroup_column>",
12391 previous_group_value = NULL;
12392 aggregate_group_count = 0L;
12394 previous_c_count = 0L;
12396 if (subgroup_column)
12398 group_mins = g_array_new (TRUE, TRUE,
sizeof (
double));
12399 group_maxs = g_array_new (TRUE, TRUE,
sizeof (
double));
12400 group_mean_sums = g_array_new (TRUE, TRUE,
sizeof (
double));
12401 group_sums = g_array_new (TRUE, TRUE,
sizeof (
double));
12403 group_c_sums = g_array_new (TRUE, TRUE,
sizeof (GTree*));
12404 for (index = 0; index < data_columns->len; index++)
12406 g_array_index (group_c_sums, GTree*, index)
12407 = g_tree_new_full ((GCompareDataFunc) g_strcmp0, NULL,
12411 subgroup_c_counts = g_tree_new_full ((GCompareDataFunc) g_strcmp0, NULL,
12418 group_mean_sums = NULL;
12420 group_c_sums = NULL;
12421 subgroup_c_counts = NULL;
12424 while (
next (aggregate))
12427 const char *subgroup_value
12429 gchar *value_escaped, *subgroup_value_escaped;
12438 if (sscanf (value,
"%ld", &value_int) == 1)
12439 value_escaped = g_strdup (
iso_time (&value_int));
12441 value_escaped = g_markup_escape_text (value, -1);
12443 else if (value && group_column_type
12444 && strcmp (group_column_type,
"cvss") == 0)
12447 sscanf (value,
"%lf", &dbl_value);
12448 value_escaped = g_strdup_printf (
"%0.1lf", dbl_value);
12450 else if (group_column && value)
12451 value_escaped = g_markup_escape_text (value, -1);
12453 value_escaped = NULL;
12458 if (sscanf (subgroup_value,
"%ld", &value_int) == 1)
12459 subgroup_value_escaped = g_strdup (
iso_time (&value_int));
12461 subgroup_value_escaped = g_markup_escape_text (subgroup_value, -1);
12463 else if (subgroup_value && subgroup_column_type
12464 && strcmp (subgroup_column_type,
"cvss") == 0)
12467 sscanf (subgroup_value,
"%lf", &dbl_value);
12468 subgroup_value_escaped = g_strdup_printf (
"%0.1lf", dbl_value);
12470 else if (subgroup_column && subgroup_value)
12471 subgroup_value_escaped = g_markup_escape_text (subgroup_value, -1);
12473 subgroup_value_escaped = NULL;
12477 if (subgroup_column)
12479 long int *subgroup_c_count;
12483 = g_tree_lookup (subgroup_c_counts, subgroup_value);
12484 if (subgroup_c_count == NULL)
12486 subgroup_c_count = g_malloc0 (
sizeof (
long int*));
12487 g_tree_insert (subgroup_c_counts,
12488 g_strdup (subgroup_value),
12494 if (previous_group_value == NULL)
12497 g_string_append_printf (xml,
12499 "<value>%s</value>",
12502 else if (strcmp (previous_group_value, value))
12506 g_string_append_printf (xml,
12507 "<count>%ld</count>" 12508 "<c_count>%ld</c_count>",
12509 aggregate_group_count,
12512 for (index = 0; index < data_columns->len; index++)
12514 gchar *data_column = g_array_index (data_columns,
12516 double c_sum = g_array_index (c_sums,
double, index);
12520 time_t min, max, mean;
12521 min = (time_t)(g_array_index (group_mins,
12523 max = (time_t)(g_array_index (group_maxs,
12525 mean = (time_t)(g_array_index (group_mean_sums,
12527 / aggregate_group_count);
12529 g_string_append_printf (xml,
12530 "<stats column=\"%s\">" 12543 g_string_append_printf (xml,
12544 "<stats column=\"%s\">" 12549 "<c_sum>%g</c_sum>" 12552 g_array_index (group_mins,
12554 g_array_index (group_maxs,
12556 (g_array_index (group_mean_sums,
12558 / aggregate_group_count),
12559 g_array_index (group_sums,
12564 g_string_append_printf (xml,
12568 g_string_append_printf (xml,
12570 "<value>%s</value>",
12575 if (previous_group_value == NULL
12576 || strcmp (previous_group_value, value))
12582 for (index = 0; index < data_columns->len; index++)
12584 g_array_index (group_mins,
double, index)
12586 g_array_index (group_maxs,
double, index)
12588 g_array_index (group_mean_sums,
double, index)
12591 g_array_index (group_sums,
double, index)
12600 for (index = 0; index < data_columns->len; index++)
12602 g_array_index (group_mins,
double, index)
12604 g_array_index (group_mins,
double, index));
12605 g_array_index (group_maxs,
double, index)
12607 g_array_index (group_maxs,
double, index));
12608 g_array_index (group_mean_sums,
double, index)
12611 g_array_index (group_sums,
double, index)
12616 g_free (previous_group_value);
12617 previous_group_value = g_strdup (value);
12620 g_string_append_printf (xml,
12622 "<value>%s</value>" 12623 "<count>%d</count>" 12624 "<c_count>%ld</c_count>",
12625 subgroup_value_escaped
12626 ? subgroup_value_escaped :
"",
12628 *subgroup_c_count);
12633 g_string_append_printf (xml,
12635 "<value>%s</value>" 12636 "<count>%d</count>" 12637 "<c_count>%ld</c_count>",
12638 value_escaped ? value_escaped :
"",
12643 previous_c_count = c_count;
12647 g_string_append_printf (xml,
12649 "<count>%d</count>" 12650 "<c_count>%ld</c_count>",
12655 for (index = 0; index < data_columns->len; index++)
12657 gchar *data_column = g_array_index (data_columns, gchar*, index);;
12659 double *subgroup_c_sum = NULL;
12664 const gchar *subgroup_value;
12668 c_sum_tree = g_array_index (group_c_sums, GTree*, index);
12669 subgroup_c_sum = g_tree_lookup (c_sum_tree, subgroup_value);
12671 if (subgroup_c_sum == NULL)
12673 subgroup_c_sum = g_malloc (
sizeof (
double *));
12674 *subgroup_c_sum = 0;
12676 g_tree_insert (c_sum_tree,
12677 g_strdup (subgroup_value),
12684 c_sum = g_array_index (c_sums,
double, index);
12686 g_array_index (c_sums,
double, index) = c_sum;
12690 time_t min, max, mean;
12695 g_string_append_printf (xml,
12696 "<stats column=\"%s\">" 12709 g_string_append_printf (xml,
12710 "<stats column=\"%s\">" 12715 "<c_sum>%g</c_sum>" 12723 ? *subgroup_c_sum : c_sum);
12726 for (index = 0; index < text_columns->len; index++)
12729 data_columns->len);
12730 gchar *text_escaped;
12731 gchar *text_column = g_array_index (text_columns, gchar*, index);
12736 if (sscanf (text,
"%ld", &text_int) == 1)
12737 text_escaped = g_strdup (
iso_time (&text_int));
12739 text_escaped = g_markup_escape_text (text, -1);
12742 text_escaped = g_markup_escape_text (text, -1);
12744 text_escaped = NULL;
12746 g_string_append_printf (xml,
12747 "<text column=\"%s\">%s</text>",
12749 text_escaped ? text_escaped :
"");
12750 g_free (text_escaped);
12753 if (subgroup_column)
12755 g_string_append_printf (xml,
"</subgroup>");
12757 else if (group_column)
12759 g_string_append_printf (xml,
"</group>");
12763 g_string_append_printf (xml,
"</overall>");
12765 g_free (value_escaped);
12766 g_free (subgroup_value_escaped);
12769 if (subgroup_column)
12774 g_string_append_printf (xml,
12775 "<count>%ld</count>" 12776 "<c_count>%ld</c_count>" 12778 aggregate_group_count,
12783 g_string_append_printf (xml,
12786 g_tree_foreach (subgroup_c_counts,
12787 (GTraverseFunc) buffer_aggregate_subgroup_value,
12790 g_string_append_printf (xml,
12794 g_string_append (xml,
"<column_info>");
12798 g_string_append_printf (xml,
12799 "<aggregate_column>" 12800 "<name>value</name>" 12801 "<stat>value</stat>" 12803 "<column>%s</column>" 12804 "<data_type>%s</data_type>" 12805 "</aggregate_column>",
12808 group_column_type);
12811 if (subgroup_column)
12813 g_string_append_printf (xml,
12814 "<aggregate_column>" 12815 "<name>subgroup_value</name>" 12816 "<stat>value</stat>" 12818 "<column>%s</column>" 12819 "<data_type>%s</data_type>" 12820 "</aggregate_column>",
12823 subgroup_column_type);
12826 g_string_append_printf (xml,
12827 "<aggregate_column>" 12828 "<name>count</name>" 12829 "<stat>count</stat>" 12831 "<column></column>" 12832 "<data_type>integer</data_type>" 12833 "</aggregate_column>",
12836 g_string_append_printf (xml,
12837 "<aggregate_column>" 12838 "<name>c_count</name>" 12839 "<stat>c_count</stat>" 12841 "<column></column>" 12842 "<data_type>integer</data_type>" 12843 "</aggregate_column>",
12846 for (index = 0; index < data_columns->len; index++)
12848 gchar *column_name, *column_type;
12849 column_name = g_array_index (data_columns, gchar*, index);
12850 column_type = g_array_index (data_column_types, gchar*, index);
12851 g_string_append_printf (xml,
12852 "<aggregate_column>" 12853 "<name>%s_min</name>" 12856 "<column>%s</column>" 12857 "<data_type>%s</data_type>" 12858 "</aggregate_column>",
12863 g_string_append_printf (xml,
12864 "<aggregate_column>" 12865 "<name>%s_max</name>" 12868 "<column>%s</column>" 12869 "<data_type>%s</data_type>" 12870 "</aggregate_column>",
12875 g_string_append_printf (xml,
12876 "<aggregate_column>" 12877 "<name>%s_mean</name>" 12878 "<stat>mean</stat>" 12880 "<column>%s</column>" 12881 "<data_type>%s</data_type>" 12882 "</aggregate_column>",
12887 g_string_append_printf (xml,
12888 "<aggregate_column>" 12889 "<name>%s_sum</name>" 12892 "<column>%s</column>" 12893 "<data_type>%s</data_type>" 12894 "</aggregate_column>",
12899 g_string_append_printf (xml,
12900 "<aggregate_column>" 12901 "<name>%s_c_sum</name>" 12902 "<stat>c_sum</stat>" 12904 "<column>%s</column>" 12905 "<data_type>%s</data_type>" 12906 "</aggregate_column>",
12913 for (index = 0; index < text_columns->len; index++)
12915 gchar *column_name, *column_type;
12916 column_name = g_array_index (text_columns, gchar*, index);
12917 column_type = g_array_index (text_column_types, gchar*, index);
12918 g_string_append_printf (xml,
12919 "<aggregate_column>" 12921 "<stat>text</stat>" 12923 "<column>%s</column>" 12924 "<data_type>%s</data_type>" 12925 "</aggregate_column>",
12932 g_string_append (xml,
"</column_info>");
12934 g_string_append (xml,
"</aggregate>");
12936 if (subgroup_column)
12938 g_array_free (group_mins, TRUE);
12939 g_array_free (group_maxs, TRUE);
12940 g_array_free (group_mean_sums, TRUE);
12941 g_array_free (group_sums, TRUE);
12943 for (index = 0; index < data_columns->len; index++)
12945 g_tree_destroy (g_array_index (group_c_sums, GTree*, index));
12948 g_array_free (group_c_sums, TRUE);
12950 g_tree_destroy(subgroup_c_counts);
12962 convert_to_manage_ranges (array_t *ranges)
12967 array_t *manage_ranges;
12969 manage_ranges = make_array ();
12971 index = ranges->len;
12979 range_t *manage_range;
12981 manage_range = g_malloc0 (
sizeof (range_t));
12982 manage_range->comment = range->
comment;
12983 manage_range->end = atoi (range->
end);
12984 manage_range->id = range->
id;
12985 manage_range->start = atoi (range->
start);
12986 if (strcasecmp (range->
type,
"TCP") == 0)
12987 manage_range->type = PORT_PROTOCOL_TCP;
12988 else if (strcasecmp (range->
type,
"UDP") == 0)
12989 manage_range->type = PORT_PROTOCOL_UDP;
12991 manage_range->type = PORT_PROTOCOL_OTHER;
12992 manage_range->exclude = 0;
12994 array_add (manage_ranges, manage_range);
12997 return manage_ranges;
13008 #define CLOSE(parent, element) \ 13009 case parent ## _ ## element: \ 13010 assert (strcasecmp (G_STRINGIFY (element), element_name) == 0); \ 13011 set_client_state (parent); \ 13022 #define CLOSE_READ_OVER(parent, element) \ 13023 case parent ## _ ## element: \ 13024 assert (strcasecmp (G_STRINGIFY (element), element_name) == 0); \ 13025 omp_parser->read_over = 0; \ 13026 set_client_state (parent); \ 13048 if (
next (resources) == FALSE)
13052 if (get->filt_id && strcmp (get->filt_id,
"0"))
13060 if (*first == 1 || *count > 0)
13066 new_filter = g_strdup_printf (
"first=1 %s", get->filter);
13067 g_free (get->filter);
13068 get->filter = new_filter;
13069 if (init (resources,
get))
13073 if (
next (resources) == FALSE)
13087 #define CASE_DELETE(upper, type, capital) \ 13088 case CLIENT_DELETE_ ## upper : \ 13089 assert (strcasecmp ("DELETE_" G_STRINGIFY (upper), element_name) == 0); \ 13090 if (delete_ ## type ## _data-> type ## _id) \ 13091 switch (delete_ ## type (delete_ ## type ## _data-> type ## _id, \ 13092 delete_ ## type ## _data->ultimate)) \ 13095 SEND_TO_CLIENT_OR_FAIL (XML_OK ("delete_" G_STRINGIFY (type))); \ 13096 log_event (G_STRINGIFY(type), capital, \ 13097 delete_ ## type ## _data-> type ## _id, "deleted"); \ 13100 SEND_TO_CLIENT_OR_FAIL \ 13101 (XML_ERROR_SYNTAX ("delete_" G_STRINGIFY (type), \ 13102 capital " is in use")); \ 13103 log_event_fail (G_STRINGIFY(type), capital, \ 13104 delete_ ## type ## _data-> type ## _id, \ 13108 if (send_find_error_to_client \ 13109 ("delete_" G_STRINGIFY (type), \ 13110 G_STRINGIFY (type), \ 13111 delete_ ## type ## _data-> type ## _id, \ 13114 error_send_to_client (error); \ 13117 log_event_fail (G_STRINGIFY(type), capital, \ 13118 delete_ ## type ## _data-> type ## _id, \ 13122 SEND_TO_CLIENT_OR_FAIL \ 13123 (XML_ERROR_SYNTAX ("delete_" G_STRINGIFY (type), \ 13124 "Attempt to delete a predefined" \ 13125 " " G_STRINGIFY (type))); \ 13128 SEND_TO_CLIENT_OR_FAIL \ 13129 (XML_ERROR_SYNTAX ("delete_" G_STRINGIFY (type), \ 13130 "Permission denied")); \ 13131 log_event_fail (G_STRINGIFY(type), capital, \ 13132 delete_ ## type ## _data-> type ## _id, \ 13136 SEND_TO_CLIENT_OR_FAIL \ 13137 (XML_INTERNAL_ERROR ("delete_" G_STRINGIFY (type))); \ 13138 log_event_fail (G_STRINGIFY(type), capital, \ 13139 delete_ ## type ## _data-> type ## _id, \ 13143 SEND_TO_CLIENT_OR_FAIL \ 13144 (XML_ERROR_SYNTAX ("delete_" G_STRINGIFY (type), \ 13145 "DELETE_" G_STRINGIFY (upper) " requires a " \ 13146 G_STRINGIFY (type) "_id attribute")); \ 13147 delete_ ## type ## _data_reset (delete_ ## type ## _data); \ 13148 set_client_state (CLIENT_AUTHENTIC); \ 13157 #define INIT_GET(type, capital) \ 13159 ret = init_get ("get_" G_STRINGIFY (type) "s", \ 13160 &get_ ## type ## s_data->get, \ 13161 G_STRINGIFY (capital) "s", \ 13168 SEND_TO_CLIENT_OR_FAIL \ 13169 (XML_ERROR_SYNTAX ("get_" G_STRINGIFY (type) "s", \ 13170 "Permission denied")); \ 13173 internal_error_send_to_client (error); \ 13176 get_ ## type ## s_data_reset (get_ ## type ## s_data); \ 13177 set_client_state (CLIENT_AUTHENTIC); \ 13191 char *result = NULL;
13201 tmp = g_strconcat (fname, result ?
"|" :
"", result, NULL);
13216 handle_get_agents (
omp_parser_t *omp_parser, GError **error)
13242 SEND_TO_CLIENT_OR_FAIL
13244 "GET_AGENTS format attribute should" 13245 " be 'installer', 'howto_install' or 'howto_use'."));
13249 int ret, count, filtered, first;
13260 if (send_find_error_to_client (
"get_agents",
13265 error_send_to_client (error);
13270 if (send_find_error_to_client (
"get_agents",
"filter",
13274 error_send_to_client (error);
13279 SEND_TO_CLIENT_OR_FAIL
13288 SEND_GET_START (
"agent");
13297 internal_error_send_to_client (error);
13310 SENDF_TO_CLIENT_OR_FAIL
13311 (
"<package format=\"installer\">" 13312 "<filename>%s</filename>" 13316 "<trust>%s<time>%s</time></trust>" 13326 SENDF_TO_CLIENT_OR_FAIL
13327 (
"<package format=\"howto_install\">%s</package>" 13332 SENDF_TO_CLIENT_OR_FAIL
13333 (
"<package format=\"howto_use\">%s</package>" 13343 SENDF_TO_CLIENT_OR_FAIL
13345 "<trust>%s<time>%s</time></trust>" 13372 handle_get_aggregates (
omp_parser_t *omp_parser, GError **error)
13377 GArray *data_columns, *data_column_types;
13378 GArray *text_columns, *text_column_types;
13381 const char *group_column, *subgroup_column;
13382 char *group_column_type, *subgroup_column_type;
13385 gchar *sort_field, *filter;
13386 int first, sort_order;
13387 GString *type_many;
13392 SEND_TO_CLIENT_OR_FAIL
13394 "GET_AGGREGATES requires a 'type' attribute"));
13409 SEND_TO_CLIENT_OR_FAIL
13411 "Permission denied"));
13414 internal_error_send_to_client (error);
13430 &group_column_type, &subgroup_column_type,
13431 &data_column_types, &data_columns,
13432 &text_column_types, &text_columns,
13442 group_column, subgroup_column,
13455 group_column, subgroup_column,
13469 SEND_TO_CLIENT_OR_FAIL
13471 "Failed to find resource"));
13474 SEND_TO_CLIENT_OR_FAIL
13476 "Failed to find filter"));
13479 SEND_TO_CLIENT_OR_FAIL
13481 "Invalid data_column"));
13484 SEND_TO_CLIENT_OR_FAIL
13486 "Invalid group_column"));
13489 SEND_TO_CLIENT_OR_FAIL
13491 "Invalid resource type"));
13494 SEND_TO_CLIENT_OR_FAIL
13496 "Trashcan not used by resource type"));
13499 SEND_TO_CLIENT_OR_FAIL
13501 "Invalid text_column"));
13504 SEND_TO_CLIENT_OR_FAIL
13506 "Invalid subgroup_column"));
13509 SEND_TO_CLIENT_OR_FAIL
13511 "Permission denied"));
13517 SEND_TO_CLIENT_OR_FAIL
13524 g_array_free (data_columns, TRUE);
13525 g_array_free (data_column_types, TRUE);
13526 for (index = 0; index < sort_data->len; index++)
13528 g_array_free (sort_data, TRUE);
13529 g_array_free (c_sums, TRUE);
13533 xml = g_string_new (
"<get_aggregates_response" 13548 group_column, group_column_type,
13549 subgroup_column, subgroup_column_type,
13550 data_columns, data_column_types,
13551 text_columns, text_column_types,
13555 if (get->filt_id && strcmp (get->filt_id,
"0"))
13557 if (get->filter_replacement)
13558 filter = g_strdup (get->filter_replacement);
13561 if (filter == NULL)
13562 SEND_TO_CLIENT_OR_FAIL
13564 "Failed to find filter"));
13570 &first, NULL, &sort_field, &sort_order);
13572 if (filter || get->filter)
13577 if ((strcmp (
type,
"task") == 0)
13581 filter = new_filter;
13582 new_filter = g_strdup_printf (
"apply_overrides=%i %s",
13587 filter = new_filter;
13592 type_many = g_string_new (
type);
13594 if (strcmp (
type,
"info") != 0)
13595 g_string_append (type_many,
"s");
13599 g_string_append (xml,
"</get_aggregates_response>");
13601 for (index = 0; index < data_columns->len; index++)
13602 g_free (g_array_index (data_columns, gchar*, index));
13603 g_array_free (data_columns, TRUE);
13604 for (index = 0; index < data_column_types->len; index++)
13605 g_free (g_array_index (data_column_types, gchar*, index));
13606 g_array_free (data_column_types, TRUE);
13607 for (index = 0; index < sort_data->len; index++)
13609 g_array_free (sort_data, TRUE);
13610 g_array_free (c_sums, TRUE);
13612 SEND_TO_CLIENT_OR_FAIL (xml->str);
13615 g_string_free (xml, TRUE);
13627 handle_get_alerts (
omp_parser_t *omp_parser, GError **error)
13630 int count, filtered, ret, first;
13640 if (send_find_error_to_client (
"get_alerts",
"alert",
13644 error_send_to_client (error);
13649 if (send_find_error_to_client
13653 error_send_to_client (error);
13658 SEND_TO_CLIENT_OR_FAIL
13667 SEND_GET_START (
"alert");
13672 int notice, message, has_secinfo_type;
13673 const char *method;
13681 internal_error_send_to_client (error);
13692 SENDF_TO_CLIENT_OR_FAIL (
"<filter id=\"%s\">" 13694 "<trash>%i</trash>",
13699 SEND_TO_CLIENT_OR_FAIL (
"</filter>");
13701 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 13707 SENDF_TO_CLIENT_OR_FAIL (
"<condition>%s",
13713 while (
next (&data))
13714 SENDF_TO_CLIENT_OR_FAIL (
"<data>" 13722 SEND_TO_CLIENT_OR_FAIL (
"</condition>");
13726 SENDF_TO_CLIENT_OR_FAIL (
"<event>%s",
13730 has_secinfo_type = 0;
13731 while (
next (&data))
13735 has_secinfo_type = 1;
13736 SENDF_TO_CLIENT_OR_FAIL (
"<data>" 13745 && (has_secinfo_type == 0))
13746 SENDF_TO_CLIENT_OR_FAIL (
"<data>" 13747 "<name>secinfo_type</name>" 13751 SEND_TO_CLIENT_OR_FAIL (
"</event>");
13756 SENDF_TO_CLIENT_OR_FAIL (
"<method>%s", method);
13761 while (
next (&data))
13765 if (strcmp (name,
"notice") == 0)
13767 else if (strcmp (method,
"Email") == 0
13768 && strcmp (name,
"message") == 0)
13775 if (strcmp (name,
"scp_credential") == 0
13776 || strcmp (name,
"verinice_server_credential") == 0)
13779 const char *credential_id;
13784 "get_credentials"))
13788 else if (credential == 0)
13790 SENDF_TO_CLIENT_OR_FAIL (
"<data>" 13799 gchar *cred_name, *username;
13803 SENDF_TO_CLIENT_OR_FAIL (
"<data>" 13805 "<credential id=\"%s\">" 13807 "<login>%s</login>" 13817 g_free (cred_name);
13823 SENDF_TO_CLIENT_OR_FAIL (
"<data>" 13832 if (strcmp (method,
"Email") == 0
13834 && (notice == 0 || notice == 2))
13835 SENDF_TO_CLIENT_OR_FAIL (
"<data>" 13836 "<name>message</name>" 13843 SEND_TO_CLIENT_OR_FAIL (
"</method>");
13849 SEND_TO_CLIENT_OR_FAIL (
"<tasks>");
13852 while (
next (&tasks))
13854 SENDF_TO_CLIENT_OR_FAIL (
"<task id=\"%s\">" 13860 SEND_TO_CLIENT_OR_FAIL (
"</task>");
13862 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 13866 SEND_TO_CLIENT_OR_FAIL (
"</tasks>");
13869 SEND_TO_CLIENT_OR_FAIL (
"</alert>");
13889 handle_get_assets (
omp_parser_t *omp_parser, GError **error)
13892 int count, first, filtered, ret;
13898 SEND_TO_CLIENT_OR_FAIL
13900 "Permission denied"));
13908 SEND_TO_CLIENT_OR_FAIL
13910 "No type specified."));
13933 if (send_find_error_to_client (
"get_assets",
"type",
13936 error_send_to_client (error);
13949 if (send_find_error_to_client (
"get_assets",
"type",
13953 error_send_to_client (error);
13958 if (send_find_error_to_client
13962 error_send_to_client (error);
13967 SEND_TO_CLIENT_OR_FAIL
13978 SEND_GET_START (
"asset");
13979 while (
next (&assets))
13994 error_send_to_client (error);
13998 result = g_string_new (
"");
14004 xml_string_append (result,
"<identifiers>");
14008 while (
next (&identifiers))
14010 const char *source_type;
14015 if (strcmp (source_type,
"User") == 0)
14021 xml_string_append (result,
14022 "<identifier id=\"%s\">" 14024 "<value>%s</value>" 14025 "<creation_time>%s</creation_time>" 14026 "<modification_time>%s</modification_time>" 14027 "<source id=\"%s\">" 14030 "<deleted>%i</deleted>" 14050 xml_string_append (result,
14052 "<title>%s</title>" 14059 xml_string_append (result,
"</identifier>");
14062 xml_string_append (result,
"</identifiers>");
14065 g_string_append_printf (result,
"<type>%s</type>",
14072 const char *latest, *highest, *average;
14077 g_string_append_printf (result,
14078 "<latest_severity>" 14079 "<value>%s</value>" 14080 "</latest_severity>" 14081 "<highest_severity>" 14082 "<value>%s</value>" 14083 "</highest_severity>" 14084 "<average_severity>" 14085 "<value>%s</value>" 14086 "</average_severity>",
14087 latest ? latest :
"",
14088 highest ? highest :
"",
14089 average ? average :
"");
14091 g_string_append_printf (result,
14092 "<title>%s</title>" 14093 "<installs>%i</installs>" 14101 while (
next (&os_hosts))
14103 const char *severity;
14105 g_string_append_printf (result,
14106 "<asset id=\"%s\">" 14109 "<value>%s</value>" 14114 severity ? severity :
"");
14117 g_string_append_printf (result,
"</hosts>");
14121 const char *severity;
14125 g_string_append_printf (result,
14127 "<value>%s</value>" 14129 severity ? severity :
"");
14133 while (
next (&details))
14134 g_string_append_printf (result,
14137 "<value>%s</value>" 14138 "<source id=\"%s\">" 14155 g_string_append (result, routes_xml);
14156 g_free (routes_xml);
14160 g_string_append_printf (result,
14164 SEND_TO_CLIENT_OR_FAIL (result->str);
14166 g_string_free (result, TRUE);
14171 SEND_TO_CLIENT_OR_FAIL (
"<details>1</details>");
14190 handle_get_configs (
omp_parser_t *omp_parser, GError **error)
14193 int ret, filtered, first, count;
14202 if (send_find_error_to_client
14206 error_send_to_client (error);
14211 if (send_find_error_to_client
14215 error_send_to_client (error);
14228 SEND_GET_START (
"config");
14232 const char *selector;
14241 internal_error_send_to_client (error);
14254 SENDF_TO_CLIENT_OR_FAIL (
"<family_count>" 14255 "%i<growing>%i</growing>" 14260 "%i<growing>%i</growing>" 14273 int max_nvt_count = 0, known_nvt_count = 0;
14275 SENDF_TO_CLIENT_OR_FAIL (
"<families>");
14278 while (
next (&families))
14280 int family_growing, family_max;
14281 int family_selected_count;
14282 const char *family;
14290 family_selected_count
14292 known_nvt_count += family_selected_count;
14299 family_growing = 0;
14302 (selector, NULL, 0);
14305 SENDF_TO_CLIENT_OR_FAIL
14309 "<nvt_count>%i</nvt_count>" 14311 "<max_nvt_count>%i</max_nvt_count>" 14312 "<growing>%i</growing>" 14314 family ? family :
"",
14315 family_selected_count,
14318 if (family_max > 0)
14319 max_nvt_count += family_max;
14322 SENDF_TO_CLIENT_OR_FAIL
14327 "<max_nvt_count>%i</max_nvt_count>" 14329 "<known_nvt_count>" 14331 "</known_nvt_count>",
14341 char *s_uuid, *s_name;
14348 SENDF_TO_CLIENT_OR_FAIL (
"<scanner id='%s'>%s</scanner>",
14352 SEND_TO_CLIENT_OR_FAIL (
"<preferences>");
14355 while (
next (&prefs))
14357 const char *name, *hr_name, *value, *
type, *def;
14358 char *ovaldi_files = NULL;
14364 if (!strcmp (name,
"definitions_file"))
14367 SENDF_TO_CLIENT_OR_FAIL
14369 "<nvt oid=\"\"><name/></nvt>" 14370 "<hr_name>%s</hr_name>" 14372 "<type>osp_%s</type>" 14373 "<value>%s</value>" 14374 "<default>%s</default>" 14376 hr_name, name,
type, value ?:
"", ovaldi_files ?: def);
14377 g_free (ovaldi_files);
14380 SEND_TO_CLIENT_OR_FAIL (
"</preferences>");
14390 SEND_TO_CLIENT_OR_FAIL (
"<preferences>");
14395 while (
next (&prefs))
14397 const char *timeout;
14401 if (timeout && strlen (timeout))
14402 SENDF_TO_CLIENT_OR_FAIL
14407 "<name>Timeout</name>" 14408 "<type>entry</type>" 14409 "<value>%s</value>" 14418 while (
next (&prefs))
14420 GString *buffer = g_string_new (
"");
14422 SEND_TO_CLIENT_OR_FAIL (buffer->str);
14423 g_string_free (buffer, TRUE);
14427 SEND_TO_CLIENT_OR_FAIL (
"</preferences>");
14434 SEND_TO_CLIENT_OR_FAIL (
"<nvt_selectors>");
14438 while (
next (&selectors))
14441 SENDF_TO_CLIENT_OR_FAIL
14444 "<include>%i</include>" 14446 "<family_or_nvt>%s</family_or_nvt>" 14456 SEND_TO_CLIENT_OR_FAIL (
"</nvt_selectors>");
14463 SEND_TO_CLIENT_OR_FAIL (
"<tasks>");
14466 while (
next (&tasks))
14472 SENDF_TO_CLIENT_OR_FAIL
14473 (
"<task id=\"%s\">" 14478 SEND_TO_CLIENT_OR_FAIL (
"</task>");
14480 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 14484 SEND_TO_CLIENT_OR_FAIL (
"</tasks>");
14487 SEND_TO_CLIENT_OR_FAIL (
"</config>");
14506 handle_get_credentials (
omp_parser_t *omp_parser, GError **error)
14509 int count, filtered, ret, first;
14516 if (strlen (data_format))
14518 if (strcasecmp (data_format,
"key") == 0)
14520 else if (strcasecmp (data_format,
"rpm") == 0)
14522 else if (strcasecmp (data_format,
"deb") == 0)
14524 else if (strcasecmp (data_format,
"exe") == 0)
14526 else if (strcasecmp (data_format,
"pem") == 0)
14538 SEND_TO_CLIENT_OR_FAIL
14540 "GET_CREDENTIALS format attribute should" 14541 " be 'key', 'rpm', 'deb', 'exe' or 'pem'."));
14543 INIT_GET (credential, Credential);
14552 if (send_find_error_to_client (
"get_credentials",
14557 error_send_to_client (error);
14562 if (send_find_error_to_client (
"get_credentials",
14567 error_send_to_client (error);
14572 SEND_TO_CLIENT_OR_FAIL
14581 SEND_GET_START(
"credential");
14584 const char *private_key, *login, *
type, *cert;
14592 internal_error_send_to_client (error);
14602 SENDF_TO_CLIENT_OR_FAIL
14603 (
"<allow_insecure>%d</allow_insecure>" 14604 "<login>%s</login>" 14606 "<full_type>%s</full_type>",
14608 login ? login :
"",
14612 if (
type && (strcmp (
type,
"snmp") == 0))
14614 const char *auth_algorithm, *privacy_algorithm;
14620 SENDF_TO_CLIENT_OR_FAIL
14621 (
"<auth_algorithm>%s</auth_algorithm>" 14622 "<privacy><algorithm>%s</algorithm></privacy>",
14623 auth_algorithm ? auth_algorithm :
"",
14624 privacy_algorithm ? privacy_algorithm :
"");
14630 time_t activation_time, expiration_time;
14631 gchar *activation_time_str, *expiration_time_str;
14632 gchar *fingerprint, *issuer;
14634 &activation_time, &expiration_time,
14635 &fingerprint, &issuer);
14638 SENDF_TO_CLIENT_OR_FAIL
14639 (
"<certificate_info>" 14640 "<time_status>%s</time_status>" 14641 "<activation_time>%s</activation_time>" 14642 "<expiration_time>%s</expiration_time>" 14643 "<md5_fingerprint>%s</md5_fingerprint>" 14644 "<issuer>%s</issuer>" 14645 "</certificate_info>",
14647 activation_time_str,
14648 expiration_time_str,
14649 fingerprint ? fingerprint :
"",
14650 issuer ? issuer :
"");
14651 g_free (activation_time_str);
14652 g_free (expiration_time_str);
14653 g_free (fingerprint);
14667 pub = openvas_ssh_public_from_private (private_key, pass);
14668 SENDF_TO_CLIENT_OR_FAIL
14669 (
"<public_key>%s</public_key>", pub ?:
"");
14674 package = credential_iterator_rpm (&credentials);
14675 SENDF_TO_CLIENT_OR_FAIL
14676 (
"<package format=\"rpm\">%s</package>", package ?:
"");
14680 package = credential_iterator_deb (&credentials);
14681 SENDF_TO_CLIENT_OR_FAIL
14682 (
"<package format=\"deb\">%s</package>", package ?:
"");
14686 package = credential_iterator_exe (&credentials);
14687 SENDF_TO_CLIENT_OR_FAIL
14688 (
"<package format=\"exe\">%s</package>", package ?:
"");
14693 SENDF_TO_CLIENT_OR_FAIL
14694 (
"<certificate>%s</certificate>", cert ?:
"");
14703 SENDF_TO_CLIENT_OR_FAIL (
"<scanners>");
14706 while (
next (&scanners))
14708 SENDF_TO_CLIENT_OR_FAIL
14709 (
"<scanner id=\"%s\">" 14714 SEND_TO_CLIENT_OR_FAIL (
"</scanner>");
14716 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 14721 SEND_TO_CLIENT_OR_FAIL (
"</scanners>");
14728 SENDF_TO_CLIENT_OR_FAIL (
"<targets>");
14731 while (
next (&targets))
14733 SENDF_TO_CLIENT_OR_FAIL
14734 (
"<target id=\"%s\">" 14739 SEND_TO_CLIENT_OR_FAIL (
"</target>");
14741 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 14746 SEND_TO_CLIENT_OR_FAIL (
"</targets>");
14749 SEND_TO_CLIENT_OR_FAIL (
"</credential>");
14771 feed_type_name (
int feed_type)
14795 get_feed (
omp_parser_t *omp_parser, GError **error,
const gchar *sync_script,
14798 gchar *feed_description, *feed_identification, *feed_version;
14800 feed_description = NULL;
14801 feed_identification = NULL;
14802 feed_version = NULL;
14806 &feed_identification,
14811 gchar *user, *timestamp;
14813 gchar **ident = g_strsplit (feed_identification,
"|", 6);
14814 gchar *selftest_result = NULL;
14817 if (syncing < 0 || ident[0] == NULL || ident[1] == NULL
14818 || ident[2] == NULL || ident[3] == NULL)
14820 g_strfreev (ident);
14825 SENDF_TO_CLIENT_OR_FAIL
14829 "<version>%s</version>" 14830 "<description>%s</description>",
14831 feed_type_name (feed_type),
14835 g_strfreev (ident);
14840 SENDF_TO_CLIENT_OR_FAIL (
"<sync_not_available>" 14841 "<error>%s</error>" 14842 "</sync_not_available>",
14843 selftest_result ? selftest_result :
"");
14844 g_free (selftest_result);
14849 SENDF_TO_CLIENT_OR_FAIL (
"<currently_syncing>" 14850 "<timestamp>%s</timestamp>" 14852 "</currently_syncing>",
14853 timestamp ? timestamp :
"",
14855 g_free (timestamp);
14858 SEND_TO_CLIENT_OR_FAIL (
"</feed>");
14861 g_free (feed_version);
14863 g_free (feed_identification);
14864 g_free (feed_description);
14874 handle_get_feeds (
omp_parser_t *omp_parser, GError **error)
14880 SEND_TO_CLIENT_OR_FAIL
14882 "Permission denied"));
14887 SEND_TO_CLIENT_OR_FAIL (
"<get_feeds_response" 14893 get_feed (omp_parser, error, nvt_sync_script,
NVT_FEED);
14897 get_feed (omp_parser, error, scap_sync_script,
SCAP_FEED);
14901 get_feed (omp_parser, error, cert_sync_script,
CERT_FEED);
14903 SEND_TO_CLIENT_OR_FAIL (
"</get_feeds_response>");
14916 handle_get_filters (
omp_parser_t *omp_parser, GError **error)
14919 int count, filtered, ret, first;
14929 if (send_find_error_to_client (
"get_filters",
"filter",
14933 error_send_to_client (error);
14938 if (send_find_error_to_client
14939 (
"get_filters",
"filter",
14942 error_send_to_client (error);
14947 SEND_TO_CLIENT_OR_FAIL
14956 SEND_GET_START (
"filter");
14965 internal_error_send_to_client (error);
14971 SENDF_TO_CLIENT_OR_FAIL (
"<type>%s</type>" 14980 SEND_TO_CLIENT_OR_FAIL (
"<alerts>");
14984 while (
next (&alerts))
14986 SENDF_TO_CLIENT_OR_FAIL
14987 (
"<alert id=\"%s\">" 14992 SEND_TO_CLIENT_OR_FAIL (
"</alert>");
14994 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 14998 SEND_TO_CLIENT_OR_FAIL (
"</alerts>");
15001 SEND_TO_CLIENT_OR_FAIL (
"</filter>");
15022 handle_get_groups (
omp_parser_t *omp_parser, GError **error)
15025 int count, filtered, ret, first;
15035 if (send_find_error_to_client (
"get_groups",
"group",
15039 error_send_to_client (error);
15044 if (send_find_error_to_client
15048 error_send_to_client (error);
15053 SEND_TO_CLIENT_OR_FAIL
15062 SEND_GET_START (
"group");
15073 internal_error_send_to_client (error);
15080 SENDF_TO_CLIENT_OR_FAIL (
"<users>%s</users>", users ? users :
"");
15083 SEND_TO_CLIENT_OR_FAIL (
"</group>");
15104 handle_get_info (
omp_parser_t *omp_parser, GError **error)
15107 int count, first, filtered, ret;
15110 const char *update_time;
15115 SEND_TO_CLIENT_OR_FAIL
15117 "Permission denied"));
15125 SEND_TO_CLIENT_OR_FAIL
15127 "GET_INFO requires the SCAP database."));
15134 SEND_TO_CLIENT_OR_FAIL
15136 "GET_INFO requires the CERT database."));
15144 SEND_TO_CLIENT_OR_FAIL
15146 "Only one of name and the id attribute" 15147 " may be given."));
15154 SEND_TO_CLIENT_OR_FAIL
15156 "No type specified."));
15163 if (get->filt_id && strcmp (get->filt_id,
"-2") == 0)
15169 name = g_strdup (
"CPE");
15171 name = g_strdup (
"CVE");
15173 name = g_strdup (
"OVAL");
15175 name = g_strdup (
"CERT-Bund");
15177 name = g_strdup (
"DFN-CERT");
15179 name = g_strdup (
"NVT");
15181 name = g_strdup (
"All SecInfo");
15184 if (send_find_error_to_client (
"get_info",
"type",
15188 error_send_to_client (error);
15199 if (user_filter && strlen (user_filter))
15201 get->filt_id = user_filter;
15205 get->filt_id = g_strdup(
"0");
15239 SEND_GET_START (
"info");
15240 SEND_TO_CLIENT_OR_FAIL (
"<info>");
15241 SEND_TO_CLIENT_OR_FAIL (result);
15242 SEND_TO_CLIENT_OR_FAIL (
"</info>");
15243 SEND_TO_CLIENT_OR_FAIL (
"<details>1</details>");
15252 if (send_find_error_to_client (
"get_info",
15261 error_send_to_client (error);
15295 if (send_find_error_to_client (
"get_info",
"type",
15298 error_send_to_client (error);
15309 if (send_find_error_to_client (
"get_info",
"type",
15313 error_send_to_client (error);
15318 if (send_find_error_to_client
15322 error_send_to_client (error);
15327 SEND_TO_CLIENT_OR_FAIL
15338 SEND_GET_START (
"info");
15340 while (
next (&info))
15349 error_send_to_client (error);
15353 SENDF_TO_CLIENT_OR_FAIL (
"<update_time>%s</update_time>",
15356 result = g_string_new (
"");
15364 xml_string_append (result,
"<cpe>");
15367 xml_string_append (result,
15368 "<title>%s</title>",
15370 xml_string_append (result,
15371 "<nvd_id>%s</nvd_id>" 15372 "<max_cvss>%s</max_cvss>" 15373 "<cve_refs>%s</cve_refs>" 15374 "<status>%s</status>",
15384 g_string_append (result,
"<cves>");
15386 while (
next (&cves))
15387 xml_string_append (result,
15390 " xmlns:cpe-lang=\"http://cpe.mitre.org/language/2.0\"" 15391 " xmlns:vuln=\"http://scap.nist.gov/schema/vulnerability/0.4\"" 15392 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" 15393 " xmlns:patch=\"http://scap.nist.gov/schema/patch/0.1\"" 15394 " xmlns:scap-core=\"http://scap.nist.gov/schema/scap-core/0.1\"" 15395 " xmlns:cvss=\"http://scap.nist.gov/schema/cvss-v2/0.2\"" 15396 " xmlns=\"http://scap.nist.gov/schema/feed/vulnerability/2.0\"" 15399 "<cvss:base_metrics>" 15400 "<cvss:score>%s</cvss:score>" 15401 "</cvss:base_metrics>" 15408 g_string_append (result,
"</cves>");
15413 xml_string_append (result,
15416 "<vector>%s</vector>" 15417 "<complexity>%s</complexity>" 15418 "<authentication>%s</authentication>" 15419 "<confidentiality_impact>%s</confidentiality_impact>" 15420 "<integrity_impact>%s</integrity_impact>" 15421 "<availability_impact>%s</availability_impact>" 15422 "<description>%s</description>" 15423 "<products>%s</products>",
15440 g_string_append (result,
"<nvts>");
15441 while (
next (&nvts))
15442 xml_string_append (result,
15448 g_string_append (result,
"</nvts>");
15451 g_string_append (result,
"<cert>");
15457 while (
next (&cert_advs))
15461 "<cert_ref type=\"CERT-Bund\">" 15463 "<title>%s</title>" 15474 while (
next (&cert_advs))
15476 xml_string_append (result,
15477 "<cert_ref type=\"DFN-CERT\">" 15479 "<title>%s</title>" 15489 g_string_append(result,
"<warning>" 15490 "database not available" 15493 g_string_append (result,
"</cert>");
15498 const char *description;
15499 xml_string_append (result,
15501 "<version>%s</version>" 15502 "<deprecated>%s</deprecated>" 15503 "<status>%s</status>" 15504 "<class>%s</class>" 15505 "<title>%s</title>" 15506 "<max_cvss>%s</max_cvss>" 15507 "<cve_refs>%s</cve_refs>" 15519 xml_string_append (result,
15520 "<description>%s</description>",
15524 xml_string_append (result,
15526 "<title>%s</title>" 15527 "<summary>%s</summary>" 15528 "<max_cvss>%s</max_cvss>" 15529 "<cve_refs>%s</cve_refs>",
15535 xml_string_append (result,
15537 "<title>%s</title>" 15538 "<summary>%s</summary>" 15539 "<max_cvss>%s</max_cvss>" 15540 "<cve_refs>%s</cve_refs>",
15547 if (send_nvt (&info, 1, 1, -1, NULL, 0,
15552 error_send_to_client (error);
15559 xml_string_append (result,
15562 "<extra>%s</extra>" 15563 "<severity>%s</severity>",
15565 extra ? extra :
"",
15573 gchar *raw_data = NULL;
15577 nonconst_name, &raw_data);
15578 g_string_append_printf (result,
"<raw_data>%s</raw_data>",
15580 g_free(nonconst_id);
15581 g_free(nonconst_name);
15586 SEND_TO_CLIENT_OR_FAIL (result->str);
15588 g_string_free (result, TRUE);
15593 SEND_TO_CLIENT_OR_FAIL (
"<details>1</details>");
15619 handle_get_notes (
omp_parser_t *omp_parser, GError **error)
15625 SEND_TO_CLIENT_OR_FAIL
15627 "Only one of NVT and the note_id attribute" 15630 SEND_TO_CLIENT_OR_FAIL
15632 "Only one of the note_id and task_id" 15633 " attributes may be given"));
15639 if (send_find_error_to_client (
"get_notes",
15643 error_send_to_client (error);
15652 if (send_find_error_to_client (
"get_notes",
"NVT",
15656 error_send_to_client (error);
15664 int count, filtered, ret, first;
15675 if (send_find_error_to_client (
"get_notes",
"note",
15679 error_send_to_client (error);
15684 if (send_find_error_to_client
15685 (
"get_notes",
"filter",
15688 error_send_to_client (error);
15693 SEND_TO_CLIENT_OR_FAIL
15702 SEND_GET_START (
"note");
15704 buffer = g_string_new (
"");
15710 SEND_TO_CLIENT_OR_FAIL (buffer->str);
15711 g_string_free (buffer, TRUE);
15731 handle_get_nvts (
omp_parser_t *omp_parser, GError **error)
15733 char *feed_version;
15737 SEND_TO_CLIENT_OR_FAIL
15739 "Permission denied"));
15748 config_t config, preferences_config;
15751 config = preferences_config = 0;
15753 free (feed_version);
15756 SEND_TO_CLIENT_OR_FAIL
15758 "Too many parameters at once"));
15761 SEND_TO_CLIENT_OR_FAIL
15763 "GET_NVTS preference_count attribute" 15764 " requires the details attribute"));
15767 SEND_TO_CLIENT_OR_FAIL
15769 "GET_NVTS preferences attribute" 15770 " requires the details attribute"));
15775 SEND_TO_CLIENT_OR_FAIL
15777 "GET_NVTS timeout attribute" 15778 " requires the details and config_id" 15782 SEND_TO_CLIENT_OR_FAIL
15786 if (send_find_error_to_client (
"get_nvts",
"NVT",
15790 error_send_to_client (error);
15796 SEND_TO_CLIENT_OR_FAIL
15798 "GET_NVTS config_id and" 15799 " preferences_config_id both given"));
15804 SEND_TO_CLIENT_OR_FAIL
15808 if (send_find_error_to_client
15812 error_send_to_client (error);
15819 &preferences_config,
15821 SEND_TO_CLIENT_OR_FAIL
15824 && (preferences_config == 0))
15826 if (send_find_error_to_client
15827 (
"get_nvts",
"config",
15831 error_send_to_client (error);
15839 SENDF_TO_CLIENT_OR_FAIL
15840 (
"<get_nvts_response" 15855 if (preferences_config)
15856 config = preferences_config;
15858 while (
next (&nvts))
15860 int pref_count = -1;
15861 char *timeout = NULL;
15878 pref_count, timeout, config,
15884 error_send_to_client (error);
15889 SEND_TO_CLIENT_OR_FAIL (
"</nvt>");
15892 while (
next (&nvts))
15894 if (send_nvt (&nvts, 0, 0, -1, NULL, 0,
15899 error_send_to_client (error);
15902 SEND_TO_CLIENT_OR_FAIL (
"</nvt>");
15906 SEND_TO_CLIENT_OR_FAIL (
"</get_nvts_response>");
15923 handle_get_nvt_families (
omp_parser_t *omp_parser, GError **error)
15929 SEND_TO_CLIENT_OR_FAIL
15931 "Permission denied"));
15937 SEND_TO_CLIENT_OR_FAIL (
"<get_nvt_families_response" 15946 while (
next (&families))
15949 const char *family;
15957 SENDF_TO_CLIENT_OR_FAIL
15961 "<max_nvt_count>%i</max_nvt_count>" 15963 family ? family :
"",
15968 SEND_TO_CLIENT_OR_FAIL (
"</families>" 15969 "</get_nvt_families_response>");
15982 handle_get_overrides (
omp_parser_t *omp_parser, GError **error)
15988 SEND_TO_CLIENT_OR_FAIL
15990 "Only one of NVT and the override_id attribute" 15994 SEND_TO_CLIENT_OR_FAIL
15996 "Only one of the override_id and task_id" 15997 " attributes may be given"));
16003 if (send_find_error_to_client (
"get_overrides",
"task",
16007 error_send_to_client (error);
16016 if (send_find_error_to_client (
"get_overrides",
16020 error_send_to_client (error);
16028 int count, filtered, ret, first;
16040 if (send_find_error_to_client
16041 (
"get_overrides",
"override",
16044 error_send_to_client (error);
16049 if (send_find_error_to_client
16050 (
"get_overrides",
"filter",
16053 error_send_to_client (error);
16058 SEND_TO_CLIENT_OR_FAIL
16067 SEND_GET_START (
"override");
16069 buffer = g_string_new (
"");
16072 buffer_overrides_xml (buffer, &overrides,
16076 SEND_TO_CLIENT_OR_FAIL (buffer->str);
16077 g_string_free (buffer, TRUE);
16098 handle_get_permissions (
omp_parser_t *omp_parser, GError **error)
16101 int count, filtered, ret, first;
16103 INIT_GET (permission, Permission);
16112 if (send_find_error_to_client (
"get_permissions",
16117 error_send_to_client (error);
16122 if (send_find_error_to_client
16123 (
"get_permissions",
"filter",
16126 error_send_to_client (error);
16131 SEND_TO_CLIENT_OR_FAIL
16140 SEND_GET_START (
"permission");
16143 const char *resource_type;
16151 internal_error_send_to_client (error);
16158 SENDF_TO_CLIENT_OR_FAIL
16159 (
"<resource id=\"%s\">" 16162 "<trash>%i</trash>" 16163 "<deleted>%i</deleted>",
16165 resource_type && strcmp (resource_type,
"")
16173 SEND_TO_CLIENT_OR_FAIL (
"</resource>");
16175 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 16178 SENDF_TO_CLIENT_OR_FAIL
16179 (
"<subject id=\"%s\">" 16182 "<trash>%i</trash>",
16189 SEND_TO_CLIENT_OR_FAIL (
"</subject>");
16191 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 16194 SEND_TO_CLIENT_OR_FAIL (
"</permission>");
16214 handle_get_port_lists (
omp_parser_t *omp_parser, GError **error)
16217 int count, filtered, ret, first;
16228 if (send_find_error_to_client (
"get_port_lists",
16233 error_send_to_client (error);
16238 if (send_find_error_to_client
16239 (
"get_port_lists",
"port_list",
16242 error_send_to_client (error);
16247 SEND_TO_CLIENT_OR_FAIL
16256 SEND_GET_START (
"port_list");
16265 internal_error_send_to_client (error);
16272 SENDF_TO_CLIENT_OR_FAIL (
"<port_count>" 16285 SEND_TO_CLIENT_OR_FAIL (
"<port_ranges>");
16290 while (
next (&ranges))
16291 SENDF_TO_CLIENT_OR_FAIL
16292 (
"<port_range id=\"%s\">" 16293 "<start>%s</start>" 16296 "<comment>%s</comment>" 16307 SENDF_TO_CLIENT_OR_FAIL (
"</port_ranges>");
16314 SEND_TO_CLIENT_OR_FAIL (
"<targets>");
16319 while (
next (&targets))
16325 SENDF_TO_CLIENT_OR_FAIL
16326 (
"<target id=\"%s\">" 16331 SEND_TO_CLIENT_OR_FAIL (
"</target>");
16333 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 16339 SEND_TO_CLIENT_OR_FAIL (
"</targets>");
16342 SEND_TO_CLIENT_OR_FAIL (
"</port_list>");
16364 handle_get_preferences (
omp_parser_t *omp_parser, GError **error)
16372 SEND_TO_CLIENT_OR_FAIL
16374 "Permission denied"));
16385 if (send_find_error_to_client (
"get_preferences",
"NVT",
16389 error_send_to_client (error);
16398 if (send_find_error_to_client (
"get_preferences",
"config",
16402 error_send_to_client (error);
16409 SEND_TO_CLIENT_OR_FAIL (
"<get_preferences_response" 16415 while (
next (&prefs))
16419 && (strcmp (name + 2,
16423 GString *buffer = g_string_new (
"");
16425 SEND_TO_CLIENT_OR_FAIL (buffer->str);
16426 g_string_free (buffer, TRUE);
16431 while (
next (&prefs))
16433 GString *buffer = g_string_new (
"");
16435 SEND_TO_CLIENT_OR_FAIL (buffer->str);
16436 g_string_free (buffer, TRUE);
16440 SEND_TO_CLIENT_OR_FAIL (
"</get_preferences_response>");
16453 handle_get_reports (
omp_parser_t *omp_parser, GError **error)
16455 report_t request_report = 0, delta_report = 0, report;
16458 int count, filtered, ret, first;
16470 SEND_TO_CLIENT_OR_FAIL
16472 "Permission denied"));
16493 SEND_TO_CLIENT_OR_FAIL
16495 "GET_REPORTS type must be scan, assets or" 16505 SEND_TO_CLIENT_OR_FAIL
16507 "GET_REPORTS with type prognostic requires the" 16508 " SCAP database"));
16539 = g_strdup (
"a994b278-1f62-11e1-96ac-406186ea4fc5");
16543 "get_report_formats"))
16551 if (report_format == 0)
16553 if (send_find_error_to_client (
"get_reports",
"report format",
16557 error_send_to_client (error);
16582 if (send_find_error_to_client (
"get_reports",
"filter",
16586 error_send_to_client (error);
16597 && request_report == 0)
16599 if (send_find_error_to_client (
"get_reports",
"report",
16603 error_send_to_client (error);
16614 && delta_report == 0)
16616 if (send_find_error_to_client (
"get_reports",
"report",
16620 error_send_to_client (error);
16631 SEND_TO_CLIENT_OR_FAIL
16633 "GET_REPORTS report format must be active"));
16642 SEND_TO_CLIENT_OR_FAIL
16644 "GET_REPORTS report format must be predefined" 16652 gchar *extension, *content_type;
16659 if (get->filt_id && strcmp (get->filt_id,
"-2") == 0)
16661 g_free (get->filt_id);
16662 get->filt_id = g_strdup (
"0");
16666 SEND_TO_CLIENT_OR_FAIL
16667 (
"<get_reports_response" 16674 SENDF_TO_CLIENT_OR_FAIL
16677 " format_id=\"%s\"" 16678 " extension=\"%s\"" 16679 " content_type=\"%s\">",
16684 g_free (extension);
16685 g_free (content_type);
16698 "a994b278-1f62-11e1-96ac-406186ea4fc5")
16701 "5057e5cc-b825-11e4-9d0e-28d24461215b"),
16709 NULL, NULL, 0, 0, NULL);
16713 internal_error_send_to_client (error);
16719 SEND_TO_CLIENT_OR_FAIL (
"</report>" 16720 "</get_reports_response>");
16729 gchar *extension, *content_type;
16736 if (get->filt_id && strcmp (get->filt_id,
"-2") == 0)
16738 g_free (get->filt_id);
16739 get->filt_id = g_strdup (
"0");
16743 SEND_TO_CLIENT_OR_FAIL
16744 (
"<get_reports_response" 16751 SENDF_TO_CLIENT_OR_FAIL
16753 " type=\"prognostic\"" 16754 " format_id=\"%s\"" 16755 " extension=\"%s\"" 16756 " content_type=\"%s\">",
16761 g_free (extension);
16762 g_free (content_type);
16775 "a994b278-1f62-11e1-96ac-406186ea4fc5")
16778 "5057e5cc-b825-11e4-9d0e-28d24461215b"),
16794 internal_error_send_to_client (error);
16800 SEND_TO_CLIENT_OR_FAIL (
"</report>" 16801 "</get_reports_response>");
16829 SEND_TO_CLIENT_OR_FAIL
16831 "Permission denied"));
16834 internal_error_send_to_client (error);
16846 gchar *overrides, *min_qod, *filter;
16856 if (get->filt_id && strcmp (get->filt_id,
"0"))
16859 if (filter == NULL)
16873 = g_strdup_printf (
"apply_overrides=%i min_qod=%s",
16874 overrides && strcmp (overrides,
"0"),
16876 g_free (overrides);
16886 if (send_find_error_to_client (
"get_reports",
"report",
16890 error_send_to_client (error);
16895 if (send_find_error_to_client
16896 (
"get_reports",
"filter",
16899 error_send_to_client (error);
16904 SEND_TO_CLIENT_OR_FAIL
16915 SEND_GET_START (
"report");
16918 gchar *extension, *content_type;
16922 prefix = g_string_new (
"");
16927 g_string_append_printf (prefix,
16931 " format_id=\"%s\"" 16932 " extension=\"%s\"" 16933 " content_type=\"%s\">",
16939 g_free (extension);
16940 g_free (content_type);
16947 buffer_xml_append_printf
16949 "<owner><name>%s</name></owner>" 16951 "<comment>%s</comment>" 16952 "<creation_time>%s</creation_time>" 16953 "<modification_time>" 16955 "</modification_time>" 16956 "<writable>0</writable>" 16957 "<in_use>0</in_use>",
16977 gchar *report_task_uuid;
16980 buffer_xml_append_printf (prefix,
16981 "<task id=\"%s\">",
16986 "5057e5cc-b825-11e4-9d0e-28d24461215b"))
16988 gchar *report_task_name;
16990 buffer_xml_append_printf (prefix,
16993 g_free (report_task_name);
16996 buffer_xml_append_printf (prefix,
"</task>");
16998 g_free (report_task_uuid);
17003 gchar *format_name = NULL;
17006 buffer_xml_append_printf
17008 "<report_format id=\"%s\">" 17010 "</report_format>",
17012 format_name ? format_name :
"");
17020 if (request_report)
17034 "a994b278-1f62-11e1-96ac-406186ea4fc5")
17037 "5057e5cc-b825-11e4-9d0e-28d24461215b"),
17043 NULL, 0, NULL, NULL, 0, 0, prefix->str);
17044 g_string_free (prefix, TRUE);
17053 if (send_find_error_to_client
17054 (
"get_reports",
"alert",
17057 error_send_to_client (error);
17063 internal_error_send_to_client (error);
17064 if (request_report == 0)
17071 if (send_find_error_to_client
17072 (
"get_reports",
"filter",
17075 error_send_to_client (error);
17080 if (request_report == 0)
17087 SEND_TO_CLIENT_OR_FAIL
17089 "Failed to find report format for" 17091 if (request_report == 0)
17098 SEND_TO_CLIENT_OR_FAIL
17100 if (request_report == 0)
17107 SEND_TO_CLIENT_OR_FAIL
17109 "Failed to find filter for" 17111 if (request_report == 0)
17119 SEND_TO_CLIENT_OR_FAIL
17124 internal_error_send_to_client (error);
17125 if (request_report == 0)
17134 if (send_find_error_to_client
17135 (
"get_reports",
"filter",
17138 error_send_to_client (error);
17143 if (request_report == 0)
17154 internal_error_send_to_client (error);
17155 if (request_report == 0)
17163 SEND_TO_CLIENT_OR_FAIL (
"</report>");
17167 if (request_report)
17171 if (request_report == 0)
17175 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"get_reports"));
17196 handle_get_report_formats (
omp_parser_t *omp_parser, GError **error)
17200 SEND_TO_CLIENT_OR_FAIL
17202 "GET_REPORT_FORMATS params given with trash"));
17206 int count, filtered, ret, first;
17208 INIT_GET (report_format, Report Format);
17217 if (send_find_error_to_client (
"get_report_formats",
17222 error_send_to_client (error);
17227 if (send_find_error_to_client
17228 (
"get_report_formats",
"filter",
17231 error_send_to_client (error);
17236 SEND_TO_CLIENT_OR_FAIL
17245 SEND_GET_START (
"report_format");
17250 ret = get_next (&report_formats,
17257 internal_error_send_to_client (error);
17261 SEND_GET_COMMON (report_format,
17268 SENDF_TO_CLIENT_OR_FAIL
17269 (
"<extension>%s</extension>" 17270 "<content_type>%s</content_type>" 17271 "<summary>%s</summary>" 17272 "<description>%s</description>" 17273 "<predefined>%i</predefined>",
17287 SEND_TO_CLIENT_OR_FAIL (
"<alerts>");
17290 (&report_formats));
17291 while (
next (&alerts))
17297 SENDF_TO_CLIENT_OR_FAIL
17298 (
"<alert id=\"%s\">" 17303 SEND_TO_CLIENT_OR_FAIL (
"</alert>");
17305 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 17309 SEND_TO_CLIENT_OR_FAIL (
"</alerts>");
17319 while (
next (¶ms))
17321 long long int min, max;
17324 SENDF_TO_CLIENT_OR_FAIL
17332 if (min > LLONG_MIN)
17333 SENDF_TO_CLIENT_OR_FAIL (
"<min>%lli</min>", min);
17336 if (max < LLONG_MAX)
17337 SENDF_TO_CLIENT_OR_FAIL (
"<max>%lli</max>", max);
17343 const char *fallback;
17348 SENDF_TO_CLIENT_OR_FAIL
17349 (
"</type><value>%s",
17350 value ? value :
"");
17353 gchar **ids, **current_id;
17354 ids = g_strsplit (value,
",", -1);
17356 while (*current_id)
17361 (*current_id, &value_rf,
17362 "get_report_formats");
17366 SENDF_TO_CLIENT_OR_FAIL
17367 (
"<report_format id=\"%s\">" 17369 "</report_format>",
17379 SENDF_TO_CLIENT_OR_FAIL
17380 (
"</value><default>%s",
17381 fallback ? fallback :
"");
17384 gchar **ids, **current_id;
17385 ids = g_strsplit (fallback,
",", -1);
17387 while (*current_id)
17392 (*current_id, &value_rf,
17393 "get_report_formats");
17397 SENDF_TO_CLIENT_OR_FAIL
17398 (
"<report_format id=\"%s\">" 17400 "</report_format>",
17410 SENDF_TO_CLIENT_OR_FAIL
17415 SENDF_TO_CLIENT_OR_FAIL
17417 "<value>%s</value>" 17418 "<default>%s</default>",
17426 SEND_TO_CLIENT_OR_FAIL (
"<options>");
17433 while (
next (&options))
17434 SENDF_TO_CLIENT_OR_FAIL
17435 (
"<option>%s</option>",
17438 SEND_TO_CLIENT_OR_FAIL (
"</options>");
17441 SEND_TO_CLIENT_OR_FAIL (
"</param>");
17453 error_send_to_client (error);
17459 SENDF_TO_CLIENT_OR_FAIL
17460 (
"<file name=\"%s\">%s</file>",
17467 SENDF_TO_CLIENT_OR_FAIL
17468 (
"<signature>%s</signature>",
17472 SENDF_TO_CLIENT_OR_FAIL
17473 (
"<trust>%s<time>%s</time></trust>" 17474 "<active>%i</active>",
17484 SEND_TO_CLIENT_OR_FAIL (
"</report_format>");
17505 handle_get_results (
omp_parser_t *omp_parser, GError **error)
17512 SEND_TO_CLIENT_OR_FAIL
17514 "Permission denied"));
17535 if (send_find_error_to_client (
"get_results",
"result",
17539 error_send_to_client (error);
17550 if (send_find_error_to_client (
"get_results",
"task",
17554 error_send_to_client (error);
17560 const char* filter;
17562 int notes, overrides;
17563 int count, ret, first;
17573 SEND_TO_CLIENT_OR_FAIL (
"<get_results_response" 17603 if (
next (&results))
17612 internal_error_send_to_client (error);
17622 GString *buffer = g_string_new (
"");
17637 SEND_TO_CLIENT_OR_FAIL (buffer->str);
17638 g_string_free (buffer, TRUE);
17641 while (
next (&results));
17646 &first, NULL, NULL, NULL);
17662 error_send_to_client (error);
17666 else if (send_get_end_no_counts (
"result",
17671 error_send_to_client (error);
17687 handle_get_roles (
omp_parser_t *omp_parser, GError **error)
17690 int count, filtered, ret, first;
17700 if (send_find_error_to_client (
"get_roles",
"role",
17704 error_send_to_client (error);
17709 if (send_find_error_to_client
17713 error_send_to_client (error);
17718 SEND_TO_CLIENT_OR_FAIL
17727 SEND_GET_START (
"role");
17738 internal_error_send_to_client (error);
17745 SENDF_TO_CLIENT_OR_FAIL (
"<users>%s</users>", users ? users :
"");
17748 SEND_TO_CLIENT_OR_FAIL (
"</role>");
17769 handle_get_scanners (
omp_parser_t *omp_parser, GError **error)
17772 int ret, count, filtered, first;
17781 if (send_find_error_to_client
17785 error_send_to_client (error);
17790 if (send_find_error_to_client
17794 error_send_to_client (error);
17809 SEND_GET_START (
"scanner");
17812 gchar *credential_id;
17819 internal_error_send_to_client (error);
17825 SENDF_TO_CLIENT_OR_FAIL
17829 "<ca_pub>%s</ca_pub>",
17837 time_t activation_time, expiration_time;
17838 gchar *activation_time_str, *expiration_time_str;
17843 gchar *fingerprint, *issuer;
17845 &activation_time, &expiration_time,
17846 &fingerprint, &issuer);
17849 SENDF_TO_CLIENT_OR_FAIL
17851 "<time_status>%s</time_status>" 17852 "<activation_time>%s</activation_time>" 17853 "<expiration_time>%s</expiration_time>" 17854 "<md5_fingerprint>%s</md5_fingerprint>" 17855 "<issuer>%s</issuer>" 17858 activation_time_str,
17859 expiration_time_str,
17862 g_free (activation_time_str);
17863 g_free (expiration_time_str);
17864 g_free (fingerprint);
17870 SENDF_TO_CLIENT_OR_FAIL
17871 (
"<credential id=\"%s\">" 17873 "<trash>%d</trash>",
17874 credential_id ? credential_id :
"",
17880 time_t activation_time, expiration_time;
17881 gchar *activation_time_str, *expiration_time_str;
17886 gchar *fingerprint, *issuer;
17888 &activation_time, &expiration_time,
17889 &fingerprint, &issuer);
17892 SENDF_TO_CLIENT_OR_FAIL
17893 (
"<certificate_info>" 17894 "<time_status>%s</time_status>" 17895 "<activation_time>%s</activation_time>" 17896 "<expiration_time>%s</expiration_time>" 17897 "<md5_fingerprint>%s</md5_fingerprint>" 17898 "<issuer>%s</issuer>" 17899 "</certificate_info>",
17901 activation_time_str,
17902 expiration_time_str,
17905 g_free (activation_time_str);
17906 g_free (expiration_time_str);
17907 g_free (fingerprint);
17912 SENDF_TO_CLIENT_OR_FAIL
17914 g_free (credential_id);
17920 SEND_TO_CLIENT_OR_FAIL (
"<tasks>");
17923 while (
next (&tasks))
17929 SENDF_TO_CLIENT_OR_FAIL
17930 (
"<task id=\"%s\">" 17936 SEND_TO_CLIENT_OR_FAIL (
"</task>");
17938 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 17942 SEND_TO_CLIENT_OR_FAIL (
"</tasks>");
17947 char *s_name = NULL, *s_ver = NULL;
17948 char *d_name = NULL, *d_ver = NULL;
17949 char *p_name = NULL, *p_ver = NULL, *desc = NULL;
17950 GSList *params = NULL, *nodes;
17953 (&scanners, &s_name, &s_ver, &d_name, &d_ver, &p_name, &p_ver)
17956 SENDF_TO_CLIENT_OR_FAIL
17957 (
"<info><scanner><name>%s</name><version>%s</version>" 17958 "</scanner><daemon><name>%s</name><version>%s</version>" 17959 "</daemon><protocol><name>%s</name><version>%s" 17960 "</version></protocol><description>%s</description>",
17961 s_name, s_ver, d_name, d_ver, p_name, p_ver, desc);
17963 SENDF_TO_CLIENT_OR_FAIL (
"<params>");
17967 osp_param_t *param = nodes->data;
17969 SENDF_TO_CLIENT_OR_FAIL
17970 (
"<param><id>%s</id><name>%s</name>" 17971 "<default>%s</default><description>%s</description>" 17972 "<type>osp_%s</type><mandatory>%d</mandatory></param>",
17973 osp_param_id (param), osp_param_name (param),
17974 osp_param_default (param), osp_param_desc (param),
17975 osp_param_type_str (param), osp_param_mandatory (param));
17977 osp_param_free (nodes->data);
17978 nodes = nodes->next;
17980 SENDF_TO_CLIENT_OR_FAIL (
"</params></info>");
17983 SENDF_TO_CLIENT_OR_FAIL
17984 (
"<info><scanner><name/><version/></scanner>" 17985 "<daemon><name/><version/></daemon>" 17986 "<protocol><name/><version/></protocol><description/><params/>" 17995 g_slist_free (params);
17999 SENDF_TO_CLIENT_OR_FAIL
18000 (
"<info><scanner><name>OpenVAS</name><version/></scanner>" 18001 "<daemon><name/><version/></daemon>" 18002 "<protocol><name/><version/></protocol><description/><params/>" 18005 SEND_TO_CLIENT_OR_FAIL (
"</scanner>");
18022 handle_get_schedules (
omp_parser_t *omp_parser, GError **error)
18025 SEND_TO_CLIENT_OR_FAIL
18027 "GET_SCHEDULES tasks given with trash"));
18031 int count, filtered, ret, first;
18041 if (send_find_error_to_client (
"get_schedules",
18046 error_send_to_client (error);
18051 if (send_find_error_to_client
18052 (
"get_schedules",
"filter",
18055 error_send_to_client (error);
18060 SEND_TO_CLIENT_OR_FAIL
18069 SEND_GET_START (
"schedule");
18074 const char *timezone, *abbrev;
18075 char *simple_period_unit, *simple_duration_unit;
18076 int period, period_minutes, period_hours, period_days;
18077 int period_weeks, period_months, duration, duration_minutes;
18078 int duration_hours, duration_days, duration_weeks;
18079 int simple_period, simple_duration;
18087 internal_error_send_to_client (error);
18099 iso = g_strdup (
iso_time_tz (&first_time, timezone, &abbrev));
18104 period_minutes = period / 60;
18105 period_hours = period_minutes / 60;
18106 period_days = period_hours / 24;
18107 period_weeks = period_days / 7;
18109 simple_period_unit =
"";
18112 else if (period_weeks && (period % (60 * 60 * 24 * 7) == 0))
18114 simple_period = period_weeks;
18115 simple_period_unit =
"week";
18117 else if (period_days && (period % (60 * 60 * 24) == 0))
18119 simple_period = period_days;
18120 simple_period_unit =
"day";
18122 else if (period_hours && (period % (60 * 60) == 0))
18124 simple_period = period_hours;
18125 simple_period_unit =
"hour";
18132 if (period_months && (period_months < 25))
18134 simple_period = period_months;
18135 simple_period_unit =
"month";
18141 duration_minutes = duration / 60;
18142 duration_hours = duration_minutes / 60;
18143 duration_days = duration_hours / 24;
18144 duration_weeks = duration_days / 7;
18146 simple_duration_unit =
"";
18148 simple_duration = 0;
18149 else if (duration_weeks
18150 && (duration % (60 * 60 * 24 * 7) == 0))
18152 simple_duration = duration_weeks;
18153 simple_duration_unit =
"week";
18155 else if (duration_days
18156 && (duration % (60 * 60 * 24) == 0))
18158 simple_duration = duration_days;
18159 simple_duration_unit =
"day";
18161 else if (duration_hours
18162 && (duration % (60 * 60) == 0))
18164 simple_duration = duration_hours;
18165 simple_duration_unit =
"hour";
18169 simple_duration = 0;
18171 SENDF_TO_CLIENT_OR_FAIL
18172 (
"<first_time>%s</first_time>" 18173 "<next_time>%s</next_time>" 18174 "<period>%ld</period>" 18175 "<period_months>%ld</period_months>" 18176 "<simple_period>%i<unit>%s</unit></simple_period>" 18177 "<duration>%ld</duration>" 18178 "<simple_duration>%i<unit>%s</unit></simple_duration>" 18179 "<timezone>%s</timezone>" 18180 "<timezone_abbrev>%s</timezone_abbrev>",
18186 simple_period_unit,
18189 simple_duration_unit,
18193 abbrev ? abbrev :
"UTC");
18200 SEND_TO_CLIENT_OR_FAIL (
"<tasks>");
18204 while (
next (&tasks))
18206 SENDF_TO_CLIENT_OR_FAIL (
"<task id=\"%s\">" 18212 SEND_TO_CLIENT_OR_FAIL (
"</task>");
18214 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 18218 SEND_TO_CLIENT_OR_FAIL (
"</tasks>");
18220 SEND_TO_CLIENT_OR_FAIL (
"</schedule>");
18240 handle_get_settings (
omp_parser_t *omp_parser, GError **error)
18244 int count, filtered;
18248 SEND_TO_CLIENT_OR_FAIL
18250 "Permission denied"));
18264 SEND_TO_CLIENT_OR_FAIL (
"<get_settings_response" 18267 SENDF_TO_CLIENT_OR_FAIL (
"<filters>" 18270 "<settings start=\"%i\" max=\"%i\"/>",
18278 while (
next (&settings))
18280 SENDF_TO_CLIENT_OR_FAIL (
"<setting id=\"%s\">" 18282 "<comment>%s</comment>" 18283 "<value>%s</value>",
18293 time_t activation_time, expiration_time;
18294 gchar *activation_time_str, *expiration_time_str, *fingerprint;
18299 &expiration_time, &fingerprint,
18303 SENDF_TO_CLIENT_OR_FAIL
18304 (
"<certificate_info>" 18305 "<time_status>%s</time_status>" 18306 "<activation_time>%s</activation_time>" 18307 "<expiration_time>%s</expiration_time>" 18308 "<md5_fingerprint>%s</md5_fingerprint>" 18309 "<issuer>%s</issuer>" 18310 "</certificate_info>",
18312 activation_time_str,
18313 expiration_time_str,
18316 g_warning (
"free");
18317 g_free (activation_time_str);
18318 g_free (expiration_time_str);
18319 g_free (fingerprint);
18323 SEND_TO_CLIENT_OR_FAIL (
"</setting>");
18330 SENDF_TO_CLIENT_OR_FAIL (
"<setting_count>" 18331 "<filtered>%i</filtered>" 18333 "</setting_count>",
18337 SEND_TO_CLIENT_OR_FAIL (
"</get_settings_response>");
18350 handle_get_system_reports (
omp_parser_t *omp_parser, GError **error)
18362 if (send_find_error_to_client (
"get_system_reports",
18367 error_send_to_client (error);
18372 if (send_find_error_to_client
18373 (
"get_system_reports",
"slave",
18376 error_send_to_client (error);
18381 SEND_TO_CLIENT_OR_FAIL
18383 "Could not connect to slave"));
18386 SEND_TO_CLIENT_OR_FAIL
18388 "Authentication to slave failed"));
18391 SEND_TO_CLIENT_OR_FAIL
18393 "Failed to get system report from slave"));
18396 SEND_TO_CLIENT_OR_FAIL
18398 "Permission denied"));
18404 SEND_TO_CLIENT_OR_FAIL
18412 SEND_TO_CLIENT_OR_FAIL (
"<get_system_reports_response" 18418 SENDF_TO_CLIENT_OR_FAIL
18421 "<title>%s</title>" 18422 "</system_report>",
18432 && (report_ret != 3))
18435 internal_error_send_to_client (error);
18440 SENDF_TO_CLIENT_OR_FAIL
18443 "<title>%s</title>" 18444 "<report format=\"%s\"" 18445 " start_time=\"%s\" end_time=\"%s\"" 18446 " duration=\"%s\">" 18449 "</system_report>",
18452 (ret == 3 ?
"txt" :
"png"),
18467 SEND_TO_CLIENT_OR_FAIL (
"</get_system_reports_response>");
18482 handle_get_tags (
omp_parser_t *omp_parser, GError **error)
18485 int ret, count, first, filtered;
18499 if (send_find_error_to_client (
"get_tags",
18503 error_send_to_client (error);
18508 if (send_find_error_to_client
18512 error_send_to_client (error);
18517 SEND_TO_CLIENT_OR_FAIL
18525 SEND_GET_START (
"tag");
18536 internal_error_send_to_client (error);
18541 SENDF_TO_CLIENT_OR_FAIL (
"<tag>" 18553 SENDF_TO_CLIENT_OR_FAIL (
"<resource id=\"%s\">" 18556 "<trash>%d</trash>",
18563 SENDF_TO_CLIENT_OR_FAIL (
"<permissions/>");
18566 SENDF_TO_CLIENT_OR_FAIL (
"</resource>" 18567 "<value>%s</value>" 18568 "<active>%d</active>" 18569 "<orphan>%d</orphan>" 18595 handle_get_targets (
omp_parser_t *omp_parser, GError **error)
18598 SEND_TO_CLIENT_OR_FAIL
18600 "GET_TARGETS tasks given with trash"));
18604 int count, filtered, ret, first;
18614 if (send_find_error_to_client (
"get_targets",
18619 error_send_to_client (error);
18624 if (send_find_error_to_client
18625 (
"get_targets",
"filter",
18628 error_send_to_client (error);
18633 SEND_TO_CLIENT_OR_FAIL
18642 SEND_GET_START (
"target");
18645 char *ssh_name, *ssh_uuid, *smb_name, *smb_uuid;
18646 char *esxi_name, *esxi_uuid, *snmp_name, *snmp_uuid;
18648 const char *hosts, *exclude_hosts, *reverse_lookup_only;
18649 const char *reverse_lookup_unify;
18652 int port_list_trash, max_hosts, port_list_available;
18653 int ssh_credential_available;
18654 int smb_credential_available;
18655 int esxi_credential_available;
18656 int snmp_credential_available;
18664 internal_error_send_to_client (error);
18672 ssh_credential_available = 1;
18678 ssh_credential_available
18681 else if (ssh_credential)
18690 "get_credentials"))
18692 ssh_credential_available = (found > 0);
18699 smb_credential_available = 1;
18705 smb_credential_available
18708 else if (smb_credential)
18717 "get_credentials"))
18719 smb_credential_available = (found > 0);
18726 esxi_credential_available = 1;
18734 esxi_credential_available
18737 else if (esxi_credential)
18746 "get_credentials"))
18748 esxi_credential_available = (found > 0);
18755 snmp_credential_available = 1;
18763 snmp_credential_available
18766 else if (snmp_credential)
18775 "get_credentials"))
18777 snmp_credential_available = (found > 0);
18789 port_list_available = 1;
18790 if (port_list_trash)
18800 port_list_available = (found > 0);
18813 SENDF_TO_CLIENT_OR_FAIL (
"<hosts>%s</hosts>" 18814 "<exclude_hosts>%s</exclude_hosts>" 18815 "<max_hosts>%i</max_hosts>" 18816 "<port_list id=\"%s\">" 18818 "<trash>%i</trash>",
18820 exclude_hosts ? exclude_hosts :
"",
18823 port_list_name ? port_list_name :
"",
18826 if (port_list_available == 0)
18827 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>");
18829 SENDF_TO_CLIENT_OR_FAIL (
"</port_list>" 18830 "<ssh_credential id=\"%s\">" 18833 "<trash>%i</trash>",
18834 ssh_uuid ? ssh_uuid :
"",
18835 ssh_name ? ssh_name :
"",
18836 ssh_port ? ssh_port :
"",
18840 if (ssh_credential_available == 0)
18841 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>");
18843 SENDF_TO_CLIENT_OR_FAIL (
"</ssh_credential>" 18844 "<smb_credential id=\"%s\">" 18846 "<trash>%i</trash>",
18847 smb_uuid ? smb_uuid :
"",
18848 smb_name ? smb_name :
"",
18852 if (smb_credential_available == 0)
18853 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>");
18855 SENDF_TO_CLIENT_OR_FAIL (
"</smb_credential>" 18856 "<esxi_credential id=\"%s\">" 18858 "<trash>%i</trash>",
18859 esxi_uuid ? esxi_uuid :
"",
18860 esxi_name ? esxi_name :
"",
18864 if (esxi_credential_available == 0)
18865 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>");
18867 SENDF_TO_CLIENT_OR_FAIL (
"</esxi_credential>" 18868 "<snmp_credential id=\"%s\">" 18870 "<trash>%i</trash>",
18871 snmp_uuid ? snmp_uuid :
"",
18872 snmp_name ? snmp_name :
"",
18876 if (snmp_credential_available == 0)
18877 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>");
18879 SENDF_TO_CLIENT_OR_FAIL (
"</snmp_credential>" 18880 "<reverse_lookup_only>" 18882 "</reverse_lookup_only>" 18883 "<reverse_lookup_unify>" 18885 "</reverse_lookup_unify>" 18886 "<alive_tests>%s</alive_tests>",
18887 reverse_lookup_only,
18888 reverse_lookup_unify,
18892 SENDF_TO_CLIENT_OR_FAIL (
"<port_range>%s</port_range>",
18900 SEND_TO_CLIENT_OR_FAIL (
"<tasks>");
18903 while (
next (&tasks))
18909 SENDF_TO_CLIENT_OR_FAIL (
"<task id=\"%s\">" 18914 SEND_TO_CLIENT_OR_FAIL (
"</task>");
18916 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 18920 SEND_TO_CLIENT_OR_FAIL (
"</tasks>");
18923 SEND_TO_CLIENT_OR_FAIL (
"</target>");
18949 handle_get_tasks (
omp_parser_t *omp_parser, GError **error)
18952 int count, filtered, ret, first;
18954 const char *filter;
18955 gchar *overrides, *min_qod_str, *clean_filter;
18956 int apply_overrides, min_qod;
18960 SEND_TO_CLIENT_OR_FAIL
18962 "GET_TASKS details given with trash"));
18977 if (send_find_error_to_client (
"get_tasks",
18982 error_send_to_client (error);
18987 if (send_find_error_to_client
18991 error_send_to_client (error);
18996 SEND_TO_CLIENT_OR_FAIL
19005 SEND_GET_START (
"task");
19008 if (get->filt_id && strcmp (get->filt_id,
"0"))
19011 if (filter == NULL)
19013 error_send_to_client (error);
19022 g_free (clean_filter);
19023 apply_overrides = overrides
19024 ? strcmp (overrides,
"0")
19026 g_free (overrides);
19027 if (min_qod_str == NULL
19028 || sscanf (min_qod_str,
"%d", &min_qod) != 1)
19030 SENDF_TO_CLIENT_OR_FAIL (
"<apply_overrides>%i</apply_overrides>",
19036 gchar *progress_xml;
19039 const char *first_report_id, *last_report_id;
19041 gchar *config_name_escaped;
19042 char *task_target_uuid, *task_target_name;
19043 gchar *task_target_name_escaped;
19045 gchar *task_schedule_name_escaped;
19046 char *task_scanner_uuid, *task_scanner_name;
19047 gchar *task_scanner_name_escaped;
19048 gchar *first_report, *last_report;
19049 gchar *second_last_report_id, *second_last_report;
19054 char *owner, *observers;
19055 int target_in_trash, schedule_in_trash, scanner_in_trash;
19056 int debugs, holes = 0, infos = 0, logs, warnings = 0;
19057 int holes_2 = 0, infos_2 = 0, warnings_2 = 0;
19058 int false_positives, task_scanner_type;
19059 int schedule_available, target_available, config_available;
19060 int scanner_available;
19061 double severity = 0, severity_2 = 0;
19064 gchar *in_assets, *max_checks, *max_hosts, *source_iface;
19065 gchar *auto_delete, *auto_delete_data, *assets_apply_overrides;
19066 gchar *assets_min_qod;
19074 internal_error_send_to_client (error);
19083 SENDF_TO_CLIENT_OR_FAIL (
"<task id=\"%s\">" 19088 schedule_available = 1;
19093 if (schedule_in_trash)
19107 g_error (
"%s: GET_TASKS: error finding" 19108 " task schedule, aborting",
19110 schedule_available = (found > 0);
19116 task_schedule_name = (
char*) g_strdup (
"");
19117 schedule_in_trash = 0;
19120 if (schedule_available && schedule)
19123 int period, period_months, duration;
19126 &period_months, &duration) == 0)
19127 SENDF_TO_CLIENT_OR_FAIL (
"<schedule id=\"%s\">" 19129 "<next_time>%s</next_time>" 19130 "<trash>%d</trash>" 19131 "<first_time>%s</first_time>" 19132 "<period>%d</period>" 19136 "<duration>%d</duration>" 19138 "<schedule_periods>" 19140 "</schedule_periods>",
19142 task_schedule_name,
19159 SENDF_TO_CLIENT_OR_FAIL (
"<schedule id=\"%s\">" 19161 "<next_time>%s</next_time>" 19162 "<trash>%d</trash>" 19165 task_schedule_name,
19169 schedule_in_trash);
19172 SENDF_TO_CLIENT_OR_FAIL (
"</task>");
19183 progress_xml = g_strdup_printf
19186 running_report = 0;
19197 = g_strdup_printf (
"%i%s",
progress, host_xml);
19201 if (running_report)
19204 char *scan_start, *scan_end, *current_report_id;
19206 current_report_id =
report_uuid (running_report);
19209 g_error (
"%s: GET_TASKS: error getting timestamp" 19210 " of report, aborting",
19217 "<report id=\"%s\">" 19228 "</current_report>",
19233 free (current_report_id);
19236 g_free (timestamp);
19242 if (first_report_id)
19245 char *scan_start, *scan_end;
19249 &debugs, &holes_2, &infos_2, &logs,
19250 &warnings_2, &false_positives,
19251 &severity_2, apply_overrides,
19253 g_error (
"%s: GET_TASKS: error getting counts for" 19254 " first report, aborting",
19258 g_error (
"%s: GET_TASKS: failed to get timestamp of" 19259 " first report, aborting",
19265 first_report = g_strdup_printf (
"<first_report>" 19266 "<report id=\"%s\">" 19270 "<scan_start>%s</scan_start>" 19271 "<scan_end>%s</scan_end>" 19273 "<debug>%i</debug>" 19277 "<warning>%i</warning>" 19280 "</false_positive>" 19300 g_free (timestamp);
19303 first_report = g_strdup (
"");
19306 if (second_last_report_id)
19309 char *scan_start, *scan_end;
19313 if (((first_report_id == NULL)
19314 || (strcmp (second_last_report_id, first_report_id)))
19316 &debugs, &holes_2, &infos_2,
19317 &logs, &warnings_2,
19318 &false_positives, &severity_2,
19321 g_error (
"%s: GET_TASKS: error getting counts for" 19322 " second report, aborting",
19326 g_error (
"%s: GET_TASKS: error getting timestamp of" 19327 " second report, aborting",
19333 second_last_report = g_strdup_printf
19334 (
"<second_last_report>" 19335 "<report id=\"%s\">" 19336 "<timestamp>%s</timestamp>" 19337 "<scan_start>%s</scan_start>" 19338 "<scan_end>%s</scan_end>" 19340 "<debug>%i</debug>" 19344 "<warning>%i</warning>" 19347 "</false_positive>" 19349 "<severity>%1.1f</severity>" 19351 "</second_last_report>",
19352 second_last_report_id,
19365 g_free (timestamp);
19368 second_last_report = g_strdup (
"");
19371 if (last_report_id)
19374 char *scan_start, *scan_end;
19378 if ((first_report_id == NULL)
19379 || (second_last_report_id == NULL)
19380 || (strcmp (last_report_id, first_report_id)
19381 && strcmp (last_report_id,
19382 second_last_report_id)))
19386 &debugs, &holes, &infos, &logs,
19387 &warnings, &false_positives, &severity,
19390 g_error (
"%s: GET_TASKS: error getting counts for" 19391 " last report, aborting",
19398 warnings = warnings_2;
19399 severity = severity_2;
19403 g_error (
"%s: GET_TASKS: error getting timestamp for" 19404 " last report, aborting",
19410 last_report = g_strdup_printf (
"<last_report>" 19411 "<report id=\"%s\">" 19412 "<timestamp>%s</timestamp>" 19413 "<scan_start>%s</scan_start>" 19414 "<scan_end>%s</scan_end>" 19416 "<debug>%i</debug>" 19420 "<warning>%i</warning>" 19423 "</false_positive>" 19443 g_free (timestamp);
19446 last_report = g_strdup (
"");
19448 g_free (second_last_report_id);
19454 target_available = 1;
19455 if (target_in_trash)
19469 g_error (
"%s: GET_TASKS: error finding task target," 19472 target_available = (found > 0);
19476 task_target_uuid = NULL;
19477 task_target_name = NULL;
19479 config_available = 1;
19488 g_error (
"%s: GET_TASKS: error finding task config," 19491 config_available = (found > 0);
19493 schedule_available = 1;
19498 if (schedule_in_trash)
19512 g_error (
"%s: GET_TASKS: error finding" 19513 " task schedule, aborting",
19515 schedule_available = (found > 0);
19521 task_schedule_name = (
char*) g_strdup (
"");
19522 schedule_in_trash = 0;
19524 scanner_available = 1;
19533 if (scanner_in_trash)
19540 (task_scanner_uuid, &found,
"get_scanners"))
19541 g_error (
"%s: GET_TASKS: error finding" 19542 " task scanner, aborting",
19544 scanner_available = (found > 0);
19550 task_scanner_uuid = g_strdup (
"");
19551 task_scanner_name = g_strdup (
"");
19552 task_scanner_type = 0;
19553 scanner_in_trash = 0;
19556 config_name_escaped
19558 ? g_markup_escape_text (config_name, -1)
19560 task_target_name_escaped
19562 ? g_markup_escape_text (task_target_name, -1)
19564 task_scanner_name_escaped
19565 = task_scanner_name
19566 ? g_markup_escape_text (task_scanner_name, -1)
19568 task_schedule_name_escaped
19569 = task_schedule_name
19570 ? g_markup_escape_text (task_schedule_name, -1)
19572 response = g_strdup_printf
19573 (
"<alterable>%i</alterable>" 19574 "<config id=\"%s\">" 19577 "<trash>%i</trash>" 19580 "<target id=\"%s\">" 19582 "<trash>%i</trash>" 19585 "<hosts_ordering>%s</hosts_ordering>" 19586 "<scanner id='%s'>" 19589 "<trash>%i</trash>" 19592 "<status>%s</status>" 19593 "<progress>%s</progress>" 19595 "%u<finished>%u</finished>" 19597 "<trend>%s</trend>" 19598 "<schedule id=\"%s\">" 19600 "<next_time>%s</next_time>" 19601 "<trash>%i</trash>" 19604 "<schedule_periods>%i</schedule_periods>" 19610 config_name_escaped ?:
"",
19613 config_available ?
"" :
"<permissions/>",
19614 task_target_uuid ?:
"",
19615 task_target_name_escaped ?:
"",
19617 target_available ?
"" :
"<permissions/>",
19620 task_scanner_name_escaped,
19623 scanner_available ?
"" :
"<permissions/>",
19629 (&tasks, holes, warnings, infos, severity,
19630 holes_2, warnings_2, infos_2, severity_2),
19632 task_schedule_name_escaped,
19635 schedule_available ?
"" :
"<permissions/>",
19640 second_last_report);
19641 g_free (config_name);
19643 g_free (config_name_escaped);
19644 free (task_target_name);
19645 free (task_target_uuid);
19646 g_free (task_target_name_escaped);
19647 g_free (progress_xml);
19649 g_free (first_report);
19650 g_free (last_report);
19651 g_free (second_last_report);
19653 g_free (task_schedule_name);
19654 g_free (task_schedule_name_escaped);
19655 g_free (task_scanner_uuid);
19656 g_free (task_scanner_name);
19657 g_free (task_scanner_name_escaped);
19658 if (send_to_client (response,
19664 error_send_to_client (error);
19670 SENDF_TO_CLIENT_OR_FAIL
19681 while (
next (&groups))
19682 SENDF_TO_CLIENT_OR_FAIL
19683 (
"<group id=\"%s\">" 19691 while (
next (&roles))
19692 SENDF_TO_CLIENT_OR_FAIL
19693 (
"<role id=\"%s\">" 19700 SENDF_TO_CLIENT_OR_FAIL (
"</observers>");
19703 while (
next (&alerts))
19713 SENDF_TO_CLIENT_OR_FAIL
19714 (
"<alert id=\"%s\">" 19720 SENDF_TO_CLIENT_OR_FAIL
19723 SENDF_TO_CLIENT_OR_FAIL
19732 SENDF_TO_CLIENT_OR_FAIL (
"<average_duration>" 19734 "</average_duration>",
19748 send_reports (index,
19755 SENDF_TO_CLIENT_OR_FAIL (
"<result_count>%i</result_count>",
19760 (index,
"assets_apply_overrides");
19768 SENDF_TO_CLIENT_OR_FAIL
19772 "Maximum concurrently executed NVTs per host" 19774 "<scanner_name>max_checks</scanner_name>" 19775 "<value>%s</value>" 19779 "Maximum concurrently scanned hosts" 19781 "<scanner_name>max_hosts</scanner_name>" 19782 "<value>%s</value>" 19786 "Network Source Interface" 19788 "<scanner_name>source_iface</scanner_name>" 19789 "<value>%s</value>" 19793 "Add results to Asset Management" 19795 "<scanner_name>in_assets</scanner_name>" 19796 "<value>%s</value>" 19800 "Apply Overrides when adding Assets" 19802 "<scanner_name>assets_apply_overrides</scanner_name>" 19803 "<value>%s</value>" 19807 "Min QOD when adding Assets" 19809 "<scanner_name>assets_min_qod</scanner_name>" 19810 "<value>%s</value>" 19814 "Auto Delete Reports" 19816 "<scanner_name>auto_delete</scanner_name>" 19817 "<value>%s</value>" 19821 "Auto Delete Reports Data" 19823 "<scanner_name>auto_delete_data</scanner_name>" 19824 "<value>%s</value>" 19828 max_checks ? max_checks :
"4",
19829 max_hosts ? max_hosts :
"20",
19830 source_iface ? source_iface :
"",
19831 in_assets ? in_assets :
"yes",
19832 assets_apply_overrides ? assets_apply_overrides :
"yes",
19836 auto_delete ? auto_delete :
"0",
19837 auto_delete_data ? auto_delete_data :
"0");
19839 g_free (in_assets);
19840 g_free (max_checks);
19841 g_free (max_hosts);
19842 g_free (source_iface);
19848 g_free (min_qod_str);
19865 handle_get_users (
omp_parser_t *omp_parser, GError **error)
19868 int count, filtered, ret, first;
19878 if (send_find_error_to_client (
"get_users",
19883 error_send_to_client (error);
19888 if (send_find_error_to_client
19892 error_send_to_client (error);
19897 SEND_TO_CLIENT_OR_FAIL
19906 SEND_GET_START (
"user");
19910 const char *hosts, *ifaces;
19911 int hosts_allow, ifaces_allow;
19919 internal_error_send_to_client (error);
19928 SENDF_TO_CLIENT_OR_FAIL (
"<hosts allow=\"%i\">%s</hosts>" 19929 "<sources><source>%s</source></sources>",
19931 hosts ? hosts :
"",
19939 SENDF_TO_CLIENT_OR_FAIL (
"<ifaces allow=\"%i\">%s</ifaces>",
19941 ifaces ? ifaces :
"");
19946 while (
next (&roles))
19948 SENDF_TO_CLIENT_OR_FAIL (
"<role id=\"%s\">" 19953 SEND_TO_CLIENT_OR_FAIL (
"</role>");
19955 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 19960 SEND_TO_CLIENT_OR_FAIL (
"<groups>");
19963 while (
next (&groups))
19965 SENDF_TO_CLIENT_OR_FAIL (
"<group id=\"%s\">" 19970 SEND_TO_CLIENT_OR_FAIL (
"</group>");
19972 SEND_TO_CLIENT_OR_FAIL (
"<permissions/>" 19976 SEND_TO_CLIENT_OR_FAIL (
"</groups>" 19997 handle_get_version (
omp_parser_t *omp_parser, GError **error)
19999 SEND_TO_CLIENT_OR_FAIL (
"<get_version_response" 20002 "<version>" OMP_VERSION
"</version>" 20003 "</get_version_response>");
20017 handle_sync_config (
omp_parser_t *omp_parser, GError **error)
20022 SEND_TO_CLIENT_OR_FAIL
20024 "SYNC_CONFIG requires a config_id attribute"));
20034 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"sync_config"));
20037 if (send_find_error_to_client
20040 error_send_to_client (error);
20048 (
"sync_config",
"Config not of type OSP"));
20054 (
"sync_config",
"Config has no scanner"));
20061 "Couldn't get parameters from scanner"));
20066 SEND_TO_CLIENT_OR_FAIL
20092 handle_create_scanner (
omp_parser_t *omp_parser, GError **error)
20107 log_event (
"scanner",
"scanner", uuid,
"created");
20109 goto create_scanner_leave;
20112 SEND_TO_CLIENT_OR_FAIL
20114 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20115 goto create_scanner_leave;
20117 if (send_find_error_to_client (
"create_scanner",
"scanner",
20120 error_send_to_client (error);
20121 goto create_scanner_leave;
20123 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20124 goto create_scanner_leave;
20126 SEND_TO_CLIENT_OR_FAIL
20129 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20130 goto create_scanner_leave;
20132 SEND_TO_CLIENT_OR_FAIL
20134 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20135 goto create_scanner_leave;
20138 SEND_TO_CLIENT_OR_FAIL
20140 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20141 goto create_scanner_leave;
20148 SEND_TO_CLIENT_OR_FAIL
20150 goto create_scanner_leave;
20156 SEND_TO_CLIENT_OR_FAIL
20158 goto create_scanner_leave;
20169 SENDF_TO_CLIENT_OR_FAIL
20171 log_event (
"scanner",
"Scanner", uuid,
"created");
20176 SEND_TO_CLIENT_OR_FAIL
20178 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20181 SEND_TO_CLIENT_OR_FAIL
20183 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20186 if (send_find_error_to_client (
"create_scanner",
"credential",
20190 error_send_to_client (error);
20193 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20196 SEND_TO_CLIENT_OR_FAIL
20198 "Credential must be of type 'up'" 20199 " (username + password)"));
20200 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20203 SEND_TO_CLIENT_OR_FAIL
20205 "Credential must be of type 'cc'" 20206 " (client certificate)"));
20207 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20210 SEND_TO_CLIENT_OR_FAIL
20212 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20216 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20221 log_event_fail (
"scanner",
"Scanner", NULL,
"created");
20225 create_scanner_leave:
20237 handle_modify_scanner (
omp_parser_t *omp_parser, GError **error)
20242 SEND_TO_CLIENT_OR_FAIL
20244 goto modify_scanner_leave;
20254 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_scanner"));
20259 if (send_find_error_to_client (
"modify_scanner",
"scanner",
20263 error_send_to_client (error);
20270 SEND_TO_CLIENT_OR_FAIL
20272 "scanner with new name exists already"));
20277 SEND_TO_CLIENT_OR_FAIL
20283 SEND_TO_CLIENT_OR_FAIL
20289 if (send_find_error_to_client (
"create_scanner",
"credential",
20293 error_send_to_client (error);
20300 SEND_TO_CLIENT_OR_FAIL
20302 "Credential must be of type 'cc'" 20303 " (client certificate)"));
20308 SEND_TO_CLIENT_OR_FAIL
20310 "Credential must be of type 'up'" 20311 " (username + password)"));
20316 SEND_TO_CLIENT_OR_FAIL
20328 modify_scanner_leave:
20340 handle_modify_config (
omp_parser_t *omp_parser, GError **error)
20347 "Permission denied"));
20349 goto modify_config_leave;
20354 SEND_TO_CLIENT_OR_FAIL
20356 "MODIFY_CONFIG requires a config_id attribute"));
20365 SEND_TO_CLIENT_OR_FAIL
20367 "MODIFY_CONFIG requires either a PREFERENCE or" 20368 " an NVT_SELECTION or a FAMILY_SELECTION"));
20371 else if (config == 0)
20373 if (send_find_error_to_client (
"modify_config",
"config",
20376 error_send_to_client (error);
20387 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_config"));
20388 log_event (
"config",
"Scan config",
20390 goto modify_config_leave;
20392 SEND_TO_CLIENT_OR_FAIL
20394 log_event_fail (
"config",
"Scan Config",
20396 goto modify_config_leave;
20399 SEND_TO_CLIENT_OR_FAIL
20401 "MODIFY_CONFIG PREFERENCE requires at" 20402 " least one of the VALUE and NVT elements"));
20403 goto modify_config_leave;
20406 SEND_TO_CLIENT_OR_FAIL
20408 log_event_fail (
"config",
"Scan Config",
20410 goto modify_config_leave;
20424 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_config"));
20425 log_event (
"config",
"Scan config",
20427 goto modify_config_leave;
20429 SEND_TO_CLIENT_OR_FAIL
20431 log_event_fail (
"config",
"Scan Config",
20433 goto modify_config_leave;
20436 SEND_TO_CLIENT_OR_FAIL
20438 "MODIFY_CONFIG PREFERENCE requires at" 20439 " least one of the VALUE and NVT elements"));
20440 goto modify_config_leave;
20443 SEND_TO_CLIENT_OR_FAIL
20445 log_event_fail (
"config",
"Scan Config",
20447 goto modify_config_leave;
20457 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_config"));
20458 goto modify_config_leave;
20460 SEND_TO_CLIENT_OR_FAIL
20462 "MODIFY_CONFIG name must be unique"));
20463 goto modify_config_leave;
20465 SEND_TO_CLIENT_OR_FAIL
20467 "MODIFY_CONFIG scanner not found"));
20468 goto modify_config_leave;
20470 SEND_TO_CLIENT_OR_FAIL
20472 log_event_fail (
"config",
"Scan Config",
20474 goto modify_config_leave;
20477 goto modify_config_leave;
20480 goto modify_config_leave;
20484 SEND_TO_CLIENT_OR_FAIL
20486 "MODIFY_CONFIG PREFERENCE requires a NAME element"));
20493 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_config"));
20494 goto modify_config_leave;
20496 SEND_TO_CLIENT_OR_FAIL
20498 goto modify_config_leave;
20500 SEND_TO_CLIENT_OR_FAIL
20502 goto modify_config_leave;
20505 goto modify_config_leave;
20508 goto modify_config_leave;
20511 modify_config_leave:
20536 omp_xml_handle_end_element ( GMarkupParseContext* context,
20537 const gchar *element_name,
20538 gpointer user_data,
20542 int (*write_to_client) (
const char *,
void*)
20543 = (
int (*) (
const char *,
void*)) omp_parser->
client_writer;
20548 g_debug (
" XML end: %s\n", element_name);
20560 else switch (client_state)
20572 g_warning (
"%s: failed to load tasks\n", __FUNCTION__);
20573 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
20574 "Manager failed to load tasks.");
20581 const char *timezone, *severity;
20589 if (setenv (
"TZ", timezone, 1) == -1)
20592 g_warning (
"Timezone setting failure for %s",
20594 SEND_TO_CLIENT_OR_FAIL
20604 pw_warning = openvas_validate_password
20609 SENDF_TO_CLIENT_OR_FAIL
20610 (
"<authenticate_response" 20614 "<timezone>%s</timezone>" 20615 "<severity>%s</severity>" 20616 "<password_warning>%s</password_warning>" 20617 "</authenticate_response>",
20623 pw_warning ? pw_warning :
"");
20625 SENDF_TO_CLIENT_OR_FAIL
20626 (
"<authenticate_response" 20630 "<timezone>%s</timezone>" 20631 "<severity>%s</severity>" 20632 "</authenticate_response>",
20644 g_warning (
"Authentication failure for '%s' from %s",
20651 g_warning (
"Authentication failure for '%s' from %s",
20655 "Permission denied"));
20660 g_warning (
"Authentication failure for '%s' from %s",
20670 assert (strcasecmp (
"CREDENTIALS", element_name) == 0);
20675 assert (strcasecmp (
"USERNAME", element_name) == 0);
20680 assert (strcasecmp (
"PASSWORD", element_name) == 0);
20687 assert (strcasecmp (
"COMMANDS", element_name) == 0);
20688 SENDF_TO_CLIENT_OR_FAIL (
"</commands_response>");
20695 assert (strcasecmp (
"DELETE_ASSET", element_name) == 0);
20703 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"delete_asset"));
20704 log_event (
"asset",
"Asset",
20708 SEND_TO_CLIENT_OR_FAIL
20710 "Asset is in use"));
20711 log_event_fail (
"asset",
"Asset",
20716 if (send_find_error_to_client
20722 error_send_to_client (error);
20725 log_event_fail (
"asset",
"Asset",
20730 SEND_TO_CLIENT_OR_FAIL
20732 "Attempt to delete a predefined asset"));
20733 log_event_fail (
"asset",
"Asset",
20738 SEND_TO_CLIENT_OR_FAIL
20740 "DELETE_ASSET requires an asset_id or a" 20742 log_event_fail (
"asset",
"Asset",
20747 SEND_TO_CLIENT_OR_FAIL
20749 "Permission denied"));
20750 log_event_fail (
"asset",
"Asset",
20755 SEND_TO_CLIENT_OR_FAIL
20757 log_event_fail (
"asset",
"Asset",
20762 SEND_TO_CLIENT_OR_FAIL
20764 "DELETE_ASSET requires an asset_id attribute"));
20770 CASE_DELETE (CREDENTIAL, credential,
"Credential");
20775 CASE_DELETE (PERMISSION, permission,
"Permission");
20777 CASE_DELETE (PORT_RANGE, port_range,
"Port range");
20779 CASE_DELETE (REPORT_FORMAT, report_format,
"Report format");
20793 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"delete_task"));
20800 "requested for delete");
20803 SEND_TO_CLIENT_OR_FAIL
20805 "Attempt to delete a hidden task"));
20810 if (send_find_error_to_client
20814 error_send_to_client (error);
20819 SEND_TO_CLIENT_OR_FAIL
20821 "Permission denied"));
20832 g_debug (
"delete_task failed\n");
20837 log_event_fail (
"task",
"Task",
20842 SEND_TO_CLIENT_OR_FAIL
20844 log_event_fail (
"task",
"Task",
20851 SEND_TO_CLIENT_OR_FAIL
20853 "DELETE_TASK requires a task_id attribute"));
20859 assert (strcasecmp (
"DELETE_USER", element_name) == 0);
20869 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"delete_user"));
20874 if (send_find_error_to_client (
"delete_user",
20881 error_send_to_client (error);
20888 SEND_TO_CLIENT_OR_FAIL
20890 "Attempt to delete a predefined" 20894 SEND_TO_CLIENT_OR_FAIL
20896 "User has an active task"));
20899 SEND_TO_CLIENT_OR_FAIL
20901 "Attempt to delete current user"));
20904 if (send_find_error_to_client (
"delete_user",
"inheriting user",
20908 error_send_to_client (error);
20913 SEND_TO_CLIENT_OR_FAIL
20915 "Inheritor is the same as the deleted" 20919 SEND_TO_CLIENT_OR_FAIL
20921 "Invalid inheritor."));
20924 SEND_TO_CLIENT_OR_FAIL
20926 "Resources owned by the user are still" 20927 " in use by others."));
20930 SEND_TO_CLIENT_OR_FAIL
20932 "Permission denied"));
20942 SEND_TO_CLIENT_OR_FAIL
20944 "DELETE_USER requires a user_id attribute"));
20953 SEND_TO_CLIENT_OR_FAIL
20955 "Permission denied"));
20960 SEND_TO_CLIENT_OR_FAIL (
"<describe_auth_response" 20963 "<group name=\"method:file\">" 20964 "<auth_conf_setting>" 20965 "<key>enable</key>" 20966 "<value>true</value>" 20967 "</auth_conf_setting>" 20968 "<auth_conf_setting>" 20971 "</auth_conf_setting>" 20974 if (openvas_auth_ldap_enabled ())
20976 gchar *ldap_host, *ldap_authdn, *ldap_cacert;
20977 int ldap_enabled, ldap_allow_plaintext;
20979 &ldap_allow_plaintext, &ldap_cacert);
20980 SENDF_TO_CLIENT_OR_FAIL
20981 (
"<group name=\"method:ldap_connect\">" 20982 "<auth_conf_setting>" 20983 "<key>enable</key>" 20984 "<value>%s</value>" 20985 "</auth_conf_setting>" 20986 "<auth_conf_setting>" 20989 "</auth_conf_setting>" 20990 "<auth_conf_setting>" 20991 "<key>ldaphost</key>" 20992 "<value>%s</value>" 20993 "</auth_conf_setting>" 20994 "<auth_conf_setting>" 20995 "<key>authdn</key>" 20996 "<value>%s</value>" 20997 "</auth_conf_setting>" 20998 "<auth_conf_setting>" 20999 "<key>allow-plaintext</key>" 21000 "<value>%i</value>" 21001 "</auth_conf_setting>",
21002 ldap_enabled ?
"true" :
"false",
21005 ldap_allow_plaintext);
21007 g_free (ldap_host);
21008 g_free (ldap_authdn);
21012 time_t activation_time, expiration_time;
21013 gchar *activation_time_str, *expiration_time_str;
21014 gchar *fingerprint, *issuer;
21016 SENDF_TO_CLIENT_OR_FAIL
21017 (
"<auth_conf_setting>" 21018 "<key>cacert</key>" 21019 "<value>%s</value>",
21023 &expiration_time, &fingerprint,
21030 SENDF_TO_CLIENT_OR_FAIL
21031 (
"<certificate_info>" 21032 "<time_status>%s</time_status>" 21033 "<activation_time>%s</activation_time>" 21034 "<expiration_time>%s</expiration_time>" 21035 "<md5_fingerprint>%s</md5_fingerprint>" 21036 "<issuer>%s</issuer>" 21037 "</certificate_info>",
21039 activation_time_str,
21040 expiration_time_str,
21043 g_warning (
"free");
21044 g_free (activation_time_str);
21045 g_free (expiration_time_str);
21046 g_free (fingerprint);
21049 SEND_TO_CLIENT_OR_FAIL (
"</auth_conf_setting>");
21051 g_free (ldap_cacert);
21054 SEND_TO_CLIENT_OR_FAIL (
"</group>");
21057 if (openvas_auth_radius_enabled ())
21059 char *radius_host, *radius_key;
21060 int radius_enabled;
21063 SENDF_TO_CLIENT_OR_FAIL
21064 (
"<group name=\"method:radius_connect\">" 21065 "<auth_conf_setting>" 21066 "<key>enable</key>" 21067 "<value>%s</value>" 21068 "</auth_conf_setting>" 21069 "<auth_conf_setting>" 21070 "<key>radiushost</key>" 21071 "<value>%s</value>" 21072 "</auth_conf_setting>" 21073 "<auth_conf_setting>" 21074 "<key>radiuskey</key>" 21075 "<value>%s</value>" 21076 "</auth_conf_setting>" 21078 radius_enabled ?
"true" :
"false", radius_host, radius_key);
21079 g_free (radius_host);
21080 g_free (radius_key);
21083 SEND_TO_CLIENT_OR_FAIL (
"</describe_auth_response>");
21090 assert (strcasecmp (
"GET_AGENTS", element_name) == 0);
21091 return handle_get_agents (omp_parser, error);
21094 assert (strcasecmp (
"GET_AGGREGATES", element_name) == 0);
21095 return handle_get_aggregates (omp_parser, error);
21102 assert (strcasecmp (
"GET_ALERTS", element_name) == 0);
21103 return handle_get_alerts (omp_parser, error);
21106 assert (strcasecmp (
"GET_ASSETS", element_name) == 0);
21107 return handle_get_assets (omp_parser, error);
21110 assert (strcasecmp (
"GET_CONFIGS", element_name) == 0);
21111 return handle_get_configs (omp_parser, error);
21114 assert (strcasecmp (
"GET_CREDENTIALS", element_name) == 0);
21115 return handle_get_credentials (omp_parser, error);
21118 assert (strcasecmp (
"GET_FEEDS", element_name) == 0);
21119 return handle_get_feeds (omp_parser, error);
21122 assert (strcasecmp (
"GET_FILTERS", element_name) == 0);
21123 return handle_get_filters (omp_parser, error);
21126 assert (strcasecmp (
"GET_GROUPS", element_name) == 0);
21127 return handle_get_groups (omp_parser, error);
21130 assert (strcasecmp (
"GET_INFO", element_name) == 0);
21131 return handle_get_info (omp_parser, error);
21134 assert (strcasecmp (
"GET_NOTES", element_name) == 0);
21135 return handle_get_notes (omp_parser, error);
21138 assert (strcasecmp (
"GET_NVTS", element_name) == 0);
21139 return handle_get_nvts (omp_parser, error);
21142 assert (strcasecmp (
"GET_NVT_FAMILIES", element_name) == 0);
21143 return handle_get_nvt_families (omp_parser, error);
21146 assert (strcasecmp (
"GET_OVERRIDES", element_name) == 0);
21147 return handle_get_overrides (omp_parser, error);
21150 assert (strcasecmp (
"GET_PERMISSIONS", element_name) == 0);
21151 return handle_get_permissions (omp_parser, error);
21154 assert (strcasecmp (
"GET_PORT_LISTS", element_name) == 0);
21155 return handle_get_port_lists (omp_parser, error);
21158 assert (strcasecmp (
"GET_PREFERENCES", element_name) == 0);
21159 return handle_get_preferences (omp_parser, error);
21162 assert (strcasecmp (
"GET_REPORTS", element_name) == 0);
21163 return handle_get_reports (omp_parser, error);
21166 assert (strcasecmp (
"GET_REPORT_FORMATS", element_name) == 0);
21167 return handle_get_report_formats (omp_parser, error);
21170 assert (strcasecmp (
"GET_RESULTS", element_name) == 0);
21171 return handle_get_results (omp_parser, error);
21174 assert (strcasecmp (
"GET_ROLES", element_name) == 0);
21175 return handle_get_roles (omp_parser, error);
21178 assert (strcasecmp (
"GET_SCANNERS", element_name) == 0);
21179 return handle_get_scanners (omp_parser, error);
21182 assert (strcasecmp (
"GET_SCHEDULES", element_name) == 0);
21183 return handle_get_schedules (omp_parser, error);
21186 assert (strcasecmp (
"GET_SETTINGS", element_name) == 0);
21187 return handle_get_settings (omp_parser, error);
21190 assert (strcasecmp (
"GET_SYSTEM_REPORTS", element_name) == 0);
21191 return handle_get_system_reports (omp_parser, error);
21194 assert (strcasecmp (
"GET_TAGS", element_name) == 0);
21195 return handle_get_tags (omp_parser, error);
21198 assert (strcasecmp (
"GET_TARGETS", element_name) == 0);
21199 return handle_get_targets (omp_parser, error);
21202 assert (strcasecmp (
"GET_TASKS", element_name) == 0);
21203 return handle_get_tasks (omp_parser, error);
21206 assert (strcasecmp (
"GET_USERS", element_name) == 0);
21207 return handle_get_users (omp_parser, error);
21211 assert (strcasecmp (
"GET_VERSION", element_name) == 0);
21212 return handle_get_version (omp_parser, error);
21218 "Permission denied"));
21228 SEND_TO_CLIENT_OR_FAIL (
"<help_response" 21232 while ((*commands).name)
21234 if (command_disabled (omp_parser, (*commands).name) == 0)
21237 SENDF_TO_CLIENT_OR_FAIL (
" %s",
21239 for (count = 23 - strlen ((*commands).name);
21242 SEND_TO_CLIENT_OR_FAIL (
" ");
21243 SENDF_TO_CLIENT_OR_FAIL (
"%s\n",
21244 (*commands).summary);
21248 SEND_TO_CLIENT_OR_FAIL (
"</help_response>");
21253 SEND_TO_CLIENT_OR_FAIL (
"<help_response" 21258 " extension=\"xml\"" 21259 " content_type=\"text/xml\">");
21261 while ((*commands).name)
21263 if ((command_disabled (omp_parser, (*commands).name) == 0)
21266 SENDF_TO_CLIENT_OR_FAIL (
"<command>" 21268 "<summary>%s</summary>" 21271 (*commands).summary);
21274 SEND_TO_CLIENT_OR_FAIL (
"</schema>" 21275 "</help_response>");
21279 gchar *extension, *content_type, *output;
21292 if (send_find_error_to_client (
"help",
"schema_format",
21295 error_send_to_client (error);
21303 SEND_TO_CLIENT_OR_FAIL
21305 "Brief help is only available in XML."));
21318 SENDF_TO_CLIENT_OR_FAIL (
"<help_response" 21323 " extension=\"%s\"" 21324 " content_type=\"%s\">",
21330 g_free (extension);
21331 g_free (content_type);
21333 if (output && strlen (output))
21342 base64 = g_base64_encode ((guchar*) output, output_len);
21343 if (send_to_client (base64,
21345 write_to_client_data))
21349 error_send_to_client (error);
21357 if (send_to_client (output,
21359 write_to_client_data))
21362 error_send_to_client (error);
21368 SEND_TO_CLIENT_OR_FAIL (
"</schema>" 21369 "</help_response>");
21379 assert (strcasecmp (
"CREATE_AGENT", element_name) == 0);
21393 log_event (
"agent",
"Agent", uuid,
"created");
21398 SEND_TO_CLIENT_OR_FAIL
21400 "Agent exists already"));
21401 log_event_fail (
"agent",
"Agent", NULL,
"created");
21404 if (send_find_error_to_client (
"create_agent",
"agent",
21408 error_send_to_client (error);
21411 log_event_fail (
"agent",
"Agent", NULL,
"created");
21414 SEND_TO_CLIENT_OR_FAIL
21416 "Permission denied"));
21417 log_event_fail (
"agent",
"Agent", NULL,
"created");
21421 SEND_TO_CLIENT_OR_FAIL
21423 log_event_fail (
"agent",
"Agent", NULL,
"created");
21427 SEND_TO_CLIENT_OR_FAIL
21429 "CREATE_AGENT requires a NAME"));
21432 SEND_TO_CLIENT_OR_FAIL
21434 "CREATE_AGENT name must be at" 21435 " least one character long"));
21439 SEND_TO_CLIENT_OR_FAIL
21441 "CREATE_AGENT installer must be at" 21442 " least one byte long"));
21459 log_event (
"agent",
"Agent", uuid,
"created");
21464 SEND_TO_CLIENT_OR_FAIL
21466 "Agent exists already"));
21469 SEND_TO_CLIENT_OR_FAIL
21471 "Name may only contain alphanumeric" 21475 SEND_TO_CLIENT_OR_FAIL
21477 "Permission denied"));
21482 SEND_TO_CLIENT_OR_FAIL
21503 assert (strcasecmp (
"CREATE_ASSET", element_name) == 0);
21507 SEND_TO_CLIENT_OR_FAIL
21509 "CREATE_ASSET requires a report ID or host" 21517 log_event (
"asset",
"Asset", NULL,
"created");
21520 SEND_TO_CLIENT_OR_FAIL
21522 "Asset exists already"));
21523 log_event_fail (
"asset",
"Asset", NULL,
"created");
21526 SEND_TO_CLIENT_OR_FAIL
21528 "Name may only contain alphanumeric" 21530 log_event_fail (
"asset",
"Asset", NULL,
"created");
21533 SEND_TO_CLIENT_OR_FAIL
21535 "Permission denied"));
21536 log_event_fail (
"asset",
"Asset", NULL,
"created");
21541 SEND_TO_CLIENT_OR_FAIL
21543 log_event_fail (
"asset",
"Asset", NULL,
"created");
21556 log_event (
"asset",
"Asset", uuid,
"created");
21561 SEND_TO_CLIENT_OR_FAIL
21563 "Asset exists already"));
21564 log_event_fail (
"asset",
"Asset", NULL,
"created");
21567 SEND_TO_CLIENT_OR_FAIL
21569 "Name may only contain alphanumeric" 21571 log_event_fail (
"asset",
"Asset", NULL,
"created");
21574 SEND_TO_CLIENT_OR_FAIL
21576 "Permission denied"));
21577 log_event_fail (
"asset",
"Asset", NULL,
"created");
21582 SEND_TO_CLIENT_OR_FAIL
21584 log_event_fail (
"asset",
"Asset", NULL,
"created");
21603 assert (strcasecmp (
"CREATE_CONFIG", element_name) == 0);
21626 SENDF_TO_CLIENT_OR_FAIL
21627 (
"<create_config_response" 21633 "<config id=\"%s\"><name>%s</name></config>" 21634 "</create_config_response>",
21638 log_event (
"config",
"Scan config", uuid,
"created");
21644 SEND_TO_CLIENT_OR_FAIL
21646 "Config exists already"));
21647 log_event_fail (
"config",
"Scan config", NULL,
"created");
21650 SEND_TO_CLIENT_OR_FAIL
21652 "Permission denied"));
21653 log_event_fail (
"config",
"Scan config", NULL,
"created");
21656 SEND_TO_CLIENT_OR_FAIL
21658 log_event_fail (
"config",
"Scan config", NULL,
"created");
21661 SEND_TO_CLIENT_OR_FAIL
21663 "CREATE_CONFIG import name must be at" 21664 " least one character long"));
21665 log_event_fail (
"config",
"Scan config", NULL,
"created");
21668 SEND_TO_CLIENT_OR_FAIL
21670 "Error in NVT_SELECTORS element."));
21671 log_event_fail (
"config",
"Scan config", NULL,
"created");
21674 SEND_TO_CLIENT_OR_FAIL
21676 "Error in PREFERENCES element."));
21677 log_event_fail (
"config",
"Scan config", NULL,
"created");
21691 (
"create_config"), uuid);
21692 log_event (
"config",
"Scan config", uuid,
"created");
21695 SENDF_TO_CLIENT_OR_FAIL
21697 "Failed to find scanner"));
21700 SENDF_TO_CLIENT_OR_FAIL
21702 "Scanner not of type OSP"));
21705 SENDF_TO_CLIENT_OR_FAIL
21707 "Config name exists already"));
21710 SENDF_TO_CLIENT_OR_FAIL
21712 "Failed to get params from scanner" 21713 " - the scanner may be offline or not" 21714 " configured correctly"));
21717 SEND_TO_CLIENT_OR_FAIL
21719 "Permission denied"));
21720 log_event_fail (
"config",
"Scan config", NULL,
"created");
21724 SEND_TO_CLIENT_OR_FAIL
21726 log_event_fail (
"config",
"Scan config", NULL,
"created");
21735 log_event_fail (
"config",
"Scan config", NULL,
"created");
21736 SEND_TO_CLIENT_OR_FAIL
21738 "CREATE_CONFIG name and base config to copy" 21739 " must be at least one character long"));
21743 log_event_fail (
"config",
"Scan config", NULL,
"created");
21744 SEND_TO_CLIENT_OR_FAIL
21746 "CREATE_CONFIG requires a COPY element"));
21758 log_event (
"config",
"Scan config", uuid,
"created");
21763 SEND_TO_CLIENT_OR_FAIL
21765 "Config exists already"));
21766 log_event_fail (
"config",
"Scan config", NULL,
"created");
21769 if (send_find_error_to_client (
"create_config",
"config",
21773 error_send_to_client (error);
21776 log_event_fail (
"config",
"Config", NULL,
"created");
21779 SEND_TO_CLIENT_OR_FAIL
21781 "Permission denied"));
21782 log_event_fail (
"config",
"Scan config", NULL,
"created");
21786 SEND_TO_CLIENT_OR_FAIL
21788 log_event_fail (
"config",
"Scan config", NULL,
"created");
21801 assert (strcasecmp (
"GET_CONFIGS_RESPONSE", element_name) == 0);
21812 assert (strcasecmp (
"NVT_SELECTOR", element_name) == 0);
21842 assert (strcasecmp (
"PREFERENCE", element_name) == 0);
21845 char* preference_hr_name;
21850 preference_hr_name = NULL;
21873 preference_hr_name));
21885 assert (strcasecmp (
"ALT", element_name) == 0);
21907 assert (strcasecmp (
"CREATE_ALERT", element_name) == 0);
21929 log_event (
"alert",
"Alert", uuid,
"created");
21934 SEND_TO_CLIENT_OR_FAIL
21936 "Alert exists already"));
21937 log_event_fail (
"alert",
"Alert", NULL,
"created");
21940 if (send_find_error_to_client (
"create_alert",
"alert",
21944 error_send_to_client (error);
21947 log_event_fail (
"alert",
"Alert", NULL,
"created");
21950 SEND_TO_CLIENT_OR_FAIL
21952 "Permission denied"));
21953 log_event_fail (
"alert",
"Alert", NULL,
"created");
21957 SEND_TO_CLIENT_OR_FAIL
21959 log_event_fail (
"alert",
"Alert", NULL,
"created");
21963 SEND_TO_CLIENT_OR_FAIL
21965 "CREATE_ALERT requires NAME element which" 21966 " is at least one character long"));
21968 SEND_TO_CLIENT_OR_FAIL
21970 "CREATE_ALERT requires a value in a" 21971 " CONDITION element"));
21973 SEND_TO_CLIENT_OR_FAIL
21975 "CREATE_ALERT requires a value in an" 21976 " EVENT element"));
21978 SEND_TO_CLIENT_OR_FAIL
21980 "CREATE_ALERT requires a value in a" 21981 " METHOD element"));
21985 SEND_TO_CLIENT_OR_FAIL
21987 "Failed to recognise condition name"));
21990 SEND_TO_CLIENT_OR_FAIL
21992 "Failed to recognise event name"));
21996 SEND_TO_CLIENT_OR_FAIL
21998 "Failed to recognise method name"));
22016 SENDF_TO_CLIENT_OR_FAIL
22018 log_event (
"alert",
"Alert", uuid,
"created");
22023 SEND_TO_CLIENT_OR_FAIL
22025 "Alert exists already"));
22026 log_event_fail (
"alert",
"Alert", NULL,
"created");
22029 SEND_TO_CLIENT_OR_FAIL
22031 "Validation of email address failed"));
22032 log_event_fail (
"alert",
"Alert", NULL,
"created");
22035 if (send_find_error_to_client (
"create_alert",
"filter",
22039 error_send_to_client (error);
22042 log_event_fail (
"alert",
"Alert", NULL,
"created");
22045 SEND_TO_CLIENT_OR_FAIL
22047 "Filter type must be result if" 22049 log_event_fail (
"alert",
"Alert", NULL,
"created");
22052 SEND_TO_CLIENT_OR_FAIL
22054 "Invalid or unexpected condition data" 22056 log_event_fail (
"alert",
"Alert", NULL,
"created");
22059 SEND_TO_CLIENT_OR_FAIL
22061 "Syntax error in condition data"));
22062 log_event_fail (
"alert",
"Alert", NULL,
"created");
22065 SEND_TO_CLIENT_OR_FAIL
22067 "Email subject too long"));
22068 log_event_fail (
"alert",
"Alert", NULL,
"created");
22071 SEND_TO_CLIENT_OR_FAIL
22073 "Email message too long"));
22074 log_event_fail (
"alert",
"Alert", NULL,
"created");
22077 SEND_TO_CLIENT_OR_FAIL
22079 "Failed to find filter for condition"));
22080 log_event_fail (
"alert",
"Alert", NULL,
"created");
22083 SEND_TO_CLIENT_OR_FAIL
22085 "Error in Send host"));
22086 log_event_fail (
"alert",
"Alert", NULL,
"created");
22089 SEND_TO_CLIENT_OR_FAIL
22091 "Error in Send port"));
22092 log_event_fail (
"alert",
"Alert", NULL,
"created");
22095 SEND_TO_CLIENT_OR_FAIL
22097 "Failed to find report format for Send" 22099 log_event_fail (
"alert",
"Alert", NULL,
"created");
22102 SEND_TO_CLIENT_OR_FAIL
22104 "Error in SCP host"));
22105 log_event_fail (
"alert",
"Alert", NULL,
"created");
22108 SEND_TO_CLIENT_OR_FAIL
22110 "Failed to find report format for SCP" 22112 log_event_fail (
"alert",
"Alert", NULL,
"created");
22115 SEND_TO_CLIENT_OR_FAIL
22117 "Error in SCP credential"));
22118 log_event_fail (
"alert",
"Alert", NULL,
"created");
22121 SEND_TO_CLIENT_OR_FAIL
22123 "Error in SCP path"));
22124 log_event_fail (
"alert",
"Alert", NULL,
"created");
22127 SEND_TO_CLIENT_OR_FAIL
22129 "Method does not match event type"));
22130 log_event_fail (
"alert",
"Alert", NULL,
"created");
22133 SEND_TO_CLIENT_OR_FAIL
22135 "Condition does not match event type"));
22136 log_event_fail (
"alert",
"Alert", NULL,
"created");
22139 SEND_TO_CLIENT_OR_FAIL
22141 "Unexpected event data name"));
22142 log_event_fail (
"alert",
"Alert", NULL,
"created");
22145 SEND_TO_CLIENT_OR_FAIL
22147 "Syntax error in event data"));
22148 log_event_fail (
"alert",
"Alert", NULL,
"created");
22151 SEND_TO_CLIENT_OR_FAIL
22153 "Error in SMB credential"));
22154 log_event_fail (
"alert",
"Alert", NULL,
"created");
22157 SEND_TO_CLIENT_OR_FAIL
22159 "Error in SMB share path"));
22160 log_event_fail (
"alert",
"Alert", NULL,
"created");
22163 SEND_TO_CLIENT_OR_FAIL
22165 "Error in SMB file path"));
22166 log_event_fail (
"alert",
"Alert", NULL,
"created");
22169 SEND_TO_CLIENT_OR_FAIL
22171 "Error in TippingPoint credential"));
22172 log_event_fail (
"alert",
"Alert", NULL,
"created");
22175 SEND_TO_CLIENT_OR_FAIL
22177 "Error in TippingPoint hostname"));
22178 log_event_fail (
"alert",
"Alert", NULL,
"created");
22181 SEND_TO_CLIENT_OR_FAIL
22183 "Error in TippingPoint TLS" 22185 log_event_fail (
"alert",
"Alert", NULL,
"created");
22188 SEND_TO_CLIENT_OR_FAIL
22190 "TippingPoint TLS workaround must be" 22191 " set to 0 or 1"));
22192 log_event_fail (
"alert",
"Alert", NULL,
"created");
22195 SEND_TO_CLIENT_OR_FAIL
22197 "Permission denied"));
22198 log_event_fail (
"alert",
"Alert", NULL,
"created");
22203 SEND_TO_CLIENT_OR_FAIL
22205 log_event_fail (
"alert",
"Alert", NULL,
"created");
22225 assert (strcasecmp (
"DATA", element_name) == 0);
22245 assert (strcasecmp (
"NAME", element_name) == 0);
22253 assert (strcasecmp (
"DATA", element_name) == 0);
22278 assert (strcasecmp (
"DATA", element_name) == 0);
22303 assert (strcasecmp (
"CREATE_CREDENTIAL", element_name) == 0);
22318 log_event (
"credential",
"Credential", uuid,
"created");
22323 SEND_TO_CLIENT_OR_FAIL
22325 "Credential exists already"));
22326 log_event_fail (
"credential",
"Credential", NULL,
"created");
22329 if (send_find_error_to_client (
"create_credential",
22334 error_send_to_client (error);
22337 log_event_fail (
"credential",
"Credential", NULL,
"created");
22340 SEND_TO_CLIENT_OR_FAIL
22342 "Permission denied"));
22343 log_event_fail (
"credential",
"Credential", NULL,
"created");
22347 SEND_TO_CLIENT_OR_FAIL
22349 log_event_fail (
"credential",
"Credential", NULL,
"created");
22354 SEND_TO_CLIENT_OR_FAIL
22356 "CREATE_CREDENTIAL name must be at" 22357 " least one character long"));
22362 SEND_TO_CLIENT_OR_FAIL
22364 "CREATE_CREDENTIAL login must be at" 22365 " least one character long"));
22370 SEND_TO_CLIENT_OR_FAIL
22372 "CREATE_CREDENTIAL KEY requires a PRIVATE" 22379 SEND_TO_CLIENT_OR_FAIL
22381 "Erroneous Private Key."));
22386 SEND_TO_CLIENT_OR_FAIL
22388 "Erroneous Certificate."));
22410 SENDF_TO_CLIENT_OR_FAIL
22412 log_event (
"credential",
"Credential", uuid,
"created");
22417 SEND_TO_CLIENT_OR_FAIL
22419 "Credential exists already"));
22422 SEND_TO_CLIENT_OR_FAIL
22424 "Login may only contain alphanumeric" 22425 " characters if autogenerating" 22429 SEND_TO_CLIENT_OR_FAIL
22431 "Erroneous private key or associated" 22435 SEND_TO_CLIENT_OR_FAIL
22437 "Erroneous credential type"));
22440 SEND_TO_CLIENT_OR_FAIL
22442 "Selected type requires a login username"));
22445 SEND_TO_CLIENT_OR_FAIL
22447 "Selected type requires a password"));
22450 SEND_TO_CLIENT_OR_FAIL
22452 "Selected type requires a private key"));
22455 SEND_TO_CLIENT_OR_FAIL
22457 "Selected type requires a certificate"));
22460 SEND_TO_CLIENT_OR_FAIL
22462 "Selected type cannot be generated" 22463 " automatically"));
22466 SEND_TO_CLIENT_OR_FAIL
22468 "Selected type requires a community and/or" 22469 " username + password"));
22471 SEND_TO_CLIENT_OR_FAIL
22473 "Selected type requires an" 22474 " auth_algorithm"));
22476 SEND_TO_CLIENT_OR_FAIL
22478 "Selected type requires a" 22479 " password in a privacy element"));
22481 SEND_TO_CLIENT_OR_FAIL
22483 "Selected type requires an" 22484 " algorithm in a privacy element"));
22486 SEND_TO_CLIENT_OR_FAIL
22488 "auth algorithm must be 'md5' or 'sha1'"));
22490 SEND_TO_CLIENT_OR_FAIL
22492 "privacy algorithm must be 'aes'" 22495 SEND_TO_CLIENT_OR_FAIL
22497 "Erroneous certificate"));
22500 SEND_TO_CLIENT_OR_FAIL
22502 "Permission denied"));
22507 SEND_TO_CLIENT_OR_FAIL
22536 assert (strcasecmp (
"CREATE_FILTER", element_name) == 0);
22552 log_event (
"filter",
"Filter", uuid,
"created");
22557 SEND_TO_CLIENT_OR_FAIL
22559 "Filter exists already"));
22560 log_event_fail (
"filter",
"Filter", NULL,
"created");
22563 if (send_find_error_to_client (
"create_filter",
"filter",
22567 error_send_to_client (error);
22570 log_event_fail (
"filter",
"Filter", NULL,
"created");
22573 SEND_TO_CLIENT_OR_FAIL
22575 "Permission denied"));
22576 log_event_fail (
"filter",
"Filter", NULL,
"created");
22580 SEND_TO_CLIENT_OR_FAIL
22582 log_event_fail (
"filter",
"Filter", NULL,
"created");
22586 SEND_TO_CLIENT_OR_FAIL
22588 "CREATE_FILTER requires a NAME"));
22590 SEND_TO_CLIENT_OR_FAIL
22592 "CREATE_FILTER name must be at" 22593 " least one character long"));
22608 log_event (
"filter",
"Filter", uuid,
"created");
22613 SEND_TO_CLIENT_OR_FAIL
22615 "Filter exists already"));
22616 log_event_fail (
"filter",
"Filter", NULL,
"created");
22619 SEND_TO_CLIENT_OR_FAIL
22621 "Type must be a valid OMP type"));
22622 log_event_fail (
"filter",
"Filter", NULL,
"created");
22625 SEND_TO_CLIENT_OR_FAIL
22627 "Permission denied"));
22628 log_event_fail (
"filter",
"Filter", NULL,
"created");
22631 SEND_TO_CLIENT_OR_FAIL
22633 log_event_fail (
"filter",
"Filter", NULL,
"created");
22653 assert (strcasecmp (
"CREATE_GROUP", element_name) == 0);
22668 log_event (
"group",
"Group", uuid,
"created");
22673 SEND_TO_CLIENT_OR_FAIL
22675 "Group exists already"));
22676 log_event_fail (
"group",
"Group", NULL,
"created");
22679 if (send_find_error_to_client (
"create_group",
"group",
22683 error_send_to_client (error);
22686 log_event_fail (
"group",
"Group", NULL,
"created");
22689 SEND_TO_CLIENT_OR_FAIL
22691 "Syntax error in group name"));
22692 log_event_fail (
"group",
"Group", NULL,
"created");
22695 SEND_TO_CLIENT_OR_FAIL
22697 "Permission denied"));
22698 log_event_fail (
"group",
"Group", NULL,
"created");
22702 SEND_TO_CLIENT_OR_FAIL
22704 log_event_fail (
"group",
"Group", NULL,
"created");
22708 SEND_TO_CLIENT_OR_FAIL
22710 "CREATE_GROUP requires a NAME"));
22712 SEND_TO_CLIENT_OR_FAIL
22714 "CREATE_GROUP name must be at" 22715 " least one character long"));
22728 log_event (
"group",
"Group", uuid,
"created");
22733 SEND_TO_CLIENT_OR_FAIL
22735 "Group exists already"));
22736 log_event_fail (
"group",
"Group", NULL,
"created");
22739 SEND_TO_CLIENT_OR_FAIL
22741 "Failed to find user"));
22742 log_event_fail (
"group",
"Group", NULL,
"created");
22745 SEND_TO_CLIENT_OR_FAIL
22747 "Error in user name"));
22748 log_event_fail (
"group",
"Group", NULL,
"created");
22751 SEND_TO_CLIENT_OR_FAIL
22753 "Permission denied"));
22754 log_event_fail (
"group",
"Group", NULL,
"created");
22757 SEND_TO_CLIENT_OR_FAIL
22759 log_event_fail (
"group",
"Group", NULL,
"created");
22781 assert (strcasecmp (
"CREATE_NOTE", element_name) == 0);
22792 log_event (
"note",
"Note", uuid,
"created");
22797 SEND_TO_CLIENT_OR_FAIL
22799 "Note exists already"));
22800 log_event_fail (
"note",
"Note", NULL,
"created");
22803 if (send_find_error_to_client (
"create_note",
"note",
22807 error_send_to_client (error);
22810 log_event_fail (
"note",
"Note", NULL,
"created");
22813 SEND_TO_CLIENT_OR_FAIL
22815 "Permission denied"));
22816 log_event_fail (
"note",
"Note", NULL,
"created");
22820 SEND_TO_CLIENT_OR_FAIL
22822 log_event_fail (
"note",
"Note", NULL,
"created");
22826 SEND_TO_CLIENT_OR_FAIL
22828 "CREATE_NOTE requires an NVT entity"));
22830 SEND_TO_CLIENT_OR_FAIL
22832 "CREATE_NOTE requires a TEXT entity"));
22836 SEND_TO_CLIENT_OR_FAIL
22838 "Error in host specification"));
22840 SEND_TO_CLIENT_OR_FAIL
22842 "Host specification exceeds maximum number of" 22851 if (send_find_error_to_client (
"create_note",
"task",
22855 error_send_to_client (error);
22866 if (send_find_error_to_client (
"create_note",
"result",
22870 error_send_to_client (error);
22891 log_event (
"note",
"Note", uuid,
"created");
22896 if (send_find_error_to_client (
"create_note",
"nvt",
22900 error_send_to_client (error);
22905 SEND_TO_CLIENT_OR_FAIL
22907 "Error in port specification"));
22908 log_event_fail (
"note",
"Note", NULL,
"created");
22911 SEND_TO_CLIENT_OR_FAIL
22913 "Permission denied"));
22916 SEND_TO_CLIENT_OR_FAIL
22921 SEND_TO_CLIENT_OR_FAIL
22947 assert (strcasecmp (
"CREATE_OVERRIDE", element_name) == 0);
22958 log_event (
"override",
"Override", uuid,
"created");
22963 SEND_TO_CLIENT_OR_FAIL
22965 "Override exists already"));
22966 log_event_fail (
"override",
"Override", NULL,
"created");
22969 if (send_find_error_to_client (
"create_override",
"override",
22973 error_send_to_client (error);
22976 log_event_fail (
"override",
"Override", NULL,
"created");
22979 SEND_TO_CLIENT_OR_FAIL
22981 "Permission denied"));
22982 log_event_fail (
"override",
"Override", NULL,
"created");
22986 SEND_TO_CLIENT_OR_FAIL
22988 log_event_fail (
"override",
"Override", NULL,
"created");
22992 SEND_TO_CLIENT_OR_FAIL
22994 "CREATE_OVERRIDE requires an NVT entity"));
22996 SEND_TO_CLIENT_OR_FAIL
22998 "CREATE_OVERRIDE requires a TEXT entity"));
23003 SEND_TO_CLIENT_OR_FAIL
23005 "Error in host specification"));
23007 SEND_TO_CLIENT_OR_FAIL
23009 "Host specification exceeds maximum number" 23013 SEND_TO_CLIENT_OR_FAIL
23015 "CREATE_OVERRIDE requires a NEW_THREAT" 23016 " or NEW_SEVERITY entity"));
23024 if (send_find_error_to_client (
"create_override",
"task",
23028 error_send_to_client (error);
23039 if (send_find_error_to_client (
"create_override",
"result",
23043 error_send_to_client (error);
23064 SENDF_TO_CLIENT_OR_FAIL
23066 log_event (
"override",
"Override", uuid,
"created");
23071 if (send_find_error_to_client (
"create_override",
"nvt",
23075 error_send_to_client (error);
23080 SEND_TO_CLIENT_OR_FAIL
23082 "Error in port specification"));
23083 log_event_fail (
"override",
"Override", NULL,
"created");
23086 SEND_TO_CLIENT_OR_FAIL
23088 "Error in new_severity specification"));
23089 log_event_fail (
"override",
"Override", NULL,
"created");
23092 SEND_TO_CLIENT_OR_FAIL
23094 "Permission denied"));
23097 SEND_TO_CLIENT_OR_FAIL
23102 SEND_TO_CLIENT_OR_FAIL
23127 assert (strcasecmp (
"CREATE_PERMISSION", element_name) == 0);
23140 log_event (
"permission",
"Permission", uuid,
"created");
23145 SEND_TO_CLIENT_OR_FAIL
23147 "Permission exists already"));
23148 log_event_fail (
"permission",
"Permission", NULL,
"created");
23151 if (send_find_error_to_client (
"create_permission",
23156 error_send_to_client (error);
23159 log_event_fail (
"permission",
"Permission", NULL,
"created");
23162 SEND_TO_CLIENT_OR_FAIL
23164 "Permission denied"));
23165 log_event_fail (
"permission",
"Permission", NULL,
"created");
23169 SEND_TO_CLIENT_OR_FAIL
23171 log_event_fail (
"permission",
"Permission", NULL,
"created");
23175 SEND_TO_CLIENT_OR_FAIL
23177 "CREATE_PERMISSION requires a NAME"));
23179 SEND_TO_CLIENT_OR_FAIL
23181 "CREATE_PERMISSION name must be at" 23182 " least one character long"));
23196 (
"create_permission"),
23198 log_event (
"permission",
"Permission", uuid,
"created");
23203 if (send_find_error_to_client
23204 (
"create_permission",
"subject",
23207 error_send_to_client (error);
23210 log_event_fail (
"permission",
"Permission", NULL,
"created");
23213 if (send_find_error_to_client
23214 (
"create_permission",
"resource",
23217 error_send_to_client (error);
23220 log_event_fail (
"permission",
"Permission", NULL,
"created");
23223 SEND_TO_CLIENT_OR_FAIL
23225 "Error in RESOURCE"));
23226 log_event_fail (
"permission",
"Permission", NULL,
"created");
23229 SEND_TO_CLIENT_OR_FAIL
23231 "Error in SUBJECT"));
23232 log_event_fail (
"permission",
"Permission", NULL,
"created");
23235 SEND_TO_CLIENT_OR_FAIL
23238 log_event_fail (
"permission",
"Permission", NULL,
"created");
23241 SEND_TO_CLIENT_OR_FAIL
23243 "Attempt to create permission on" 23245 log_event_fail (
"permission",
"Permission", NULL,
"created");
23248 SEND_TO_CLIENT_OR_FAIL
23250 "Permission does not accept a resource"));
23251 log_event_fail (
"permission",
"Permission", NULL,
"created");
23254 SEND_TO_CLIENT_OR_FAIL
23256 "Permission denied"));
23257 log_event_fail (
"permission",
"Permission", NULL,
"created");
23261 SEND_TO_CLIENT_OR_FAIL
23263 log_event_fail (
"permission",
"Permission", NULL,
"created");
23282 array_t *manage_ranges;
23284 assert (strcasecmp (
"CREATE_PORT_LIST", element_name) == 0);
23286 manage_ranges = NULL;
23296 SEND_TO_CLIENT_OR_FAIL
23299 " GET_PORT_LISTS_RESPONSE requires a" 23302 SEND_TO_CLIENT_OR_FAIL
23305 " GET_PORT_LISTS_RESPONSE NAME must be" 23306 " at least one character long"));
23308 SEND_TO_CLIENT_OR_FAIL
23311 " GET_PORT_LISTS_RESPONSE requires an" 23314 SEND_TO_CLIENT_OR_FAIL
23317 " GET_PORT_LISTS_RESPONSE ID must be" 23318 " at least one character long"));
23320 SEND_TO_CLIENT_OR_FAIL
23323 " GET_PORT_LISTS_RESPONSE ID must be" 23325 else if ((manage_ranges = convert_to_manage_ranges
23328 SEND_TO_CLIENT_OR_FAIL
23330 "Error in GET_PORT_LISTS_RESPONSE ranges"));
23340 SEND_TO_CLIENT_OR_FAIL
23342 "Port list exists already"));
23343 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23346 SEND_TO_CLIENT_OR_FAIL
23348 "Port list exists already, in" 23350 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23353 SEND_TO_CLIENT_OR_FAIL
23355 "Permission denied"));
23356 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23359 SEND_TO_CLIENT_OR_FAIL
23361 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23366 SENDF_TO_CLIENT_OR_FAIL
23369 log_event (
"port_list",
"Port List", uuid,
"created");
23375 array_free (manage_ranges);
23388 (
"create_port_list"),
23390 log_event (
"port_list",
"Port List", uuid,
"created");
23395 SEND_TO_CLIENT_OR_FAIL
23397 "Port List exists already"));
23398 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23401 if (send_find_error_to_client (
"create_port_list",
23406 error_send_to_client (error);
23409 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23412 SEND_TO_CLIENT_OR_FAIL
23414 "Permission denied"));
23415 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23419 SEND_TO_CLIENT_OR_FAIL
23421 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23425 SEND_TO_CLIENT_OR_FAIL
23427 "CREATE_PORT_LIST requires a NAME"));
23429 SEND_TO_CLIENT_OR_FAIL
23431 "CREATE_PORT_LIST name must be at" 23432 " least one character long"));
23442 SEND_TO_CLIENT_OR_FAIL
23444 "Port list exists already"));
23445 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23448 SEND_TO_CLIENT_OR_FAIL
23450 "Error in port range"));
23451 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23454 SEND_TO_CLIENT_OR_FAIL
23456 "Permission denied"));
23457 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23460 SEND_TO_CLIENT_OR_FAIL
23462 log_event_fail (
"port_list",
"Port List", NULL,
"created");
23467 SENDF_TO_CLIENT_OR_FAIL
23469 log_event (
"port_list",
"Port List", uuid,
"created");
23482 assert (strcasecmp (
"GET_PORT_LISTS_RESPONSE", element_name) == 0);
23498 assert (strcasecmp (
"PORT_RANGE", element_name) == 0);
23516 assert (strcasecmp (
"CREATE_PORT_RANGE", element_name) == 0);
23521 SEND_TO_CLIENT_OR_FAIL
23523 "CREATE_PORT_RANGE requires a START, END and" 23534 SEND_TO_CLIENT_OR_FAIL
23536 "Port range START must be a number" 23538 log_event_fail (
"port_range",
"Port Range", NULL,
"created");
23541 SEND_TO_CLIENT_OR_FAIL
23543 "Port range END must be a number" 23545 log_event_fail (
"port_range",
"Port Range", NULL,
"created");
23548 if (send_find_error_to_client
23549 (
"create_port_range",
"port_range",
23552 error_send_to_client (error);
23555 log_event_fail (
"port_range",
"Port Range", NULL,
"created");
23558 SEND_TO_CLIENT_OR_FAIL
23560 "Port range TYPE must be TCP or UDP"));
23561 log_event_fail (
"port_range",
"Port Range", NULL,
"created");
23564 SEND_TO_CLIENT_OR_FAIL
23566 "Port list is in use"));
23569 SEND_TO_CLIENT_OR_FAIL
23571 "New range overlaps an existing" 23575 SEND_TO_CLIENT_OR_FAIL
23577 "Permission denied"));
23580 SEND_TO_CLIENT_OR_FAIL
23582 log_event_fail (
"port_range",
"Port Range", NULL,
"created");
23588 SENDF_TO_CLIENT_OR_FAIL
23590 log_event (
"port_range",
"Port range", uuid,
"created");
23610 assert (strcasecmp (
"CREATE_REPORT", element_name) == 0);
23618 SEND_TO_CLIENT_OR_FAIL
23620 "CREATE_REPORT requires a REPORT element"));
23623 SEND_TO_CLIENT_OR_FAIL
23625 "CREATE_REPORT type must be 'scan'"));
23640 SEND_TO_CLIENT_OR_FAIL
23642 "Permission denied"));
23643 log_event_fail (
"report",
"Report", NULL,
"created");
23647 SEND_TO_CLIENT_OR_FAIL
23649 log_event_fail (
"report",
"Report", NULL,
"created");
23652 SEND_TO_CLIENT_OR_FAIL
23654 "CREATE_REPORT TASK_NAME is required"));
23655 log_event_fail (
"report",
"Report", NULL,
"created");
23658 log_event_fail (
"report",
"Report", NULL,
"created");
23659 if (send_find_error_to_client
23660 (
"create_report",
"task",
23663 error_send_to_client (error);
23668 SEND_TO_CLIENT_OR_FAIL
23670 "CREATE_REPORT TASK must be a container"));
23671 log_event_fail (
"report",
"Report", NULL,
"created");
23674 SEND_TO_CLIENT_OR_FAIL
23676 "Permission to add to Assets denied"));
23677 log_event_fail (
"report",
"Report", NULL,
"created");
23681 SENDF_TO_CLIENT_OR_FAIL
23684 log_event (
"report",
"Report", uuid,
"created");
23698 assert (strcasecmp (
"REPORT", element_name) == 0);
23707 assert (strcasecmp (
"HOST_END", element_name) == 0);
23731 assert (strcasecmp (
"HOST_START", element_name) == 0);
23782 assert (strcasecmp (
"DETAIL", element_name) == 0);
23817 assert (strcasecmp (
"DESCRIPTION", element_name) == 0);
23825 assert (strcasecmp (
"RESULT", element_name) == 0);
23848 "False Positive") == 0)
23887 MODIFICATION_TIME);
23921 assert (strcasecmp (
"CREATE_REPORT_FORMAT", element_name) == 0);
23927 &new_report_format))
23934 (
"create_report_format"),
23936 log_event (
"report_format",
"Report Format", uuid,
"created");
23941 SEND_TO_CLIENT_OR_FAIL
23943 "Report Format exists already"));
23944 log_event_fail (
"report_format",
"Report Format", NULL,
23948 if (send_find_error_to_client (
"create_report_format",
23953 error_send_to_client (error);
23956 log_event_fail (
"report_format",
"Report Format", NULL,
23960 SEND_TO_CLIENT_OR_FAIL
23962 "Permission denied"));
23963 log_event_fail (
"report_format",
"Report Format", NULL,
23968 SEND_TO_CLIENT_OR_FAIL
23970 log_event_fail (
"report_format",
"Report Format", NULL,
23982 SEND_TO_CLIENT_OR_FAIL
23984 "CREATE_REPORT_FORMAT" 23985 " GET_REPORT_FORMATS_RESPONSE requires a" 23988 SEND_TO_CLIENT_OR_FAIL
23990 "CREATE_REPORT_FORMAT" 23991 " GET_REPORT_FORMATS_RESPONSE NAME must be" 23992 " at least one character long"));
23994 SEND_TO_CLIENT_OR_FAIL
23996 "CREATE_REPORT_FORMAT" 23997 " GET_REPORT_FORMATS_RESPONSE requires an" 24000 SEND_TO_CLIENT_OR_FAIL
24002 "CREATE_REPORT_FORMAT" 24003 " GET_REPORT_FORMATS_RESPONSE ID must be" 24004 " at least one character long"));
24006 SEND_TO_CLIENT_OR_FAIL
24008 "CREATE_REPORT_FORMAT" 24009 " GET_REPORT_FORMATS_RESPONSE ID must be" 24023 &new_report_format))
24026 SEND_TO_CLIENT_OR_FAIL
24028 log_event_fail (
"report_format",
"Report Format", NULL,
24032 SEND_TO_CLIENT_OR_FAIL
24034 "Report format exists already"));
24035 log_event_fail (
"report_format",
"Report Format", NULL,
24039 SEND_TO_CLIENT_OR_FAIL
24041 "Every FILE must have a name" 24043 log_event_fail (
"report_format",
"Report Format", NULL,
24047 SEND_TO_CLIENT_OR_FAIL
24049 "Parameter value validation failed"));
24050 log_event_fail (
"report_format",
"Report Format", NULL,
24054 SEND_TO_CLIENT_OR_FAIL
24056 "Parameter default validation failed"));
24057 log_event_fail (
"report_format",
"Report Format", NULL,
24061 SEND_TO_CLIENT_OR_FAIL
24063 "CREATE_REPORT_FORMAT PARAM requires a" 24064 " DEFAULT element"));
24065 log_event_fail (
"report_format",
"Report Format", NULL,
24069 SEND_TO_CLIENT_OR_FAIL
24071 "CREATE_REPORT_FORMAT PARAM MIN or MAX" 24073 log_event_fail (
"report_format",
"Report Format", NULL,
24077 SEND_TO_CLIENT_OR_FAIL
24079 "CREATE_REPORT_FORMAT PARAM requires a" 24081 log_event_fail (
"report_format",
"Report Format", NULL,
24085 SEND_TO_CLIENT_OR_FAIL
24087 "Duplicate PARAM name"));
24088 log_event_fail (
"report_format",
"Report Format", NULL,
24092 SEND_TO_CLIENT_OR_FAIL
24094 "Bogus PARAM type"));
24095 log_event_fail (
"report_format",
"Report Format", NULL,
24099 SEND_TO_CLIENT_OR_FAIL
24101 "Permission denied"));
24102 log_event_fail (
"report_format",
"Report Format", NULL,
24108 SENDF_TO_CLIENT_OR_FAIL
24111 log_event (
"report_format",
"Report Format", uuid,
"created");
24118 SEND_TO_CLIENT_OR_FAIL
24120 "CREATE_REPORT_FORMAT requires a" 24121 " GET_REPORT_FORMATS element"));
24129 assert (strcasecmp (
"GET_REPORT_FORMATS_RESPONSE", element_name) == 0);
24140 assert (strcasecmp (
"FILE", element_name) == 0);
24162 assert (strcasecmp (
"PARAM", element_name) == 0);
24167 param = g_malloc (
sizeof (*param));
24219 assert (strcasecmp (
"OPTION", element_name) == 0);
24233 assert (strcasecmp (
"CREATE_ROLE", element_name) == 0);
24248 log_event (
"role",
"Role", uuid,
"created");
24253 SEND_TO_CLIENT_OR_FAIL
24255 "Role exists already"));
24256 log_event_fail (
"role",
"Role", NULL,
"created");
24259 if (send_find_error_to_client (
"create_role",
"role",
24263 error_send_to_client (error);
24266 log_event_fail (
"role",
"Role", NULL,
"created");
24269 SEND_TO_CLIENT_OR_FAIL
24271 "Syntax error in role name"));
24272 log_event_fail (
"role",
"Role", NULL,
"created");
24275 SEND_TO_CLIENT_OR_FAIL
24277 "Permission denied"));
24278 log_event_fail (
"role",
"Role", NULL,
"created");
24281 SEND_TO_CLIENT_OR_FAIL
24283 log_event_fail (
"role",
"Role", NULL,
"created");
24287 SEND_TO_CLIENT_OR_FAIL
24289 "CREATE_ROLE requires a NAME"));
24291 SEND_TO_CLIENT_OR_FAIL
24293 "CREATE_ROLE name must be at" 24294 " least one character long"));
24306 log_event (
"role",
"Role", NULL,
"created");
24311 SEND_TO_CLIENT_OR_FAIL
24313 "Role exists already"));
24314 log_event_fail (
"role",
"Role", NULL,
"created");
24317 SEND_TO_CLIENT_OR_FAIL
24319 "Failed to find user"));
24320 log_event_fail (
"role",
"Role", NULL,
"created");
24323 SEND_TO_CLIENT_OR_FAIL
24325 "Error in user name"));
24326 log_event_fail (
"group",
"Group", NULL,
"created");
24329 SEND_TO_CLIENT_OR_FAIL
24331 "Permission denied"));
24332 log_event_fail (
"role",
"Role", NULL,
"created");
24335 SEND_TO_CLIENT_OR_FAIL
24337 log_event_fail (
"role",
"Role", NULL,
"created");
24351 assert (strcasecmp (
"CREATE_SCANNER", element_name) == 0);
24352 return handle_create_scanner (omp_parser, error);
24364 time_t first_time, period, period_months, duration;
24369 assert (strcasecmp (
"CREATE_SCHEDULE", element_name) == 0);
24383 log_event (
"schedule",
"Schedule", uuid,
"created");
24388 SEND_TO_CLIENT_OR_FAIL
24390 "Schedule exists already"));
24391 log_event_fail (
"schedule",
"Schedule", NULL,
"created");
24394 if (send_find_error_to_client (
"create_schedule",
"schedule",
24398 error_send_to_client (error);
24401 log_event_fail (
"schedule",
"Schedule", NULL,
"created");
24404 SEND_TO_CLIENT_OR_FAIL
24406 "Permission denied"));
24407 log_event_fail (
"schedule",
"Schedule", NULL,
"created");
24411 SEND_TO_CLIENT_OR_FAIL
24413 log_event_fail (
"schedule",
"Schedule", NULL,
"created");
24417 SEND_TO_CLIENT_OR_FAIL
24419 "CREATE_SCHEDULE requires a NAME entity"));
24420 else if ((first_time = time_from_strings
24428 SEND_TO_CLIENT_OR_FAIL
24430 "Failed to create time from FIRST_TIME" 24432 else if ((period = interval_from_strings
24437 SEND_TO_CLIENT_OR_FAIL
24439 "PERIOD out of range"));
24440 else if (period < -1)
24441 SEND_TO_CLIENT_OR_FAIL
24443 "Failed to create interval from PERIOD"));
24444 else if ((duration = interval_from_strings
24449 SEND_TO_CLIENT_OR_FAIL
24451 "DURATION out of range"));
24452 else if (duration < -1)
24453 SEND_TO_CLIENT_OR_FAIL
24455 "Failed to create interval from DURATION"));
24460 else if (period_months
24461 && (duration > (period_months * 60 * 60 * 24 * 28)))
24462 SEND_TO_CLIENT_OR_FAIL
24464 "Duration too long for number of months"));
24466 else if (period && (duration > period))
24467 SEND_TO_CLIENT_OR_FAIL
24469 "Duration is longer than period"));
24473 period == -1 ? 0 : period,
24475 duration == -1 ? 0 : duration,
24482 SENDF_TO_CLIENT_OR_FAIL
24484 log_event (
"schedule",
"Schedule", uuid,
"created");
24489 SEND_TO_CLIENT_OR_FAIL
24491 "Schedule exists already"));
24492 log_event_fail (
"schedule",
"Schedule", NULL,
"created");
24495 SEND_TO_CLIENT_OR_FAIL
24497 "Permission denied"));
24498 log_event_fail (
"schedule",
"Schedule", NULL,
"created");
24501 SEND_TO_CLIENT_OR_FAIL
24503 log_event_fail (
"schedule",
"Schedule", NULL,
"created");
24507 SEND_TO_CLIENT_OR_FAIL
24509 log_event_fail (
"schedule",
"Schedule", NULL,
"created");
24538 assert (strcasecmp (
"CREATE_TAG", element_name) == 0);
24552 log_event (
"tag",
"Tag", uuid,
"created");
24557 SEND_TO_CLIENT_OR_FAIL
24559 "Tag exists already"));
24560 log_event_fail (
"tag",
"Tag", NULL,
"created");
24563 if (send_find_error_to_client (
"create_tag",
"tag",
24567 error_send_to_client (error);
24570 log_event_fail (
"tag",
"Tag", NULL,
"created");
24573 SEND_TO_CLIENT_OR_FAIL
24575 "Permission denied"));
24576 log_event_fail (
"tag",
"Tag", NULL,
"created");
24580 SEND_TO_CLIENT_OR_FAIL
24582 log_event_fail (
"tag",
"Tag", NULL,
"created");
24586 SEND_TO_CLIENT_OR_FAIL
24588 "CREATE_TAG requires" 24589 " a NAME element"));
24591 SEND_TO_CLIENT_OR_FAIL
24593 "CREATE_TAG name must be" 24594 " at least one character long"));
24596 SEND_TO_CLIENT_OR_FAIL
24598 "CREATE_TAG requires" 24599 " a RESOURCE element with id attribute"));
24601 SEND_TO_CLIENT_OR_FAIL
24603 "RESOURCE in CREATE_TAG requires" 24604 " a TYPE element"));
24606 SEND_TO_CLIENT_OR_FAIL
24608 "TYPE in CREATE_TAG/RESOURCE must be" 24609 " a valid resource type."));
24611 SEND_TO_CLIENT_OR_FAIL
24613 "TYPE type in CREATE_TAG/RESOURCE must not" 24619 SEND_TO_CLIENT_OR_FAIL
24621 "RESOURCE id must refer to an existing" 24622 " resource or be empty."));
24639 log_event (
"tag",
"Tag", uuid,
"created");
24644 SEND_TO_CLIENT_OR_FAIL
24646 "Permission denied"));
24647 log_event_fail (
"tag",
"Tag", NULL,
"created");
24650 SEND_TO_CLIENT_OR_FAIL
24652 log_event_fail (
"tag",
"Tag", NULL,
"created");
24656 g_debug (
"trying reset");
24658 g_debug (
"trying set client state");
24676 credential_t esxi_credential = 0, snmp_credential = 0;
24679 assert (strcasecmp (
"CREATE_TARGET", element_name) == 0);
24693 log_event (
"target",
"Target", uuid,
"created");
24698 SEND_TO_CLIENT_OR_FAIL
24700 "Target exists already"));
24701 log_event_fail (
"target",
"Target", NULL,
"created");
24704 if (send_find_error_to_client (
"create_target",
"target",
24708 error_send_to_client (error);
24711 log_event_fail (
"target",
"Target", NULL,
"created");
24714 SEND_TO_CLIENT_OR_FAIL
24716 "Permission denied"));
24717 log_event_fail (
"target",
"Target", NULL,
"created");
24721 SEND_TO_CLIENT_OR_FAIL
24723 log_event_fail (
"target",
"Target", NULL,
"created");
24727 SEND_TO_CLIENT_OR_FAIL
24729 "CREATE_TARGET requires a NAME"));
24731 SEND_TO_CLIENT_OR_FAIL
24733 "CREATE_TARGET name must be at" 24734 " least one character long"));
24737 SEND_TO_CLIENT_OR_FAIL
24739 " CREATE_TARGET requires a host"));
24743 SEND_TO_CLIENT_OR_FAIL
24745 "CREATE_TARGET hosts must be at least one" 24746 " character long"));
24751 "get_credentials"))
24758 "get_credentials"))
24762 && ssh_credential == 0)
24764 if (send_find_error_to_client
24765 (
"create_target",
"Credential",
24771 error_send_to_client (error);
24779 "get_credentials"))
24786 "get_credentials"))
24790 && smb_credential == 0)
24792 if (send_find_error_to_client
24793 (
"create_target",
"Credential",
24799 error_send_to_client (error);
24807 "get_credentials"))
24814 "get_credentials"))
24818 && esxi_credential == 0)
24820 if (send_find_error_to_client
24821 (
"create_target",
"Credential",
24827 error_send_to_client (error);
24835 "get_credentials"))
24838 && snmp_credential == 0)
24840 if (send_find_error_to_client
24841 (
"create_target",
"Credential",
24845 error_send_to_client (error);
24874 SEND_TO_CLIENT_OR_FAIL
24876 "Target exists already"));
24877 log_event_fail (
"target",
"Target", NULL,
"created");
24880 SEND_TO_CLIENT_OR_FAIL
24882 "Error in host specification"));
24883 log_event_fail (
"target",
"Target", NULL,
"created");
24886 SEND_TO_CLIENT_OR_FAIL
24888 "Host specification exceeds maximum number" 24890 log_event_fail (
"target",
"Target", NULL,
"created");
24893 SEND_TO_CLIENT_OR_FAIL
24895 "Error in port range"));
24896 log_event_fail (
"target",
"Target", NULL,
"created");
24899 SEND_TO_CLIENT_OR_FAIL
24901 "Error in SSH port"));
24902 log_event_fail (
"target",
"Target", NULL,
"created");
24905 log_event_fail (
"target",
"Target", NULL,
"created");
24906 if (send_find_error_to_client
24907 (
"create_target",
"port_list",
24910 error_send_to_client (error);
24915 SEND_TO_CLIENT_OR_FAIL
24917 "Error in alive test"));
24918 log_event_fail (
"target",
"Target", NULL,
"created");
24921 SEND_TO_CLIENT_OR_FAIL
24923 "SSH credential must be of type" 24924 " 'up' or 'usk'"));
24925 log_event_fail (
"target",
"Target", NULL,
"created");
24928 SEND_TO_CLIENT_OR_FAIL
24930 "SMB credential must be of type" 24932 log_event_fail (
"target",
"Target", NULL,
"created");
24935 SEND_TO_CLIENT_OR_FAIL
24937 "ESXi credential must be of type" 24939 log_event_fail (
"target",
"Target", NULL,
"created");
24942 SEND_TO_CLIENT_OR_FAIL
24944 "SNMP credential must be of type" 24946 log_event_fail (
"target",
"Target", NULL,
"created");
24949 SEND_TO_CLIENT_OR_FAIL
24951 "Permission denied"));
24952 log_event_fail (
"target",
"Target", NULL,
"created");
24956 log_event_fail (
"target",
"Target", NULL,
"created");
24963 log_event (
"target",
"Target", uuid,
"created");
25003 char *tsk_uuid = NULL, *name;
25012 assert (strcasecmp (
"CREATE_TASK", element_name) == 0);
25024 gchar *name, *comment;
25049 log_event (
"task",
"Task", uuid,
"created");
25054 SEND_TO_CLIENT_OR_FAIL
25056 "Task exists already"));
25057 log_event_fail (
"task",
"Task", NULL,
"created");
25060 if (send_find_error_to_client (
"create_task",
"task",
25064 error_send_to_client (error);
25067 log_event_fail (
"task",
"Task", NULL,
"created");
25070 SEND_TO_CLIENT_OR_FAIL
25072 "Permission denied"));
25073 log_event_fail (
"task",
"Task", NULL,
"created");
25076 SEND_TO_CLIENT_OR_FAIL
25078 log_event_fail (
"task",
"Task", NULL,
"created");
25094 "Permission denied"));
25095 goto create_task_fail;
25103 goto create_task_fail;
25110 SEND_TO_CLIENT_OR_FAIL
25112 "CREATE_TASK requires a target"));
25113 goto create_task_fail;
25124 log_event (
"task",
"Task", tsk_uuid,
"created");
25133 SEND_TO_CLIENT_OR_FAIL
25135 "CREATE_TASK requires a config"));
25136 goto create_task_fail;
25150 if (strcmp (alert_id,
"0") == 0)
25155 goto create_task_fail;
25159 SEND_TO_CLIENT_OR_FAIL
25161 "CREATE_TASK alert must exist"));
25162 goto create_task_fail;
25188 goto create_task_fail;
25192 SEND_TO_CLIENT_OR_FAIL
25194 "CREATE_TASK schedule must exist"));
25195 goto create_task_fail;
25236 SEND_TO_CLIENT_OR_FAIL
25238 "User name error in observers"));
25239 goto create_task_fail;
25242 SEND_TO_CLIENT_OR_FAIL
25244 goto create_task_fail;
25253 gchar *fail_group_id;
25262 if (send_find_error_to_client
25263 (
"create_task",
"group", fail_group_id, omp_parser))
25265 error_send_to_client (error);
25268 log_event_fail (
"task",
"Task", NULL,
"created");
25269 goto create_task_fail;
25272 SEND_TO_CLIENT_OR_FAIL
25274 log_event_fail (
"task",
"Task", NULL,
"created");
25275 goto create_task_fail;
25284 SEND_TO_CLIENT_OR_FAIL
25286 "CREATE_TASK requires a name attribute"));
25287 goto create_task_fail;
25295 goto create_task_fail;
25299 if (send_find_error_to_client (
"create_task",
"scanner",
25302 error_send_to_client (error);
25303 goto create_task_fail;
25312 goto create_task_fail;
25316 if (send_find_error_to_client (
"create_task",
"config",
25319 error_send_to_client (error);
25320 goto create_task_fail;
25325 SEND_TO_CLIENT_OR_FAIL
25327 "Scanner and config mismatched types."));
25328 goto create_task_fail;
25336 goto create_task_fail;
25340 if (send_find_error_to_client (
"create_task",
"target",
25343 error_send_to_client (error);
25344 goto create_task_fail;
25359 SEND_TO_CLIENT_OR_FAIL
25361 "Invalid auto_delete value"));
25362 goto create_task_fail;
25364 SENDF_TO_CLIENT_OR_FAIL
25366 "Auto Delete count out of range" 25367 " (must be from %d to %d)"),
25369 goto create_task_fail;
25371 SEND_TO_CLIENT_OR_FAIL
25373 goto create_task_fail;
25381 log_event (
"task",
"Task", tsk_uuid,
"created");
25411 assert (strcasecmp (
"PREFERENCE", element_name) == 0);
25418 assert (strcasecmp (
"SCANNER_NAME", element_name) == 0);
25426 gchar *fail_group_id, *fail_role_id;
25429 assert (strcasecmp (
"CREATE_USER", element_name) == 0);
25444 log_event (
"user",
"User", uuid,
"created");
25449 SEND_TO_CLIENT_OR_FAIL
25451 "User exists already"));
25452 log_event_fail (
"user",
"User", NULL,
"created");
25455 if (send_find_error_to_client (
"create_user",
"user",
25459 error_send_to_client (error);
25462 log_event_fail (
"user",
"User", NULL,
"created");
25465 SEND_TO_CLIENT_OR_FAIL
25467 "Permission denied"));
25468 log_event_fail (
"user",
"User", NULL,
"created");
25472 SEND_TO_CLIENT_OR_FAIL
25474 log_event_fail (
"user",
"User", NULL,
"created");
25481 "CREATE_USER requires a name"));
25510 if (send_find_error_to_client
25511 (
"create_user",
"group", fail_group_id, omp_parser))
25513 error_send_to_client (error);
25516 log_event_fail (
"user",
"User", NULL,
"created");
25519 if (send_find_error_to_client
25520 (
"create_user",
"role", fail_role_id, omp_parser))
25522 error_send_to_client (error);
25525 log_event_fail (
"user",
"User", NULL,
"created");
25528 SEND_TO_CLIENT_OR_FAIL
25530 "Error in host specification"));
25531 log_event_fail (
"user",
"User", NULL,
"created");
25534 SEND_TO_CLIENT_OR_FAIL
25536 "Permission denied"));
25537 log_event_fail (
"user",
"User", NULL,
"created");
25541 (
"create_user",
"User already exists"));
25542 log_event_fail (
"user",
"User", NULL,
"created");
25546 (
"create_user",
"Error in SOURCE"));
25547 log_event_fail (
"user",
"User", NULL,
"created");
25552 char *buf = make_xml_error_syntax (
"create_user", errdesc);
25553 SEND_TO_CLIENT_OR_FAIL (buf);
25560 log_event_fail (
"user",
"User", NULL,
"created");
25577 assert (strcasecmp (
"SOURCES", element_name) == 0);
25582 assert (strcasecmp (
"SOURCE", element_name) == 0);
25595 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"empty_trashcan"));
25596 log_event (
"trashcan",
"Trashcan", NULL,
"emptied");
25599 SEND_TO_CLIENT_OR_FAIL
25601 "Permission denied"));
25614 assert (strcasecmp (
"MODIFY_AGENT", element_name) == 0);
25622 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_agent"));
25627 if (send_find_error_to_client (
"modify_agent",
"agent",
25631 error_send_to_client (error);
25638 SEND_TO_CLIENT_OR_FAIL
25640 "agent with new name exists already"));
25645 SEND_TO_CLIENT_OR_FAIL
25647 "MODIFY_agent requires a agent_id"));
25652 SEND_TO_CLIENT_OR_FAIL
25654 "Permission denied"));
25679 assert (strcasecmp (
"MODIFY_ALERT", element_name) == 0);
25691 SEND_TO_CLIENT_OR_FAIL
25693 "Failed to recognise event name"));
25698 SEND_TO_CLIENT_OR_FAIL
25700 "Failed to recognise condition name"));
25705 SEND_TO_CLIENT_OR_FAIL
25707 "Failed to recognise method name"));
25721 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_alert"));
25726 if (send_find_error_to_client (
"modify_alert",
"alert",
25730 error_send_to_client (error);
25737 SEND_TO_CLIENT_OR_FAIL
25739 "alert with new name exists already"));
25744 SEND_TO_CLIENT_OR_FAIL
25746 "MODIFY_alert requires an alert_id"));
25751 if (send_find_error_to_client (
"modify_alert",
"filter",
25755 error_send_to_client (error);
25762 SEND_TO_CLIENT_OR_FAIL
25764 "Filter type must be result if" 25770 SEND_TO_CLIENT_OR_FAIL
25772 "Validation of email address failed"));
25777 SEND_TO_CLIENT_OR_FAIL
25779 "Invalid or unexpected condition data" 25781 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25784 SEND_TO_CLIENT_OR_FAIL
25786 "Syntax error in condition data"));
25787 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25790 SEND_TO_CLIENT_OR_FAIL
25792 "Email subject too long"));
25793 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25796 SEND_TO_CLIENT_OR_FAIL
25798 "Email message too long"));
25799 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25802 SEND_TO_CLIENT_OR_FAIL
25804 "Failed to find filter for condition"));
25805 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25808 SEND_TO_CLIENT_OR_FAIL
25810 "Error in Send host"));
25811 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25814 SEND_TO_CLIENT_OR_FAIL
25816 "Error in Send port"));
25817 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25820 SEND_TO_CLIENT_OR_FAIL
25822 "Failed to find report format for Send" 25824 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25827 SEND_TO_CLIENT_OR_FAIL
25829 "Error in SCP host"));
25830 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25833 SEND_TO_CLIENT_OR_FAIL
25835 "Failed to find report format for SCP" 25837 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25840 SEND_TO_CLIENT_OR_FAIL
25842 "Error in SCP credential"));
25843 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25846 SEND_TO_CLIENT_OR_FAIL
25848 "Error in SCP path"));
25849 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25852 SEND_TO_CLIENT_OR_FAIL
25854 "Method does not match event type"));
25855 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25858 SEND_TO_CLIENT_OR_FAIL
25860 "Condition does not match event type"));
25861 log_event_fail (
"alert",
"Alert", NULL,
"modify");
25864 SEND_TO_CLIENT_OR_FAIL
25866 "Unexpected event data name"));
25867 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25870 SEND_TO_CLIENT_OR_FAIL
25872 "Syntax error in event data"));
25873 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25876 SEND_TO_CLIENT_OR_FAIL
25878 "Error in SMB credential"));
25879 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25882 SEND_TO_CLIENT_OR_FAIL
25884 "Error in SMB share path"));
25885 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25888 SEND_TO_CLIENT_OR_FAIL
25890 "Error in SMB file path"));
25891 log_event_fail (
"alert",
"Alert", NULL,
"modified");
25894 SEND_TO_CLIENT_OR_FAIL
25896 "Error in TippingPoint credential"));
25897 log_event_fail (
"alert",
"Alert", NULL,
"created");
25900 SEND_TO_CLIENT_OR_FAIL
25902 "Error in TippingPoint hostname"));
25903 log_event_fail (
"alert",
"Alert", NULL,
"created");
25906 SEND_TO_CLIENT_OR_FAIL
25908 "Error in TippingPoint TLS" 25910 log_event_fail (
"alert",
"Alert", NULL,
"created");
25913 SEND_TO_CLIENT_OR_FAIL
25915 "TippingPoint TLS workaround must be" 25916 " set to 0 or 1"));
25917 log_event_fail (
"alert",
"Alert", NULL,
"created");
25920 SEND_TO_CLIENT_OR_FAIL
25922 "Permission denied"));
25949 assert (strcasecmp (
"DATA", element_name) == 0);
25974 assert (strcasecmp (
"DATA", element_name) == 0);
25999 assert (strcasecmp (
"DATA", element_name) == 0);
26022 assert (strcasecmp (
"MODIFY_ASSET", element_name) == 0);
26029 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_asset"));
26034 if (send_find_error_to_client (
"modify_asset",
"asset",
26038 error_send_to_client (error);
26045 SEND_TO_CLIENT_OR_FAIL
26047 "asset with new name exists already"));
26052 SEND_TO_CLIENT_OR_FAIL
26054 "MODIFY_asset requires a asset_id"));
26059 SEND_TO_CLIENT_OR_FAIL
26061 "Permission denied"));
26083 assert (strcasecmp (
"MODIFY_AUTH", element_name) == 0);
26087 SEND_TO_CLIENT_OR_FAIL
26089 "Permission denied"));
26107 "GROUP requires a name attribute"));
26112 if (strcmp (group,
"method:ldap_connect") == 0)
26115 gchar *ldap_host, *ldap_authdn, *ldap_cacert;
26116 int ldap_enabled, ldap_plaintext;
26118 ldap_enabled = ldap_plaintext = -1;
26119 ldap_host = ldap_authdn = ldap_cacert = NULL;
26126 if (kvp->
key == NULL || kvp->
value == NULL)
26128 else if (strcmp (kvp->
key,
"enable") == 0)
26129 ldap_enabled = (strcmp (kvp->
value,
"true") == 0);
26130 else if (strcmp (kvp->
key,
"ldaphost") == 0)
26131 ldap_host = g_strdup (kvp->
value);
26132 else if (strcmp (kvp->
key,
"authdn") == 0)
26133 ldap_authdn = g_strdup (kvp->
value);
26134 else if (strcmp (kvp->
key,
"allow-plaintext") == 0)
26135 ldap_plaintext = (strcmp (kvp->
value,
"true") == 0);
26136 else if (strcmp (kvp->
key,
"cacert") == 0)
26137 ldap_cacert = g_strdup (kvp->
value);
26139 setting = g_slist_next (setting);
26143 ldap_plaintext, ldap_cacert);
26145 if (strcmp (group,
"method:radius_connect") == 0)
26148 char *radius_host, *radius_key;
26149 int radius_enabled;
26151 radius_enabled = -1;
26152 radius_host = radius_key = NULL;
26159 if (kvp->
key == NULL || kvp->
value == NULL)
26161 else if (strcmp (kvp->
key,
"enable") == 0)
26162 radius_enabled = (strcmp (kvp->
value,
"true") == 0);
26163 else if (strcmp (kvp->
key,
"radiushost") == 0)
26164 radius_host = g_strdup (kvp->
value);
26165 else if (strcmp (kvp->
key,
"radiuskey") == 0)
26166 radius_key = g_strdup (kvp->
value);
26168 setting = g_slist_next (setting);
26174 item = g_slist_next (item);
26177 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_auth"));
26186 assert (strcasecmp (
"GROUP", element_name) == 0);
26194 assert (new_group);
26206 assert (strcasecmp (
"AUTH_CONF_SETTING", element_name) == 0);
26225 assert (strcasecmp (
"MODIFY_CONFIG", element_name) == 0);
26226 return handle_modify_config (omp_parser, error);
26231 assert (strcasecmp (
"FAMILY_SELECTION", element_name) == 0);
26242 assert (strcasecmp (
"NVT_SELECTION", element_name) == 0);
26250 assert (strcasecmp (
"FAMILY", element_name) == 0);
26277 assert (strcasecmp (
"GROWING", element_name) == 0);
26282 openvas_free_string_var
26291 assert (strcasecmp (
"ALL", element_name) == 0);
26296 openvas_free_string_var
26305 assert (strcasecmp (
"GROWING", element_name) == 0);
26310 openvas_free_string_var
26320 assert (strcasecmp (
"NVT", element_name) == 0);
26331 assert (strcasecmp (
"VALUE", element_name) == 0);
26339 assert (strcasecmp (
"MODIFY_CREDENTIAL", element_name) == 0);
26359 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_credential"));
26360 log_event (
"credential",
"Credential",
26365 if (send_find_error_to_client
26366 (
"modify_credential",
"credential",
26370 error_send_to_client (error);
26373 log_event_fail (
"credential",
"Credential",
26378 SEND_TO_CLIENT_OR_FAIL
26380 "credential with new name" 26381 " exists already"));
26382 log_event_fail (
"credential",
"Credential",
26387 SEND_TO_CLIENT_OR_FAIL
26389 "MODIFY_credential requires a" 26390 " credential_id"));
26391 log_event_fail (
"credential",
"Credential",
26396 SEND_TO_CLIENT_OR_FAIL
26398 "Login name must not be empty and contain" 26399 " only alphanumeric characters"));
26400 log_event_fail (
"credential",
"Credential",
26405 SEND_TO_CLIENT_OR_FAIL
26407 "Invalid or empty certificate"));
26408 log_event_fail (
"credential",
"Credential",
26413 SEND_TO_CLIENT_OR_FAIL
26415 "Invalid or empty auth_algorithm"));
26416 log_event_fail (
"credential",
"Credential",
26421 SEND_TO_CLIENT_OR_FAIL
26423 "Invalid or empty privacy_algorithm"));
26424 log_event_fail (
"credential",
"Credential",
26429 SEND_TO_CLIENT_OR_FAIL
26431 "Invalid or empty private key"));
26432 log_event_fail (
"credential",
"Credential",
26437 SEND_TO_CLIENT_OR_FAIL
26439 "Permission denied"));
26440 log_event_fail (
"credential",
"Credential",
26447 log_event_fail (
"credential",
"Credential",
26477 assert (strcasecmp (
"MODIFY_FILTER", element_name) == 0);
26487 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_filter"));
26492 if (send_find_error_to_client (
"modify_filter",
"filter",
26496 error_send_to_client (error);
26499 log_event_fail (
"filter",
"Filter",
26503 SEND_TO_CLIENT_OR_FAIL
26505 "Filter with new name exists already"));
26506 log_event_fail (
"filter",
"Filter",
26510 SEND_TO_CLIENT_OR_FAIL
26512 "Error in type name"));
26513 log_event_fail (
"filter",
"Filter",
26517 SEND_TO_CLIENT_OR_FAIL
26519 "MODIFY_FILTER requires a filter_id"));
26520 log_event_fail (
"filter",
"Filter",
26524 SEND_TO_CLIENT_OR_FAIL
26526 "Filter is used by an alert so type must be" 26527 " 'result' if specified"));
26528 log_event_fail (
"filter",
"Filter",
26532 SEND_TO_CLIENT_OR_FAIL
26534 "Permission denied"));
26535 log_event_fail (
"filter",
"Filter",
26541 log_event_fail (
"filter",
"Filter",
26557 assert (strcasecmp (
"MODIFY_GROUP", element_name) == 0);
26566 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_group"));
26571 if (send_find_error_to_client (
"modify_group",
"group",
26575 error_send_to_client (error);
26578 log_event_fail (
"group",
"Group",
26582 SEND_TO_CLIENT_OR_FAIL
26584 "Failed to find user"));
26585 log_event_fail (
"group",
"Group",
26589 SEND_TO_CLIENT_OR_FAIL
26591 "MODIFY_GROUP requires a group_id" 26593 log_event_fail (
"group",
"Group",
26597 SEND_TO_CLIENT_OR_FAIL
26599 "Error in user name"));
26600 log_event_fail (
"group",
"Group",
26604 SEND_TO_CLIENT_OR_FAIL
26606 "Group with new name exists already"));
26607 log_event_fail (
"group",
"Group",
26611 SEND_TO_CLIENT_OR_FAIL
26613 "Permission denied"));
26614 log_event_fail (
"group",
"Group",
26620 log_event_fail (
"group",
"Group",
26639 assert (strcasecmp (
"MODIFY_NOTE", element_name) == 0);
26643 SEND_TO_CLIENT_OR_FAIL
26645 "Permission denied"));
26652 SEND_TO_CLIENT_OR_FAIL
26654 "MODIFY_NOTE requires a note_id attribute"));
26656 SEND_TO_CLIENT_OR_FAIL
26658 "MODIFY_NOTE requires a TEXT entity"));
26663 else if (note == 0)
26665 if (send_find_error_to_client (
"modify_note",
"note",
26669 error_send_to_client (error);
26687 if (send_find_error_to_client (
"modify_note",
"task",
26691 error_send_to_client (error);
26702 if (send_find_error_to_client (
"modify_note",
"result",
26706 error_send_to_client (error);
26721 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_note"));
26724 SEND_TO_CLIENT_OR_FAIL
26728 SEND_TO_CLIENT_OR_FAIL
26730 "Error in port specification"));
26735 SEND_TO_CLIENT_OR_FAIL
26737 "Error in severity specification"));
26743 SEND_TO_CLIENT_OR_FAIL
26766 assert (strcasecmp (
"MODIFY_OVERRIDE", element_name) == 0);
26770 SEND_TO_CLIENT_OR_FAIL
26772 "Permission denied"));
26779 SEND_TO_CLIENT_OR_FAIL
26781 "MODIFY_OVERRIDE requires a override_id attribute"));
26783 SEND_TO_CLIENT_OR_FAIL
26785 "MODIFY_OVERRIDE requires a TEXT entity"));
26788 "modify_override"))
26790 else if (
override == 0)
26792 if (send_find_error_to_client (
"modify_override",
"override",
26796 error_send_to_client (error);
26814 if (send_find_error_to_client (
"modify_override",
"task",
26818 error_send_to_client (error);
26829 if (send_find_error_to_client (
"modify_override",
"result",
26833 error_send_to_client (error);
26850 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_override"));
26853 SEND_TO_CLIENT_OR_FAIL
26855 "ACTIVE must be an integer >= -2"));
26858 SEND_TO_CLIENT_OR_FAIL
26860 "Error in port specification"));
26861 log_event_fail (
"override",
"Override",
26866 SEND_TO_CLIENT_OR_FAIL
26868 "Error in severity specification"));
26869 log_event_fail (
"override",
"Override",
26874 SEND_TO_CLIENT_OR_FAIL
26879 SEND_TO_CLIENT_OR_FAIL
26900 assert (strcasecmp (
"MODIFY_PERMISSION", element_name) == 0);
26903 SEND_TO_CLIENT_OR_FAIL
26905 "MODIFY_PERMISSION requires a permission_id attribute"));
26916 SEND_TO_CLIENT_OR_FAIL
26918 "Permission exists already"));
26919 log_event_fail (
"permission",
"Permission",
26924 if (send_find_error_to_client
26925 (
"modify_permission",
"subject",
26928 error_send_to_client (error);
26931 log_event_fail (
"permission",
"Permission",
26936 if (send_find_error_to_client
26937 (
"modify_permission",
"resource",
26940 error_send_to_client (error);
26943 log_event_fail (
"permission",
"Permission",
26948 SEND_TO_CLIENT_OR_FAIL
26950 "MODIFY_PERMISSION requires a PERMISSION" 26952 log_event_fail (
"permission",
"Permission",
26957 SEND_TO_CLIENT_OR_FAIL
26959 "Error in RESOURCE"));
26960 log_event_fail (
"permission",
"Permission",
26965 SEND_TO_CLIENT_OR_FAIL
26967 "Error in SUBJECT"));
26968 log_event_fail (
"permission",
"Permission",
26973 SEND_TO_CLIENT_OR_FAIL
26976 log_event_fail (
"permission",
"Permission",
26981 SEND_TO_CLIENT_OR_FAIL
26983 "NAME required to find resource"));
26984 log_event_fail (
"permission",
"Permission",
26989 SEND_TO_CLIENT_OR_FAIL
26991 "Permission does not accept a resource"));
26992 log_event_fail (
"permission",
"Permission", NULL,
"modified");
26995 SEND_TO_CLIENT_OR_FAIL
26997 "Permission denied"));
26998 log_event_fail (
"permission",
"Permission",
27003 SEND_TO_CLIENT_OR_FAIL
27005 log_event_fail (
"permission",
"Permission",
27011 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_permission"));
27012 log_event (
"permission",
"Permission",
27031 assert (strcasecmp (
"MODIFY_PORT_LIST", element_name) == 0);
27039 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_port_list"));
27040 log_event (
"port_list",
"Port List",
27044 if (send_find_error_to_client (
"modify_port_list",
"port_list",
27048 error_send_to_client (error);
27051 log_event_fail (
"port_list",
"Port List",
27056 SEND_TO_CLIENT_OR_FAIL
27058 "Port List with new name exists already"));
27059 log_event_fail (
"port_list",
"Port List",
27064 SEND_TO_CLIENT_OR_FAIL
27066 "modify_port_list requires a port_list_id"));
27067 log_event_fail (
"port_list",
"Port List",
27072 SEND_TO_CLIENT_OR_FAIL
27074 "Permission denied"));
27075 log_event_fail (
"port_list",
"Port List",
27082 log_event_fail (
"port_list",
"Port List",
27097 assert (strcasecmp (
"MODIFY_REPORT", element_name) == 0);
27104 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_report"));
27109 if (send_find_error_to_client (
"modify_report",
"report",
27113 error_send_to_client (error);
27116 log_event_fail (
"report",
"Report",
27121 SEND_TO_CLIENT_OR_FAIL
27123 "MODIFY_report requires a report_id"));
27124 log_event_fail (
"report",
"Report",
27129 SEND_TO_CLIENT_OR_FAIL
27132 "MODIFY_REPORT requires a COMMENT element"));
27135 SEND_TO_CLIENT_OR_FAIL
27137 "Permission denied"));
27138 log_event_fail (
"report",
"Report",
27145 log_event_fail (
"report",
"Report",
27159 assert (strcasecmp (
"MODIFY_REPORT_FORMAT", element_name) == 0);
27171 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_report_format"));
27172 log_event (
"report_format",
"Report Format",
27177 if (send_find_error_to_client
27178 (
"modify_report_format",
"report_format",
27182 error_send_to_client (error);
27185 log_event_fail (
"report_format",
"Report Format",
27190 SEND_TO_CLIENT_OR_FAIL
27192 (
"modify_report_format",
27193 "MODIFY_report_format requires a report_format_id"));
27194 log_event_fail (
"report_format",
"Report Format",
27199 if (send_find_error_to_client
27200 (
"modify_report_format",
"report format param",
27203 error_send_to_client (error);
27206 log_event_fail (
"report_format",
"Report Format",
27211 SEND_TO_CLIENT_OR_FAIL
27213 "Parameter validation failed"));
27214 log_event_fail (
"report_format",
"Report Format",
27219 SEND_TO_CLIENT_OR_FAIL
27221 "Permission denied"));
27222 log_event_fail (
"report_format",
"Report Format",
27229 (
"modify_report_format"));
27230 log_event_fail (
"report_format",
"Report Format",
27249 assert (strcasecmp (
"MODIFY_ROLE", element_name) == 0);
27258 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_role"));
27263 if (send_find_error_to_client (
"modify_role",
"role",
27267 error_send_to_client (error);
27270 log_event_fail (
"role",
"Role",
27274 SEND_TO_CLIENT_OR_FAIL
27276 "Failed to find user"));
27277 log_event_fail (
"role",
"Role",
27281 SEND_TO_CLIENT_OR_FAIL
27283 "MODIFY_ROLE requires a role_id" 27285 log_event_fail (
"role",
"Role",
27289 SEND_TO_CLIENT_OR_FAIL
27291 "Error in user name"));
27292 log_event_fail (
"role",
"Role",
27296 SEND_TO_CLIENT_OR_FAIL
27298 "Role with new name exists already"));
27299 log_event_fail (
"role",
"Role",
27303 SEND_TO_CLIENT_OR_FAIL
27305 "Permission denied"));
27306 log_event_fail (
"role",
"Role",
27312 log_event_fail (
"role",
"Role",
27326 assert (strcasecmp (
"MODIFY_SCANNER", element_name) == 0);
27327 return handle_modify_scanner (omp_parser, error);
27338 time_t first_time, period, period_months, duration;
27340 assert (strcasecmp (
"MODIFY_SCHEDULE", element_name) == 0);
27353 = time_from_strings
27361 SEND_TO_CLIENT_OR_FAIL
27363 "Failed to create time from FIRST_TIME" 27365 else if ((period = interval_from_strings
27370 SEND_TO_CLIENT_OR_FAIL
27372 "PERIOD out of range"));
27373 else if (period < -1)
27374 SEND_TO_CLIENT_OR_FAIL
27376 "Failed to create interval from PERIOD"));
27377 else if ((duration = interval_from_strings
27382 SEND_TO_CLIENT_OR_FAIL
27384 "DURATION out of range"));
27385 else if (duration < -1)
27386 SEND_TO_CLIENT_OR_FAIL
27388 "Failed to create interval from DURATION"));
27393 else if (period_months
27394 && (duration > (period_months * 60 * 60 * 24 * 28)))
27395 SEND_TO_CLIENT_OR_FAIL
27397 "Duration too long for number of months"));
27399 else if (period && (duration > period))
27400 SEND_TO_CLIENT_OR_FAIL
27402 "Duration is longer than period"));
27408 period == -1 ? 0 : period,
27410 duration == -1 ? 0 : duration,
27414 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_schedule"));
27415 log_event (
"schedule",
"Schedule",
27419 if (send_find_error_to_client (
"modify_schedule",
"schedule",
27423 error_send_to_client (error);
27426 log_event_fail (
"schedule",
"Schedule",
27431 SEND_TO_CLIENT_OR_FAIL
27433 "Schedule with new name exists already"));
27434 log_event_fail (
"schedule",
"Schedule",
27439 SEND_TO_CLIENT_OR_FAIL
27441 "Error in type name"));
27442 log_event_fail (
"schedule",
"Schedule",
27447 SEND_TO_CLIENT_OR_FAIL
27449 "MODIFY_SCHEDULE requires a schedule_id"));
27450 log_event_fail (
"schedule",
"Schedule",
27455 SEND_TO_CLIENT_OR_FAIL
27457 "Permission denied"));
27458 log_event_fail (
"schedule",
"Schedule",
27465 log_event_fail (
"schedule",
"Schedule",
27494 gchar *errdesc = NULL;
27499 SEND_TO_CLIENT_OR_FAIL
27501 "MODIFY_SETTING requires a NAME or setting_id" 27509 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_setting"));
27512 SEND_TO_CLIENT_OR_FAIL
27514 "Failed to find setting"));
27517 SEND_TO_CLIENT_OR_FAIL
27519 "Value validation failed"));
27522 SEND_TO_CLIENT_OR_FAIL
27524 "Permission denied"));
27529 char *buf = make_xml_error_syntax (
"modify_setting",
27531 SEND_TO_CLIENT_OR_FAIL (buf);
27537 SEND_TO_CLIENT_OR_FAIL
27551 assert (strcasecmp (
"MODIFY_TAG", element_name) == 0);
27554 SEND_TO_CLIENT_OR_FAIL
27556 "MODIFY_TAG requires a tag_id attribute"));
27559 SEND_TO_CLIENT_OR_FAIL
27561 "name in MODIFY_TAG must be at least one" 27562 " character long or omitted completely"));
27565 SEND_TO_CLIENT_OR_FAIL
27567 "TYPE in MODIFY_TAG/RESOURCE must be" 27568 " a valid resource type."));
27571 SEND_TO_CLIENT_OR_FAIL
27573 "TYPE type in MODIFY_TAG/RESOURCE must not" 27581 SEND_TO_CLIENT_OR_FAIL
27583 "RESOURCE id must refer to an" 27584 " existing resource or be empty."));
27594 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_tag"));
27599 if (send_find_error_to_client (
"modify_tag",
"tag",
27603 error_send_to_client (error);
27610 SEND_TO_CLIENT_OR_FAIL
27612 "MODIFY_TAG requires a tag_id"));
27616 SEND_TO_CLIENT_OR_FAIL
27618 "Permission denied"));
27623 SEND_TO_CLIENT_OR_FAIL
27645 assert (strcasecmp (
"MODIFY_TARGET", element_name) == 0);
27648 SEND_TO_CLIENT_OR_FAIL
27650 "MODIFY_TARGET requires a target_id" 27677 SEND_TO_CLIENT_OR_FAIL
27679 "Target exists already"));
27680 log_event_fail (
"target",
"Target",
27685 SEND_TO_CLIENT_OR_FAIL
27687 "Error in host specification"));
27688 log_event_fail (
"target",
"Target",
27693 SEND_TO_CLIENT_OR_FAIL
27695 "Host specification exceeds maximum number" 27697 log_event_fail (
"target",
"Target",
27702 SEND_TO_CLIENT_OR_FAIL
27704 "Error in port range"));
27705 log_event_fail (
"target",
"Target",
27710 SEND_TO_CLIENT_OR_FAIL
27712 "Error in SSH port"));
27713 log_event_fail (
"target",
"Target",
27718 log_event_fail (
"target",
"Target",
27721 if (send_find_error_to_client
27722 (
"modify_target",
"port_list",
27725 error_send_to_client (error);
27730 log_event_fail (
"target",
"Target",
27733 if (send_find_error_to_client
27734 (
"modify_target",
"Credential",
27740 error_send_to_client (error);
27745 log_event_fail (
"target",
"Target",
27748 if (send_find_error_to_client
27749 (
"modify_target",
"Credential",
27755 error_send_to_client (error);
27760 log_event_fail (
"target",
"Target",
27763 if (send_find_error_to_client
27767 error_send_to_client (error);
27772 SEND_TO_CLIENT_OR_FAIL
27774 "Error in alive test"));
27775 log_event_fail (
"target",
"Target",
27780 SEND_TO_CLIENT_OR_FAIL
27782 "MODIFY_TARGET name must be at" 27783 " least one character long"));
27784 log_event_fail (
"target",
"Target",
27789 SEND_TO_CLIENT_OR_FAIL
27791 "MODIFY_TARGET EXCLUDE_HOSTS requires" 27793 log_event_fail (
"target",
"Target",
27798 SEND_TO_CLIENT_OR_FAIL
27800 "MODIFY_TARGET with a HOSTS requires an" 27801 " EXCLUDE_HOSTS"));
27802 log_event_fail (
"target",
"Target",
27807 SEND_TO_CLIENT_OR_FAIL
27809 "MODIFY_TARGET HOSTS must be at least one" 27810 "character long"));
27811 log_event_fail (
"target",
"Target",
27816 SEND_TO_CLIENT_OR_FAIL
27818 "Target is in use"));
27819 log_event_fail (
"target",
"Target",
27824 log_event_fail (
"target",
"Target",
27827 if (send_find_error_to_client
27828 (
"modify_target",
"Credential",
27834 error_send_to_client (error);
27839 log_event_fail (
"target",
"Target",
27842 if (send_find_error_to_client
27843 (
"modify_target",
"Credential",
27847 error_send_to_client (error);
27852 SEND_TO_CLIENT_OR_FAIL
27854 "SSH credential must be of type" 27855 " 'up' or 'usk'"));
27856 log_event_fail (
"target",
"Target",
27860 SEND_TO_CLIENT_OR_FAIL
27862 "SMB credential must be of type" 27864 log_event_fail (
"target",
"Target",
27868 SEND_TO_CLIENT_OR_FAIL
27870 "ESXi credential must be of type" 27872 log_event_fail (
"target",
"Target",
27876 SEND_TO_CLIENT_OR_FAIL
27878 "SNMP credential must be of type" 27880 log_event_fail (
"target",
"Target",
27884 SEND_TO_CLIENT_OR_FAIL
27886 "Permission denied"));
27887 log_event_fail (
"target",
"Target",
27892 SEND_TO_CLIENT_OR_FAIL
27894 log_event_fail (
"target",
"Target",
27900 SENDF_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_target"));
27932 assert (strcasecmp (
"MODIFY_TASK", element_name) == 0);
27936 SEND_TO_CLIENT_OR_FAIL
27938 "Permission denied"));
27952 else if (task == 0)
27954 if (send_find_error_to_client (
"modify_task",
"task",
27958 error_send_to_client (error);
27967 SEND_TO_CLIENT_OR_FAIL
27969 "Too many parameters at once"));
27973 SEND_TO_CLIENT_OR_FAIL
27975 "For container tasks only name, comment and" 27976 " observers can be modified"));
27984 SEND_TO_CLIENT_OR_FAIL
27986 "Config and Scanner types mismatch"));
27989 if (send_find_error_to_client
27990 (
"modify_task",
"config",
27994 error_send_to_client (error);
27999 if (send_find_error_to_client
28000 (
"modify_task",
"scanner",
28004 error_send_to_client (error);
28012 SEND_TO_CLIENT_OR_FAIL
28020 SEND_TO_CLIENT_OR_FAIL
28022 "MODIFY_TASK FILE requires a name" 28033 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_task"));
28040 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_task"));
28044 SEND_TO_CLIENT_OR_FAIL
28046 "MODIFY_TASK action must be" 28047 " \"update\" or \"remove\""));
28048 log_event_fail (
"task",
"Task",
28055 int fail = 0, type_of_scanner;
28073 SEND_TO_CLIENT_OR_FAIL
28075 log_event_fail (
"task",
"Task",
28089 SEND_TO_CLIENT_OR_FAIL
28091 log_event_fail (
"task",
"Task",
28107 SEND_TO_CLIENT_OR_FAIL
28109 (
"modify_task",
"Status must be New to edit Scanner"));
28114 SEND_TO_CLIENT_OR_FAIL
28116 else if (scanner == 0)
28118 if (send_find_error_to_client
28119 (
"modify_task",
"scanner",
28122 error_send_to_client (error);
28149 SEND_TO_CLIENT_OR_FAIL
28151 "Status must be New to edit Config"));
28156 SEND_TO_CLIENT_OR_FAIL
28158 else if (config == 0)
28160 if (send_find_error_to_client
28161 (
"modify_task",
"config",
28164 error_send_to_client (error);
28183 SEND_TO_CLIENT_OR_FAIL
28185 "User name error"));
28186 log_event_fail (
"task",
"Task",
28192 SEND_TO_CLIENT_OR_FAIL
28194 log_event_fail (
"task",
"Task",
28202 gchar *fail_alert_id;
28210 if (send_find_error_to_client
28211 (
"modify_task",
"alert", fail_alert_id,
28214 error_send_to_client (error);
28218 log_event_fail (
"task",
"Task",
28224 SEND_TO_CLIENT_OR_FAIL
28226 log_event_fail (
"task",
"Task",
28236 SEND_TO_CLIENT_OR_FAIL
28238 "Task must be New to modify" 28239 " Alterable state"));
28250 gchar *fail_group_id;
28258 if (send_find_error_to_client
28259 (
"modify_task",
"group", fail_group_id,
28262 error_send_to_client (error);
28266 log_event_fail (
"task",
"Task",
28272 SEND_TO_CLIENT_OR_FAIL
28274 log_event_fail (
"task",
"Task",
28297 SEND_TO_CLIENT_OR_FAIL
28299 else if (schedule == 0)
28301 if (send_find_error_to_client
28302 (
"modify_task",
"schedule",
28305 error_send_to_client (error);
28312 SEND_TO_CLIENT_OR_FAIL
28335 SEND_TO_CLIENT_OR_FAIL
28337 "Status must be New to edit Target"));
28342 SEND_TO_CLIENT_OR_FAIL
28344 else if (target == 0)
28346 if (send_find_error_to_client
28347 (
"modify_task",
"target",
28350 error_send_to_client (error);
28366 SEND_TO_CLIENT_OR_FAIL
28368 "Invalid auto_delete value"));
28372 SENDF_TO_CLIENT_OR_FAIL
28374 "Auto Delete count out of range" 28375 " (must be from %d to %d)"),
28380 SEND_TO_CLIENT_OR_FAIL
28393 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_task"));
28398 SEND_TO_CLIENT_OR_FAIL
28400 "MODIFY_TASK requires a task_id attribute"));
28421 assert (strcasecmp (
"PREFERENCE", element_name) == 0);
28428 assert (strcasecmp (
"SCANNER_NAME", element_name) == 0);
28435 assert (strcasecmp (
"MODIFY_USER", element_name) == 0);
28445 "MODIFY_USER requires NAME or user_id"));
28448 gchar *fail_group_id, *fail_role_id, *errdesc;
28471 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_user"));
28474 if (send_find_error_to_client
28475 (
"modify_user",
"group", fail_group_id, omp_parser))
28477 error_send_to_client (error);
28482 if (send_find_error_to_client
28483 (
"modify_user",
"user",
28487 error_send_to_client (error);
28492 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_user"));
28494 "raised to Admin role");
28497 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"modify_user"));
28499 "downgraded from Admin role");
28502 if (send_find_error_to_client
28503 (
"modify_user",
"role", fail_role_id, omp_parser))
28505 error_send_to_client (error);
28510 SEND_TO_CLIENT_OR_FAIL
28512 "Error in host specification"));
28513 log_event_fail (
"user",
"User", NULL,
"modified");
28516 SEND_TO_CLIENT_OR_FAIL
28518 "Error in user name"));
28519 log_event_fail (
"user",
"User", NULL,
"modified");
28524 "User with name exists already"));
28525 log_event_fail (
"user",
"User", NULL,
"modified");
28528 SEND_TO_CLIENT_OR_FAIL
28530 "Permission denied"));
28534 (
"modify_user",
"Unknown role"));
28538 (
"modify_user",
"Error in SOURCES"));
28543 char *buf = make_xml_error_syntax (
"modify_user", errdesc);
28544 SEND_TO_CLIENT_OR_FAIL (buf);
28568 assert (strcasecmp (
"SOURCES", element_name) == 0);
28573 assert (strcasecmp (
"SOURCE", element_name) == 0);
28585 SEND_TO_CLIENT_OR_FAIL
28587 "MOVE_TASK requires a non-empty task_id" 28594 SEND_TO_CLIENT_OR_FAIL
28596 "MOVE_TASK requires a slave_id attribute"));
28604 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"move_task"));
28610 g_debug (
" %s: move_task fork success\n", __FUNCTION__);
28611 g_set_error (error,
28613 G_MARKUP_ERROR_INVALID_CONTENT,
28614 "Dummy error for current_error");
28617 if (send_find_error_to_client (
"move_task",
28622 error_send_to_client (error);
28627 if (send_find_error_to_client (
"move_task",
28632 error_send_to_client (error);
28637 SEND_TO_CLIENT_OR_FAIL
28639 "Task must use an OpenVAS scanner to assign" 28643 SEND_TO_CLIENT_OR_FAIL
28645 "Task cannot be stopped at the moment."));
28648 SEND_TO_CLIENT_OR_FAIL
28650 "Scanner does not allow stopping" 28654 SEND_TO_CLIENT_OR_FAIL
28656 "Destination scanner does not support" 28660 SEND_TO_CLIENT_OR_FAIL
28662 "Permission to stop and resume denied"));
28665 SEND_TO_CLIENT_OR_FAIL
28667 "Permission denied"));
28670 SEND_TO_CLIENT_OR_FAIL
28682 gchar *script_message = NULL;
28687 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"test_alert"));
28690 if (send_find_error_to_client
28694 error_send_to_client (error);
28699 SEND_TO_CLIENT_OR_FAIL
28701 "Permission denied"));
28705 SEND_TO_CLIENT_OR_FAIL
28709 SEND_TO_CLIENT_OR_FAIL
28711 "Failed to find report format for" 28715 SEND_TO_CLIENT_OR_FAIL
28717 "Failed to find filter for alert"));
28720 SEND_TO_CLIENT_OR_FAIL
28722 "Failed to find credential for alert"));
28725 if (script_message)
28728 msg = g_markup_printf_escaped
28729 (
"<test_alert_response status=\"400\"" 28730 " status_text=\"Alert script failed\">" 28731 "<status_details>%s</status_details>" 28732 "</test_alert_response>",
28738 error_send_to_client (error);
28745 SEND_TO_CLIENT_OR_FAIL
28747 "Alert script failed"));
28752 SEND_TO_CLIENT_OR_FAIL
28758 SEND_TO_CLIENT_OR_FAIL
28760 "TEST_ALERT requires an alert_id" 28772 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"restore"));
28777 SEND_TO_CLIENT_OR_FAIL
28779 "Resource refers into trashcan"));
28782 if (send_find_error_to_client (
"restore",
"resource",
28785 error_send_to_client (error);
28790 SEND_TO_CLIENT_OR_FAIL
28792 "A resource with this name exists" 28796 SEND_TO_CLIENT_OR_FAIL
28798 "A resource with this UUID exists" 28802 SEND_TO_CLIENT_OR_FAIL
28804 "Permission denied"));
28814 SEND_TO_CLIENT_OR_FAIL
28816 "RESTORE requires an id attribute"));
28836 msg = g_strdup_printf
28837 (
"<resume_task_response" 28842 "<report_id>%s</report_id>" 28843 "</resume_task_response>",
28846 if (send_to_client (msg,
28848 write_to_client_data))
28851 error_send_to_client (error);
28857 log_event (
"task",
"Task",
28862 SEND_TO_CLIENT_OR_FAIL
28864 "Task is active already"));
28865 log_event_fail (
"task",
"Task",
28870 SEND_TO_CLIENT_OR_FAIL
28872 "Task must be in Stopped state"));
28873 log_event_fail (
"task",
"Task",
28880 g_debug (
" %s: resume_task fork success\n", __FUNCTION__);
28881 g_set_error (error,
28883 G_MARKUP_ERROR_INVALID_CONTENT,
28884 "Dummy error for current_error");
28887 SEND_TO_CLIENT_OR_FAIL
28889 "Resuming not supported"));
28890 log_event_fail (
"task",
"Task",
28895 if (send_find_error_to_client
28899 error_send_to_client (error);
28904 SEND_TO_CLIENT_OR_FAIL
28906 "Permission denied"));
28907 log_event_fail (
"task",
"Task",
28914 g_debug (
" %s: resume_task fork error\n", __FUNCTION__);
28915 g_set_error (error,
28917 G_MARKUP_ERROR_INVALID_CONTENT,
28918 "Dummy error for current_error");
28921 SEND_TO_CLIENT_OR_FAIL
28923 "There is already a task running in" 28925 log_event_fail (
"task",
"Task",
28942 log_event_fail (
"task",
"Task",
28948 log_event_fail (
"task",
"Task",
28953 SEND_TO_CLIENT_OR_FAIL
28955 log_event_fail (
"task",
"Task",
28962 log_event_fail (
"task",
"Task",
28970 SEND_TO_CLIENT_OR_FAIL
28972 "RESUME_TASK requires a task_id" 28981 gchar *command_error, *command_error_code;
28982 gchar *response = NULL;
28990 (int (*) (
void *, gchar *, gchar **))
28997 &command_error_code,
29006 msg = g_strdup_printf
29007 (
"<run_wizard_response" 29009 " status_text=\"%s\">" 29011 "</run_wizard_response>",
29012 command_error_code ? command_error_code
29014 command_error ? command_error
29016 response ?
"<response>" :
"",
29017 response ? response :
"",
29018 response ?
"</response>" :
"");
29019 if (send_to_client (msg,
29021 write_to_client_data))
29025 error_send_to_client (error);
29038 SEND_TO_CLIENT_OR_FAIL
29040 "NAME characters must be alphanumeric" 29041 " or underscore"));
29051 g_debug (
" %s: run_wizard fork success\n", __FUNCTION__);
29052 g_set_error (error,
29054 G_MARKUP_ERROR_INVALID_CONTENT,
29055 "Dummy error for current_error");
29063 msg = g_strdup_printf
29064 (
"<run_wizard_response" 29066 " status_text=\"%s\"/>",
29067 command_error_code ? command_error_code
29069 command_error ? command_error :
"Internal Error");
29071 g_free (command_error);
29072 if (send_to_client (msg,
29074 write_to_client_data))
29077 error_send_to_client (error);
29088 SEND_TO_CLIENT_OR_FAIL
29090 "Wizard is not marked as read only"));
29096 SEND_TO_CLIENT_OR_FAIL
29098 "Permission denied"));
29115 msg = g_strdup_printf
29116 (
"<run_wizard_response" 29120 ": Wizard filled up to_scanner buffer\">" 29121 "</run_wizard_response>");
29122 if (send_to_client (msg,
29124 write_to_client_data))
29127 error_send_to_client (error);
29132 "run: to_scanner buffer full");
29140 g_debug (
" %s: run_wizard fork error\n", __FUNCTION__);
29141 g_set_error (error,
29143 G_MARKUP_ERROR_INVALID_CONTENT,
29144 "Dummy error for current_error");
29151 "RUN_WIZARD requires a NAME" 29164 assert (strcasecmp (
"PARAM", element_name) == 0);
29179 char *report_id = NULL;
29186 msg = g_strdup_printf
29187 (
"<start_task_response" 29192 "<report_id>%s</report_id>" 29193 "</start_task_response>",
29195 g_free (report_id);
29196 if (send_to_client (msg,
29198 write_to_client_data))
29201 error_send_to_client (error);
29206 "requested to start");
29211 SEND_TO_CLIENT_OR_FAIL
29213 "Task is active already"));
29214 log_event_fail (
"task",
"Task",
29221 g_debug (
" %s: start_task fork success\n", __FUNCTION__);
29222 g_set_error (error,
29224 G_MARKUP_ERROR_INVALID_CONTENT,
29225 "Dummy error for current_error");
29228 if (send_find_error_to_client (
"start_task",
"task",
29232 error_send_to_client (error);
29237 SEND_TO_CLIENT_OR_FAIL
29239 "Permission denied"));
29240 log_event_fail (
"task",
"Task",
29247 SEND_TO_CLIENT_OR_FAIL
29249 "Task must have a target"));
29250 log_event_fail (
"task",
"Task",
29265 log_event_fail (
"task",
"Task",
29271 log_event_fail (
"task",
"Task",
29276 SEND_TO_CLIENT_OR_FAIL
29278 "There is already a task running in" 29280 log_event_fail (
"task",
"Task",
29285 SEND_TO_CLIENT_OR_FAIL
29287 log_event_fail (
"task",
"Task",
29294 g_debug (
" %s: start_task fork error\n", __FUNCTION__);
29295 g_set_error (error,
29297 G_MARKUP_ERROR_INVALID_CONTENT,
29298 "Dummy error for current_error");
29303 log_event_fail (
"task",
"Task",
29311 SEND_TO_CLIENT_OR_FAIL
29313 "START_TASK requires a task_id attribute"));
29324 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"stop_task"));
29331 "requested to stop");
29334 if (send_find_error_to_client (
"stop_task",
"task",
29338 error_send_to_client (error);
29343 SEND_TO_CLIENT_OR_FAIL
29345 "Permission denied"));
29346 log_event_fail (
"task",
"Task",
29352 log_event_fail (
"task",
"Task",
29357 SEND_TO_CLIENT_OR_FAIL
29359 log_event_fail (
"task",
"Task",
29373 SEND_TO_CLIENT_OR_FAIL
29375 "STOP_TASK requires a task_id attribute"));
29399 g_debug (
" %s: sync_cert fork success\n", __FUNCTION__);
29400 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29401 "Dummy error for current_error");
29406 g_debug (
" %s: sync_cert fork success busy\n", __FUNCTION__);
29407 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29408 "Dummy error for current_error");
29411 SEND_TO_CLIENT_OR_FAIL
29413 "Permission denied"));
29418 g_debug (
" %s: sync_cert fork error\n", __FUNCTION__);
29419 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29420 "Dummy error for current_error");
29451 g_debug (
" %s: sync_feed fork success\n", __FUNCTION__);
29452 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29453 "Dummy error for current_error");
29458 g_debug (
" %s: sync_feed fork success busy\n", __FUNCTION__);
29459 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29460 "Dummy error for current_error");
29465 g_debug (
" %s: sync_feed fork error\n", __FUNCTION__);
29466 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29467 "Dummy error for current_error");
29470 SEND_TO_CLIENT_OR_FAIL
29472 "Permission denied"));
29484 assert (strcasecmp (
"SYNC_CONFIG", element_name) == 0);
29485 return handle_sync_config (omp_parser, error);
29506 g_debug (
" %s: sync_scap fork success\n", __FUNCTION__);
29507 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29508 "Dummy error for current_error");
29513 g_debug (
" %s: sync_scap fork success busy\n", __FUNCTION__);
29514 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29515 "Dummy error for current_error");
29518 SEND_TO_CLIENT_OR_FAIL
29520 "Permission denied"));
29525 g_debug (
" %s: sync_scap fork error\n", __FUNCTION__);
29526 g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
29527 "Dummy error for current_error");
29539 assert (strcasecmp (
"VERIFY_AGENT", element_name) == 0);
29545 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"verify_agent"));
29548 if (send_find_error_to_client
29552 error_send_to_client (error);
29557 SEND_TO_CLIENT_OR_FAIL
29559 "Permission denied"));
29562 SEND_TO_CLIENT_OR_FAIL
29568 SEND_TO_CLIENT_OR_FAIL
29570 "VERIFY_AGENT requires a agent_id" 29577 assert (strcasecmp (
"VERIFY_REPORT_FORMAT", element_name) == 0);
29584 SEND_TO_CLIENT_OR_FAIL (
XML_OK (
"verify_report_format"));
29587 if (send_find_error_to_client
29588 (
"verify_report_format",
"report format",
29592 error_send_to_client (error);
29597 SEND_TO_CLIENT_OR_FAIL
29599 "Permission denied"));
29602 SEND_TO_CLIENT_OR_FAIL
29608 SEND_TO_CLIENT_OR_FAIL
29610 "VERIFY_REPORT_FORMAT requires a report_format_id" 29617 assert (strcasecmp (
"VERIFY_SCANNER", element_name) == 0);
29620 char *version = NULL;
29624 SENDF_TO_CLIENT_OR_FAIL
29625 (
"<verify_scanner_response status=\"" STATUS_OK "\"" 29627 "<version>%s</version>" 29628 "</verify_scanner_response>", version);
29631 if (send_find_error_to_client
29632 (
"verify_scanner",
"scanner",
29635 error_send_to_client (error);
29640 SEND_TO_CLIENT_OR_FAIL
29642 "Service unavailable"));
29645 SEND_TO_CLIENT_OR_FAIL
29649 SEND_TO_CLIENT_OR_FAIL
29654 (
"verify_scanner"));
29659 SEND_TO_CLIENT_OR_FAIL
29661 " scanner_id attribute"));
29678 #define APPEND(state, dest) \ 29680 openvas_append_text (dest, text, text_len); \ 29698 omp_xml_handle_text ( GMarkupParseContext* context,
29701 gpointer user_data,
29704 if (text_len == 0)
return;
29705 g_debug (
" XML text: %s\n", text);
29706 switch (client_state)
30482 gchar *data_column = last->data;
30483 openvas_append_text (&data_column, text, text_len);
30484 last->data = data_column;
30491 gchar *text_column = last->data;
30492 openvas_append_text (&text_column, text, text_len);
30493 last->data = text_column;
30776 omp_xml_handle_error ( GMarkupParseContext* context,
30778 gpointer user_data)
30780 g_debug (
" XML ERROR %s\n", error->message);
30815 int max_ips_per_target,
int max_email_attachment_size,
30816 int max_email_include_size,
int max_email_message_size,
30818 int (*fork_connection) (openvas_connection_t *, gchar*),
30823 (GLogFunc) openvas_log_func,
30827 max_email_attachment_size, max_email_include_size,
30828 max_email_message_size,
30829 progress, fork_connection, skip_db_check);
30847 int (*write_to_client) (
const char*,
void*),
30848 void* write_to_client_data, gchar **disable)
30856 xml_parser.start_element = omp_xml_handle_start_element;
30857 xml_parser.end_element = omp_xml_handle_end_element;
30858 xml_parser.text = omp_xml_handle_text;
30859 xml_parser.passthrough = NULL;
30860 xml_parser.error = omp_xml_handle_error;
30862 g_markup_parse_context_free (xml_context);
30863 xml_context = g_markup_parse_context_new
30898 GError* error = NULL;
30907 if (xml_context == NULL)
return -1;
30910 success = g_markup_parse_context_parse (xml_context,
30914 if (success == FALSE)
30920 if (g_error_matches (error,
30922 G_MARKUP_ERROR_UNKNOWN_ELEMENT))
30923 g_debug (
" client error: G_MARKUP_ERROR_UNKNOWN_ELEMENT\n");
30924 else if (g_error_matches (error,
30926 G_MARKUP_ERROR_INVALID_CONTENT))
30932 g_error_free (error);
30935 g_debug (
" client error: G_MARKUP_ERROR_INVALID_CONTENT\n");
30937 else if (g_error_matches (error,
30939 G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE))
30940 g_debug (
" client error: G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE\n");
30943 g_info (
" Failed to parse client XML: %s\n", error->message);
30944 g_error_free (error);
30970 g_debug (
"-> client internal: %s\n", msg);
30971 g_string_append ((GString*) buffer, msg);
30999 process_omp (
omp_parser_t *parser,
const gchar *command, gchar **response)
31002 GError* error = NULL;
31004 int (*client_writer) (
const char*,
void*);
31005 void* client_writer_data;
31006 GMarkupParseContext *old_xml_context;
31013 if (response) *response = NULL;
31015 old_xml_context = xml_context;
31016 xml_context = g_markup_parse_context_new (&xml_parser, 0, parser, NULL);
31017 if (xml_context == NULL)
31019 xml_context = old_xml_context;
31025 old_client_state = client_state;
31027 buffer = g_string_new (
"");
31033 success = g_markup_parse_context_parse (xml_context,
31039 xml_context = old_xml_context;
31040 client_state = old_client_state;
31042 if (success == FALSE)
31048 if (g_error_matches (error,
31050 G_MARKUP_ERROR_UNKNOWN_ELEMENT))
31051 g_debug (
" client error: G_MARKUP_ERROR_UNKNOWN_ELEMENT\n");
31052 else if (g_error_matches (error,
31054 G_MARKUP_ERROR_INVALID_CONTENT))
31060 g_error_free (error);
31063 g_debug (
" client error: G_MARKUP_ERROR_INVALID_CONTENT\n");
31065 else if (g_error_matches (error,
31067 G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE))
31068 g_debug (
" client error: G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE\n");
31071 g_info (
" Failed to parse client XML: %s\n", error->message);
31072 g_error_free (error);
31080 *response = g_string_free (buffer, FALSE);
31082 g_string_free (buffer, TRUE);
void append_to_task_comment(task_t, const char *, int)
int init_omp(GSList *log_config, int nvt_cache_mode, const gchar *database, int max_ips_per_target, int max_email_attachment_size, int max_email_include_size, int max_email_message_size, void(*progress)(), int(*fork_connection)(openvas_connection_t *, gchar *), int skip_db_check)
Initialise OMP library.
#define STATUS_OK_REQUESTED
Response code on success, when the operation will finish later.
int move_task(const char *task_id, const char *slave_id)
Reassign a task to another slave.
char * reverse_lookup_unify
Boolean. Whether to unify based on reverse lookup.
char * target_port_range(target_t)
const char * report_iterator_uuid(iterator_t *)
int report_format_predefined(report_format_t)
char * smb_credential_id
SMB credential for target.
char * ssh_lsc_port
Port for SSH (deprecated).
array_t * families_static_all
New family selection: static, all NVTs.
char * copy
UUID of resource to copy.
void init_config_task_iterator(iterator_t *, config_t, int)
int buffer_get_filter_xml(GString *, const char *, const get_data_t *, const char *, const char *)
int copy_port_list(const char *, const char *, const char *, port_list_t *)
const char * override_iterator_new_threat(iterator_t *)
int key
Whether the command included a key element.
int verify_report_format(const char *)
task_t task
ID of new task.
create_scanner_data_t * create_scanner_data
Parser callback data for CREATE_SCANNER.
create_filter_data_t create_filter
create_filter
char * first_time_day_of_month
Day of month schedule must first run.
GSList * curr_group_settings
Settings of currently parsed group.
char * threat
Threat to which to limit override.
void init_omp_process(int update_nvt_cache, const gchar *database, int(*write_to_client)(const char *, void *), void *write_to_client_data, gchar **disable)
Initialise OMP library data for a process.
alert_condition_t
Types of alert conditions.
#define INIT_GET(type, capital)
Call init_get for a GET end handler.
Command data for the create_task command.
char * id
ID of resource to restore.
get_scanners_data_t get_scanners
get_scanners
long long int permission_t
const char * preference_iterator_name(iterator_t *)
char * result_nvt_oid
OID of NVT for current result.
int start_task(const char *task_id, char **report_id)
Start a task.
const char * result_iterator_nvt_cvss_base(iterator_t *)
const char * report_format_iterator_description(iterator_t *)
int schedule_task_iterator_readable(iterator_t *)
int details
Boolean. Whether to include full details.
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.
Command data for the get_targets command.
int first
Skip over rows before this number.
void init_cve_dfn_cert_adv_iterator(iterator_t *, const char *, int, const char *)
char * key_private
Private key from key.
double aggregate_iterator_max(iterator_t *, int)
Get the maximum from an aggregate iterator.
array_t * groups
IDs of groups.
const char * credential_iterator_auth_algorithm(iterator_t *)
void init_manage_process(int, const gchar *)
Initialize the manage library for a process.
void init_port_list_target_iterator(iterator_t *, port_list_t, int)
#define TO_CLIENT_BUFFER_SIZE
The size of the to_client data buffer, in bytes.
const char * tag_iterator_value(iterator_t *)
int user_role_iterator_readable(iterator_t *)
int modify_group(const char *, const char *, const char *, const char *)
int delete_user(const char *, const char *, int, int, const char *, const char *)
delete_credential_data_t delete_credential
delete_credential
const char * filter_iterator_type(iterator_t *)
const char * target_iterator_alive_tests(iterator_t *)
int init_credential_iterator(iterator_t *, const get_data_t *)
char * first_time_minute
Minute schedule must first run.
const char * resource_tag_iterator_value(iterator_t *)
get_groups_data_t * get_groups_data
Parser callback data for GET_GROUPS.
const char * report_format_iterator_trust(iterator_t *)
char * agent_id
ID of agent to delete.
int trash
Boolean. Whether to return from trashcan.
create_asset_data_t create_asset
create_asset
GSList * log_config
Logging parameters, as passed to setup_log_handlers.
array_t * groups
IDs of groups.
int modify_note(note_t, const char *, const char *, const char *, const char *, const char *, const char *, task_t, result_t)
int ultimate
Boolean. Whether to remove entirely or to trashcan.
const char * result_iterator_nvt_xref(iterator_t *)
const char * ovaldef_info_iterator_description(iterator_t *)
modify_config_data_t * modify_config_data
Parser callback data for MODIFY_CONFIG.
char * nvt_oid
OID of NVT to which to limit listing.
Command data for the create_report command.
char * default_value
Default value of preference.
int ultimate
Boolean. Whether to remove entirely or to trashcan.
int process_omp_write(const char *msg, void *buffer)
Buffer the response for process_omp.
int config_iterator_nvt_count(iterator_t *)
alert_condition_t alert_condition_from_name(const char *name)
Get an alert condition from a name.
int config_count(const get_data_t *)
get_users_data_t get_users
get_users
Command data for the modify_agent command.
Command data for the delete_tag command.
const char * host_identifier_iterator_os_id(iterator_t *)
const char * host_identifier_iterator_value(iterator_t *)
int resume_task(const char *task_id, char **report_id)
Resume a task.
Command data for the create_role command.
char * name
Name of new group.
const char * override_iterator_nvt_name(iterator_t *)
task_t override_iterator_task(iterator_t *)
int skip
The amount of entries to skip at start.
int modify_scanner(const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *)
void init_nvt_cert_bund_adv_iterator(iterator_t *, const char *, int, const char *)
get_roles_data_t * get_roles_data
Parser callback data for GET_ROLES.
const char * host_identifier_iterator_os_title(iterator_t *)
int set_task_preferences(task_t, array_t *)
char * preference_default
Default value in PREFERENCE.
char * hosts
Hosts for new target.
char * credential_id
UUID of credential for new scanner.
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.
const char * report_format_param_iterator_name(iterator_t *)
int create_credential(const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, credential_t *)
char * filter_id
UUID of filter.
long long int credential_t
const char * result_iterator_nvt_tag(iterator_t *)
int process_omp_change()
Deal with any changes caused by other processes.
gchar * file_iterator_content_64(file_iterator_t *iterator)
Return the file contents from a file iterator.
scanner_t config_scanner(config_t)
char * name
Name of preference.
int cve_info_count(const get_data_t *get)
char * result_id
ID of result to which to limit override.
Command data for the get_results command.
void init_scanner_task_iterator(iterator_t *, scanner_t)
get_nvts_data_t * get_nvts_data
Parser callback data for GET_NVTS.
Command data for the create_credential command.
char * method
Method of alert, e.g. "Email".
const char * note_iterator_port(iterator_t *)
get_tasks_data_t * get_tasks_data
Parser callback data for GET_TASKS.
char * event
Event that will cause alert.
report_format_param_type_t report_format_param_iterator_type(iterator_t *)
get_notes_data_t get_notes
get_notes
char * filter
Filter term.
const char * agent_iterator_installer_64(iterator_t *)
modify_target_data_t modify_target
modify_target
char * group_column
Column to group data by.
int ultimate
Boolean. Whether to remove entirely or to trashcan.
create_port_range_data_t * create_port_range_data
Parser callback data for CREATE_PORT_RANGE.
schedule_t task_schedule_uuid(const gchar *)
Return the schedule of a task.
#define MIN_QOD_DEFAULT
Default min quality of detection percentage for filters.
void omp_parser_free(omp_parser_t *omp_parser)
Free an OMP parser.
Helper data structure for word counts.
get_preferences_data_t * get_preferences_data
Parser callback data for GET_PREFERENCES.
void set_task_target(task_t, target_t)
Set the target of a task.
const char * report_format_alert_iterator_uuid(iterator_t *)
const char * task_iterator_first_report(iterator_t *)
Get the first report UUID from a task iterator.
char * first_time_year
Year schedule must first run.
int task_target_in_trash(task_t)
Return whether the target of a task is in the trashcan.
int get_certificate_info(const gchar *certificate, time_t *activation_time, time_t *expiration_time, gchar **fingerprint, gchar **issuer)
Gathers info from a certificate.
const char * credential_iterator_password(iterator_t *)
gchar * group_name
Name of the current group.
char * report_id
ID of report to modify.
void sort_data_free(sort_data_t *)
const char * note_iterator_nvt_type(iterator_t *)
char * severity
Severity score to which to limit note.
int trash_scanner_readable(scanner_t)
char * condition
Condition for alert, e.g. "Always".
void init_family_iterator(iterator_t *, int, const char *, int)
gchar * stat
The statistic to sort by.
int modify_schedule(const char *, const char *, const char *, time_t, time_t, time_t, time_t, const char *)
int target_count(const get_data_t *)
char * result_qod
QoD value of current result.
const char * cve_iterator_cvss(iterator_t *)
#define ELSE_ERROR_CREATE_TASK()
Insert else clause for omp_xml_handle_start_element in create_task.
int alerts
Boolean. Whether to include alerts that use filter.
Command data for the delete_agent command.
gchar * group_users(group_t)
Command data for the start_task command.
time_t schedule_iterator_first_time(iterator_t *)
int tag_iterator_orphan(iterator_t *)
gboolean find_task(const char *id, task_t *)
void init_user_group_iterator(iterator_t *, user_t)
create_target_data_t create_target
create_target
char * type
Type of asset.
char * target_id
ID of task target.
const char * config_iterator_nvt_selector(iterator_t *)
get_schedules_data_t get_schedules
get_schedules
char * ssh_port
Port for SSH.
char * scanner_id
ID of scanner to delete.
int modify_report_format(const char *, const char *, const char *, const char *, const char *, const char *, const char *)
const char * report_format_param_iterator_type_name(iterator_t *)
char * resource_type
Resource type, for Super permissions.
int trash_config_readable_uuid(const gchar *)
const char * result_iterator_qod(iterator_t *)
int task_config_in_trash(task_t)
Return whether the config of a task is in the trashcan.
char * config_id
ID of config to delete.
array_t * event_data
Array of pointers. Extra data for event.
int scanners
Boolean. Whether to return scanners using credential.
long long int report_format_param_iterator_type_min(iterator_t *)
credential_t scanner_iterator_credential(iterator_t *)
#define XML_OK_CREATED_ID(tag)
Expand to XML for a STATUS_OK_CREATED response with s for ID.
Command data for the get_agents command.
resource_t get_iterator_resource(iterator_t *)
const char * result_iterator_original_severity(iterator_t *)
int sort_order
Result sort order: 0 descending, else ascending.
const char * dfn_cert_adv_info_iterator_max_cvss(iterator_t *)
Command data for the create_schedule command.
delete_config_data_t delete_config
delete_config
int task_scanner_in_trash(task_t)
Return whether the scanner of a task is in the trashcan.
int report_counts(const char *, int *, int *, int *, int *, int *, int *, double *, int, int, int)
char * result_scan_nvt_version
Version of NVT used in scan.
int create_asset_report(const char *, const char *)
char * host_start_host
Host name for start time.
create_credential_data_t create_credential
create_credential
char * copy
UUID of resource to copy.
char * task_config_uuid(task_t)
Return the UUID of the config of a task.
char * active
Whether the tag is active.
modify_role_data_t * modify_role_data
Parser callback data for MODIFY_ROLE.
char * setting_id
Setting.
void manage_reset_currents()
Cleanup as immediately as possible.
const char * manage_scap_update_time()
GET SCAP update time, as a string.
#define XML_INTERNAL_ERROR(tag)
Expand to XML for a STATUS_INTERNAL_ERROR response.
modify_note_data_t * modify_note_data
Parser callback data for MODIFY_NOTE.
Command data for the get_scanners command.
char * subgroup_column
Column to further group data by.
char * alert_iterator_filter_name(iterator_t *)
Return the filter name from an alert iterator.
const char * event_name(event_t event)
Get the name of an alert event.
char * observers
Space separated list of observer user names.
void init_credential_target_iterator(iterator_t *, credential_t, int)
modify_permission_data_t modify_permission
modify_permission
char * result_qod_type
QoD type of current result.
char * read_only
Read only flag.
create_alert_data_t create_alert
create_alert
get_reports_data_t * get_reports_data
Parser callback data for GET_REPORTS.
char * alterable
Boolean. Whether task is alterable.
const char * get_iterator_name(iterator_t *)
void host_detail_free(host_detail_t *)
const char * scanner_iterator_host(iterator_t *)
gchar * cve_cvss_base(const gchar *)
delete_group_data_t delete_group
delete_group
void init_alert_task_iterator(iterator_t *, alert_t, int)
Initialise an alert task iterator.
void manage_set_radius_info(int, gchar *, gchar *)
int copy_permission(const char *, const char *, permission_t *)
stop_task_data_t * stop_task_data
Parser callback data for STOP_TASK.
Command data for the get_schedules command.
int manage_scap_loaded()
Check whether SCAP is available.
const char * result_iterator_level(iterator_t *)
char * qod
QoD (quality of detection).
int verify_scanner(const char *, char **)
test_alert_data_t test_alert
test_alert
const char * resource_tag_iterator_uuid(iterator_t *)
modify_agent_data_t modify_agent
modify_agent
char * smb_lsc_credential_id
SMB credential (deprecated).
const char * filter_alert_iterator_uuid(iterator_t *)
Command data for the create_tag command.
char * esxi_credential_id
ESXi credential for new target.
int manage_count_hosts(const char *, const char *)
void cleanup_report_type_iterator(report_type_iterator_t *iterator)
Cleanup a report type iterator.
int column_is_timestamp(const char *)
delete_override_data_t delete_override
delete_override
char * schedule_id
ID of task schedule.
const char * get_iterator_modification_time(iterator_t *)
int set_task_schedule_periods_id(task_t, int)
Set the schedule periods of a task, given an ID.
char * start_time
Time of the first data point to report on.
void init_cpe_cve_iterator(iterator_t *, const char *, int, const char *)
const char * credential_iterator_type(iterator_t *)
char * ssh_credential_id
SSH credential for new target.
const char * ovaldef_info_iterator_deprecated(iterator_t *)
delete_alert_data_t delete_alert
delete_alert
void init_alert_data_iterator(iterator_t *, alert_t, int, const char *)
Initialise an alert data iterator.
int agent_count(const get_data_t *)
char * name
Name of scanner.
char * host
Host for asset report.
delete_tag_data_t delete_tag
delete_tag
A report format file iterator.
GList * text_columns
Columns to get simple text from.
char * host_uuid(resource_t)
const char * override_iterator_port(iterator_t *)
int init_system_report_type_iterator(report_type_iterator_t *iterator, const char *type, const char *slave_id)
Initialise a system report type iterator.
char * preference_value
New value for preference.
char * preference_name
Config preference to modify.
char * comment
New comment for config.
char * active
Whether the note is active.
char * credential_uuid(credential_t)
char * first_time_hour
Hour schedule must first run.
char * trash_credential_uuid(credential_t)
char * copy
UUID of resource to copy.
double aggregate_iterator_mean(iterator_t *, int)
Get the mean from an aggregate iterator.
const char * host_identifier_iterator_source_data(iterator_t *)
char * host_search_phrase
Search phrase result filter.
char * resource_id
Resource.
int manage_run_wizard(const gchar *, int(*)(void *, gchar *, gchar **), void *, array_t *, int, const char *, gchar **, gchar **, gchar **)
delete_tag_data_t * delete_tag_data
Parser callback data for DELETE_TAG.
char * certificate
Certificate.
const char * ovaldef_info_iterator_status(iterator_t *)
int aggregate_iterator_count(iterator_t *)
Get the count from an aggregate iterator.
int find_attribute(const gchar **attribute_names, const gchar **attribute_values, const char *attribute_name, const gchar **attribute_value)
Find an attribute in a parser callback list of attributes.
int create_user(const gchar *, const gchar *, const gchar *, int, const gchar *, int, const array_t *, array_t *, gchar **, array_t *, gchar **, gchar **, user_t *, int)
const char * filter_iterator_term(iterator_t *)
char * value
Value of the tag.
const char * agent_iterator_trust(iterator_t *)
char * text
Text of override.
char * duration
Duration of schedule (how long it runs for).
int create_target(const char *, const char *, const char *, const char *, const char *, const char *, const char *, credential_t, const char *, credential_t, credential_t, credential_t, const char *, const char *, const char *, int, target_t *)
char * family_selection_family_all_text
Text version of above.
char * copy
UUID of resource to copy.
char * report_id
ID of report to delete.
char * part_name
First part of data during *_data: name.
char * period
Period of schedule (how often it runs).
get_feeds_data_t get_feeds
get_feeds
delete_note_data_t delete_note
delete_note
create_note_data_t create_note
create_note
char * auth_algorithm
SNMP Authentication algorithm.
create_report_format_data_t create_report_format
create_report_format
unsigned int task_count(const get_data_t *)
Return the number of tasks associated with the current user.
char * get_ovaldi_files()
Get list of ovaldi definitions files using the values in ovaldefs table in scap.db.
char * result_host_asset_id(const char *, result_t)
char * esxi_credential_id
ESXi credential for target.
char * trash_credential_name(credential_t)
const char * note_iterator_severity(iterator_t *)
Command data for the move_task command.
char * report_id
ID of single report to get.
int config_type(config_t)
int create_permission(const char *, const char *, const char *, const char *, const char *, const char *, permission_t *)
char * trash_target_name(target_t)
int targets
Boolean. Whether to return targets using credential.
name_value_t * preference
Current preference.
char * scan_end_time_uuid(const char *)
int report_format_trust(report_format_t)
delete_report_data_t delete_report
delete_report
int ultimate
Boolean. Whether to remove entirely or to trashcan.
int sort_order
Result sort order: 0 descending, else ascending.
modify_tag_data_t modify_tag
modify_tag
delete_scanner_data_t delete_scanner
delete_scanner
gboolean find_result_with_permission(const char *, result_t *, const char *)
int manage_empty_trashcan()
const char * preference_iterator_value(iterator_t *)
int task_result_count(task_t, int)
Return number of results in a task.
Command data for the get_assets command.
char * note_id
ID of note to delete.
get_port_lists_data_t get_port_lists
get_port_lists
char * name
Name of Port List.
#define STATUS_INTERNAL_ERROR
Response code for an internal error.
const char * override_iterator_severity(iterator_t *)
int family_selection_family_all
All flag in FAMILY_SELECTION/FAMILY.
const char * credential_target_iterator_uuid(iterator_t *)
void modify_auth_data_reset(modify_auth_data_t *data)
Reset command data.
int set_task_alerts(task_t, array_t *, gchar **)
Set the alerts on a task, removing any previous alerts.
const char * host_detail_iterator_name(iterator_t *)
Command data for the modify_user command.
gchar ** disabled_commands
Disabled commands.
Command data for the get_system_reports command.
create_credential_data_t * create_credential_data
Parser callback data for CREATE_CREDENTIAL.
char * threat
Threat to which to limit override.
char * copy
UUID of resource to copy.
const char * task_group_iterator_uuid(iterator_t *)
gchar * task_second_last_report_id(task_t)
Get report ID from second most recently completed invocation of task.
array_t * method_data
Array of pointer. Extra data for method.
Command data for the delete_permission command.
int notes_details
Boolean. Whether to include details of above.
create_group_data_t create_group
create_group
const char * get_iterator_owner_name(iterator_t *)
buffer_size_t to_client_start
The start of the data in the to_client buffer.
char * task_id
ID of container task.
array_t * params
Parameters.
Command data for the modify_note command.
char * name
Name of filter.
char * task_owner_name(task_t)
Return the name of the owner of a task.
int init_asset_host_iterator(iterator_t *, const get_data_t *)
import_config_data_t * import_config_data
Parser callback data for CREATE_CONFIG (import).
move_task_data_t move_task
move_task
get_overrides_data_t * get_overrides_data
Parser callback data for GET_OVERRIDES.
char * copy
UUID of Port List to copy.
create_agent_data_t create_agent
create_agent
char * result_id
ID of result to which to limit override.
char * preference_value
Value in PREFERENCE.
char * setting_filter(const char *)
delete_port_range_data_t * delete_port_range_data
Parser callback data for DELETE_PORT_RANGE.
#define NVT_SELECTOR_TYPE_ANY
Special NVT selector type for selecting all types in interfaces.
char * text
Text of override.
get_filters_data_t * get_filters_data
Parser callback data for GET_FILTERS.
int set_task_parameter(task_t, const char *, char *)
int acl_user_has_super(const char *super_user_id, user_t other_user)
Test whether a user has super permission on another user.
int init_schedule_iterator(iterator_t *, const get_data_t *)
int init_tag_name_iterator(iterator_t *, const get_data_t *)
char * part_name
First part of data during *_data: name.
char * preference_nvt_oid
NVT OID in PREFERENCE.
char * port
Port to which to limit override.
int init_role_iterator(iterator_t *, const get_data_t *)
void init_task_group_iterator(iterator_t *, task_t)
Initialise a task group iterator.
int scanner_iterator_port(iterator_t *)
char * ca_pub
CA Certificate of scanner.
const char * config_timeout_iterator_value(iterator_t *)
char * schedule_periods
Number of periods the schedule must run for.
const char * override_iterator_nvt_type(iterator_t *)
char * duration_unit
Unit of duration: "hour", "day", "week", ....
char * pos
Position of report from end.
char * name
New name for task.
#define ELSE_ERROR(op)
Insert else clause for omp_xml_handle_start_element.
char * task_id
ID of task to stop.
const char * cve_info_iterator_description(iterator_t *)
const char * cve_iterator_name(iterator_t *)
char * nvt_oid
OID of NVT preference affects.
const char * target_iterator_port_list_name(iterator_t *)
get_assets_data_t get_assets
get_assets
move_task_data_t * move_task_data
Parser callback data for MOVE_TASK.
int group_count(const get_data_t *)
char * hr_name
Extended, more human-readable name used by OSP.
char * inheritor_id
ID of user that will inherit owned objects.
char * name
Name of new filter.
char * password
Password associated with login name.
result_t result_iterator_result(iterator_t *)
char * file
File to attach to task.
char * host
Host of new scanner.
char * name
Name of asset.
char * family
Name of family to which to limit NVT selection.
report_t task_iterator_current_report(iterator_t *)
Return the current report of a task.
gboolean find_credential_with_permission(const char *, credential_t *, const char *)
int copy_override(const char *, override_t *)
int create_schedule(const char *, const char *, time_t, time_t, time_t, time_t, const char *, schedule_t *)
modify_port_list_data_t * modify_port_list_data
Parser callback data for MODIFY_PORT_LIST.
gchar * role_users(role_t)
char * howto_install
Install HOWTO.
gchar * column
The column prefix, or NULL.
const char * cert_bund_adv_info_iterator_cve_refs(iterator_t *)
char * installer_signature
Installer signature.
char * trash_target_uuid(target_t)
get_data_t get
Get args with result filtering.
int ultimate
Dummy field for generic macros.
const char * user_role_iterator_uuid(iterator_t *)
int report_count(const get_data_t *)
char * preference
Single preference to get.
char * note_id
ID of note to modify.
gchar * credential_value(credential_t, const char *)
Command data for the get_filters command.
const char * result_iterator_descr(iterator_t *)
int count
The number of occurences.
gchar * get_nvti_xml(iterator_t *nvts, int details, int pref_count, int preferences, const char *timeout, config_t config, int close_tag)
Create and return XML description for an NVT.
void manage_get_ldap_info(int *, gchar **, gchar **, int *, gchar **)
const char * permission_iterator_subject_type(iterator_t *)
char * schedule_periods
Number of periods the schedule must run for.
get_overrides_data_t get_overrides
get_overrides
delete_schedule_data_t * delete_schedule_data
Parser callback data for DELETE_SCHEDULE.
get_port_lists_data_t * get_port_lists_data
Parser callback data for GET_PORT_LISTS.
void init_task_role_iterator(iterator_t *, task_t)
Initialise a task role iterator.
char * scanner
Scanner to create config from.
resume_task_data_t * resume_task_data
Parser callback data for RESUME_TASK.
char * subject_type
Subject type permission applies to.
void init_filter_alert_iterator(iterator_t *, filter_t)
Command data for the delete_config command.
get_system_reports_data_t * get_system_reports_data
Parser callback data for GET_SYSTEM_REPORTS.
gchar * host_routes_xml(host_t)
char * users
Users for group.
const char * resource_tag_iterator_comment(iterator_t *)
char * iso_time_tz(time_t *, const char *, const char **)
Create an ISO time from seconds since epoch, given a timezone.
int families
Boolean. Whether to include config families.
const char * report_format_iterator_extension(iterator_t *)
Command data for the get_alerts command.
gboolean find_schedule_with_permission(const char *, schedule_t *, const char *)
time_t schedule_iterator_period_months(iterator_t *)
Command data for the get_preferences command.
const char * target_task_iterator_uuid(iterator_t *)
int manage_cert_loaded()
Check whether CERT is available.
modify_config_data_t modify_config
modify_config
int alert_iterator_event(iterator_t *)
Return the event from an alert iterator.
int tasks
Boolean. Whether to include tasks that use target.
time_t schedule_iterator_next_time(iterator_t *)
int preferences
Boolean. Whether to include NVT preferences.
Command data for the modify_config command.
int scanner_iterator_type(iterator_t *)
const char * permission_iterator_subject_uuid(iterator_t *)
const char * task_alert_iterator_uuid(iterator_t *)
char * copy
UUID of resource to copy.
modify_role_data_t modify_role
modify_role
create_task_data_t create_task
create_task
const char * report_format_param_iterator_fallback(iterator_t *)
char * hosts
Hosts to which to limit override.
int tag_iterator_resource_location(iterator_t *)
void manage_session_set_timezone(const char *)
Setup session timezone.
char * credential_id
ID of credential to modify.
char * new_severity
New severity score of overridden results.
const char * note_iterator_text(iterator_t *)
char * port_range_uuid(port_range_t)
modify_target_data_t * modify_target_data
Parser callback data for MODIFY_TARGET.
const char * cert_bund_adv_info_iterator_summary(iterator_t *)
get_alerts_data_t get_alerts
get_alerts
void init_report_iterator_task(iterator_t *, task_t)
task_status_t task_iterator_run_status(iterator_t *)
Get the run status from a task iterator.
char * copy
UUID of resource to copy.
char * config_id
ID of config to which to limit NVT selection.
#define ALERT_MESSAGE_INCLUDE
Default format string for alert email, when including report.
char * port_list_id
Port list for new target.
char * reverse_lookup_unify
Boolean. Whether to unify based on reverse lookup.
int cert_bund_adv_info_count(const get_data_t *get)
const char * alert_method_name(alert_method_t method)
Get the name of an alert method.
const char * nvt_iterator_name(iterator_t *)
char * severity
Severity score of results to override.
int alert_iterator_condition(iterator_t *)
Return the condition from an alert iterator.
int result_count(const get_data_t *, report_t, const char *)
#define STATUS_ERROR_MISSING
Response code for a missing resource.
char * filt_id
Filter ID. Overrides "filter".
void init_host_identifier_iterator(iterator_t *, host_t, int, const char *)
char * timezone
Time zone of the schedule.
void set_task_scanner(task_t, scanner_t)
Set the scanner of a task.
char * task_id
ID of task to resume.
char * type
Type of preference (radio, password, ...).
const char * host_identifier_iterator_source_id(iterator_t *)
restore_data_t * restore_data
Parser callback data for RESTORE.
Command data for the create_agent command.
int importing
Whether the current op is importing.
char * nvt_oid(const char *)
get_users_data_t * get_users_data
Parser callback data for GET_USERS.
get_report_formats_data_t get_report_formats
get_report_formats
Command data for the create_target command.
gchar * certificate_iso_time(time_t time)
Converts a certificate time to an ISO time string.
char * task_id
ID of task to which to limit override.
delete_filter_data_t delete_filter
delete_filter
char * inheritor_name
Name of user that will inherit owned objects.
delete_port_list_data_t delete_port_list
delete_port_list
char * first_time_year
Year schedule must first run.
alert_method_t
Types of alerts.
Helper data structure for buffering word counts.
char * resource_id
ID of the resource to which to attach the tag.
int parent_state
Parent state when reading over.
char * observers
Space separated names of observer users.
int task_uuid(task_t, char **)
Return the UUID of a task.
#define STATUS_INTERNAL_ERROR_TEXT
Response code text for an internal error.
gchar * filter_term_value(const char *, const char *)
int modify_credential(const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *)
char * new_threat
New threat value of overridden results.
char * subtype
Resource subtype.
get_assets_data_t * get_assets_data
Parser callback data for GET_ASSETS.
#define ALERT_MESSAGE_ATTACH
Default format string for alert email, when attaching report.
modify_task_data_t modify_task
modify_task
void init_setting_iterator(iterator_t *, const char *, const char *, int, int, int, const char *)
get_tasks_data_t get_tasks
get_tasks
const char * credential_iterator_private_key(iterator_t *)
char * name
Permission name.
const char * schedule_iterator_timezone(iterator_t *)
char * task_name
Name for container task.
char * smb_credential_id
SMB credential for new target.
Command data for the get_roles command.
int target_iterator_snmp_credential(iterator_t *)
gboolean report_task(report_t, task_t *)
char * detail_name
Name of current host detail.
Command data for the stop_task command.
char * name
Name of the tag.
Command data for the delete_target command.
char * name
Name of permission.
modify_alert_data_t * modify_alert_data
Parser callback data for MODIFY_ALERT.
int process_omp_client_input()
Process any XML available in from_client.
int port_list_iterator_count_all(iterator_t *)
create_report_data_t * create_report_data
Parser callback data for CREATE_REPORT.
time_t note_iterator_end_time(iterator_t *)
char * method
Method of alert, e.g. "Email".
int report_format_active(report_format_t)
int copy_task(const char *, const char *, const char *, int, task_t *)
#define XML_ERROR_SYNTAX(tag, text)
Expand to XML for a STATUS_ERROR_SYNTAX response.
int init_manage(GSList *, int, const gchar *, int, int, int, int, void(*)(), int(*)(openvas_connection_t *, gchar *), int)
Initialize the manage library.
char * group_uuid(group_t)
char * config_id
ID of new config for task.
int ultimate
Boolean. Whether to remove entirely or to trashcan.
get_notes_data_t * get_notes_data
Parser callback data for GET_NOTES.
char * period_unit
Unit of period: "hour", "day", "week", ....
char * asset_hosts_filter
Asset hosts.
char * task_id
ID of task to start.
char * nvt_oid
Name of single NVT to get.
char * port
Port to which to limit override.
char * key_private
Private key from key.
const char * dfn_cert_adv_info_iterator_cve_refs(iterator_t *)
int init_all_info_iterator(iterator_t *, get_data_t *, const char *)
char * scan_start_time_uuid(const char *)
int report_format_iterator_active(iterator_t *)
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.
int alert_iterator_method(iterator_t *)
Return the method from an alert iterator.
create_role_data_t create_role
create_role
int asset_iterator_in_use(iterator_t *)
config_t task_config(task_t)
Return the config of a task.
gboolean find_report_format_with_permission(const char *, report_format_t *, const char *)
int authenticate(credentials_t *)
Authenticate credentials.
int verify_agent(const char *)
array_t * method_data
Array of pointer. Extra data for method.
char * filter_uuid(filter_t)
int asset_os_count(const get_data_t *)
int create_asset_host(const char *, const char *, resource_t *)
void init_host_detail_iterator(iterator_t *, resource_t)
Command data for the delete_scanner command.
int init_filter_iterator(iterator_t *, const get_data_t *)
char * asset_id
ID of asset to delete.
delete_report_format_data_t * delete_report_format_data
Parser callback data for DELETE_REPORT_FORMAT.
char * name
Name of schedule.
task_status_t task_run_status(task_t)
Return the run state of a task.
int ultimate
Boolean. Whether to remove entirely or to trashcan.
int schedule_count(const get_data_t *)
const char * asset_os_iterator_latest_severity(iterator_t *)
int schedule_info(schedule_t, time_t *, time_t *, int *, int *, int *)
const char * credential_iterator_certificate(iterator_t *)
int ultimate
Boolean. Whether to remove entirely or to trashcan.
char * target_id
ID of target to delete.
char * first_time_day_of_month
Day of month schedule must first run.
Command data for the modify_port_list command.
Command data for the delete_role command.
get_agents_data_t * get_agents_data
Parser callback data for GET_AGENTS.
int config_iterator_type(iterator_t *)
char * family_selection_family_name
FAMILY_SELECTION/FAMILY family name.
Command data for the modify_group command.
modify_auth_data_t modify_auth
modify_auth
modify_auth_data_t * modify_auth_data
Parser callback data for MODIFY_AUTH.
modify_scanner_data_t modify_scanner
modify_scanner
#define CLOSE(parent, element)
Insert else clause for omp_xml_handle_start_element.
char * name
Name of new role.
Command data for the create_asset command.
char * hosts
Hosts for target.
#define APPEND(state, dest)
Append text to a var for a case in omp_xml_hand_text.
modify_report_format_data_t modify_report_format
modify_report_format
int ultimate
Boolean. Whether to remove entirely or to trashcan.
gchar * user_name(const char *)
const char * credential_full_type(const char *abbreviation)
Get the written-out name of an LSC Credential type.
create_role_data_t * create_role_data
Parser callback data for CREATE_ROLE.
const char * report_format_param_iterator_value(iterator_t *)
const char * override_iterator_new_severity(iterator_t *)
int init_user_iterator(iterator_t *, const get_data_t *)
int modify_tag(const char *, const char *, const char *, const char *, const char *, const char *, const char *)
char * resource_id
ID of the resource to which to attach the tag.
int family_selection_growing
Whether families in selection grow.
int overrides_details
Boolean. Whether to include details of above.
create_schedule_data_t create_schedule
create_schedule
char * type
Type of new filter.
const char * nvt_selector_iterator_nvt(iterator_t *)
get_feeds_data_t * get_feeds_data
Parser callback data for GET_FEEDS.
int alert_task_iterator_readable(iterator_t *)
Get the read permission status from a GET iterator.
char * description
Description of NVT.
const char * asset_os_iterator_highest_severity(iterator_t *)
gboolean find_alert_with_permission(const char *, alert_t *, const char *)
Find a alert for a specific permission, given a UUID.
const char * tag_name_iterator_name(iterator_t *)
char * file_name
Name of file to attach to task.
const char * result_iterator_nvt_cve(iterator_t *)
modify_scanner_data_t * modify_scanner_data
Parser callback data for MODIFY_SCANNER.
#define STATUS_OK_CREATED
Response code on success, when a resource is created.
char * resource_type
Resource type, for special permissions.
int set_task_observers(task_t, const gchar *)
Set the observers of a task.
char * smb_lsc_credential_id
SMB credential for target (deprecated).
const char * target_iterator_hosts(iterator_t *)
gboolean find_target_with_permission(const char *, target_t *, const char *)
gchar * manage_clean_filter_remove(const gchar *, const gchar *)
Clean a filter, removing a keyword in the process.
int target_iterator_snmp_trash(iterator_t *)
const char * nvt_preference_iterator_value(iterator_t *)
#define XML_ERROR_AUTH_FAILED(tag)
Expand to XML for a STATUS_ERROR_AUTH_FAILED response.
int modify_asset(const char *, const char *)
int alert_count(const get_data_t *)
Count the number of alerts.
const char * get_iterator_uuid(iterator_t *)
void(* progress)()
Function to mark progress.
char * task_preference_value(task_t, const char *)
int config_iterator_families_growing(iterator_t *)
#define XML_ERROR_BUSY(tag)
Expand to XML for a STATUS_ERROR_BUSY response.
delete_note_data_t * delete_note_data
Parser callback data for DELETE_NOTE.
const char * ovaldef_info_iterator_class(iterator_t *)
gchar * subtype
Subtype, or NULL.
const char * override_iterator_threat(iterator_t *)
GList * data_columns
Columns to calculate aggregate for.
const char * config_task_iterator_name(iterator_t *)
const char * result_iterator_original_level(iterator_t *)
int modify_user(const gchar *, gchar **, const gchar *, const gchar *, const gchar *, int, const gchar *, int, const array_t *, array_t *, gchar **, array_t *, gchar **, gchar **)
char * comment
Comment to add to the tag.
Command data for the delete_user command.
gchar * field
The field to sort by.
create_tag_data_t * create_tag_data
Parser callback data for CREATE_TAG.
int create_role(const char *, const char *, const char *, role_t *)
array_t * nvt_selection
OID array. New NVT set for config.
gboolean find_override_with_permission(const char *, override_t *, const char *)
Command data for the get_nvt_families command.
Command data for the restore command.
int limit
The maximum number of entries to output or -1 for all.
char * override_id
ID of override to get.
int filter_alert_iterator_readable(iterator_t *)
char * sort_field
Field to sort results on.
char * source_type
Source type.
int scanner_task_iterator_readable(iterator_t *)
array_t * preferences
Preferences.
result_t note_iterator_result(iterator_t *)
char * manage_nvt_name(nvt_t)
get_nvt_families_data_t get_nvt_families
get_nvt_families
char * value
Value of preference.
char * active
Whether the note is active.
char * type
Requested information type.
int key
Whether the command included a key element.
get_configs_data_t get_configs
get_configs
Command data for the delete_group command.
delete_role_data_t delete_role
delete_role
Command data for the modify_credential command.
char * type
Type of scanner.
char * resource_type
Type of the resource to which to attach the tag.
char * exclude_hosts
Hosts to exclude from set.
int equal
Whether the keyword is like "=example".
Command data for the create_port_list command.
char * detail_value
Value of current host detail.
create_filter_data_t * create_filter_data
Parser callback data for CREATE_FILTER.
int credential_scanner_iterator_readable(iterator_t *)
delete_report_data_t * delete_report_data
Parser callback data for DELETE_REPORT.
const char * result_iterator_qod_type(iterator_t *)
delete_agent_data_t delete_agent
delete_agent
char * term
Term for filter.
Command data for a get command.
int init_dfn_cert_adv_info_iterator(iterator_t *, get_data_t *, const char *)
int filter_count(const get_data_t *)
int cpe_info_count(const get_data_t *get)
Command data for the get_tasks command.
const char * ovaldef_info_iterator_version(iterator_t *)
char * allow_insecure
Whether to allow insecure use.
#define XML_OK(tag)
Expand to XML for a STATUS_OK response.
const char * ovaldef_info_iterator_cve_refs(iterator_t *)
delete_agent_data_t * delete_agent_data
Parser callback data for DELETE_AGENT.
char * nvt_selector_include
In NVT_SELECTORS include/exclude flag.
int trash_port_list_readable_uuid(const gchar *)
int credential_iterator_allow_insecure(iterator_t *)
char * copy
UUID of resource to copy.
verify_agent_data_t * verify_agent_data
Parser callback data for VERIFY_AGENT.
char * exclude_hosts
Hosts to exclude from set.
task_t result_iterator_task(iterator_t *)
restore_data_t restore
restore
gboolean find_nvt(const char *, nvt_t *)
char * scan_end_time(report_t)
Command data for the create_override command.
char * task_id
ID of task to which to limit listing.
int config_nvts_growing(config_t)
create_port_list_data_t * create_port_list_data
Parser callback data for CREATE_PORT_LIST.
gboolean openvas_sync_script_perform_selftest(const gchar *, gchar **)
array_t * details
Host details.
void init_cve_cert_bund_adv_iterator(iterator_t *, const char *, int, const char *)
int copy_credential(const char *, const char *, const char *, credential_t *)
int init_tag_iterator(iterator_t *, const get_data_t *)
int init_note_iterator(iterator_t *, const get_data_t *, nvt_t, result_t, task_t)
char * hosts_ordering
Order for scanning of target hosts.
const char * task_role_iterator_uuid(iterator_t *)
int copy_tag(const char *, const char *, const char *, tag_t *)
char * task_observers(task_t)
Return the observers of a task.
Command data for the modify_filter command.
double aggregate_iterator_sum(iterator_t *, int)
Get the sum from a statistics iterator.
Command data for the delete_schedule command.
long long int port_range_t
char * permission_uuid(permission_t)
char * text
Text of override.
Command data for the create_port_range command.
char * comment
Comment to add to the tag.
gboolean find_report_with_permission(const char *, report_t *, const char *)
const char * host_identifier_iterator_source_type(iterator_t *)
const char * user_iterator_hosts(iterator_t *)
void manage_report_filter_controls(const gchar *, int *, int *, gchar **, int *, int *, gchar **, gchar **, gchar **, gchar **, int *, int *, int *, int *, int *, gchar **)
Get info from a filter for report.
char * result_host
Host for current result.
#define NAME
Preference name.
Command data for the modify_asset command.
const char * note_iterator_hosts(iterator_t *)
schedule_t task_schedule(task_t)
Return the schedule of a task.
char * alive_tests
Alive tests.
int create_note(const char *, const char *, const char *, const char *, const char *, const char *, const char *, task_t, result_t, note_t *)
char * format
Format requested: "key", "deb", ....
int modify_override(override_t, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, task_t, result_t)
char * name
Name of agent.
char * nvt_oid
NVT to which to limit override.
char * filter_id
ID of filter to delete.
int manage_resource_name(const char *, const char *, char **)
Get the name of a resource.
create_task_data_t * create_task_data
Parser callback data for CREATE_TASK.
array_t * preferences
Array of preference_t's.
int target_iterator_port_list_trash(iterator_t *)
int user_iterator_hosts_allow(iterator_t *)
const char * scanner_iterator_credential_name(iterator_t *)
int acl_user_can_everything(const char *user_id)
Test whether a user may perform any operation.
char * scanner_uuid(scanner_t)
int manage_set_config_preference(config_t, const char *, const char *, const char *)
int task_upload_progress(task_t)
Return the upload progress of a task.
int create_config_from_scanner(const char *, const char *, const char *, char **)
delete_schedule_data_t delete_schedule
delete_schedule
int override_uuid(override_t, char **)
void init_nvt_dfn_cert_adv_iterator(iterator_t *, const char *, int, const char *)
char * credential_id
ID of Credential to delete.
int resource_count(const char *, const get_data_t *)
Return number of resources of a certain type for current user.
char * name
Credential name.
int wrapper
Whether there was a wrapper REPORT.
void manage_get_radius_info(int *, char **, char **)
char * text
Text of override.
import_config_data_t import
Config to import.
char * preferences_config_id
ID of config to get preference values from.
int nvt_preference_count(const char *)
GString * buffer
The GString buffer to write to.
int init_cve_info_iterator(iterator_t *, get_data_t *, const char *)
char * type
Type of report.
char * value
Value of the tag.
sync_config_data_t * sync_config_data
Parser callback data for SYNC_CONFIG.
const char * port_range_iterator_comment(iterator_t *)
int init_nvt_info_iterator(iterator_t *, get_data_t *, const char *)
create_schedule_data_t * create_schedule_data
Parser callback data for CREATE_SCHEDULE.
get_preferences_data_t get_preferences
get_preferences
const char * agent_iterator_howto_install(iterator_t *)
Command data for the get_overrides command.
Command data for the create_alert command.
const char * asset_os_iterator_average_severity(iterator_t *)
GList * sort_data
List of Sort data.
command_data_t command_data
Parser callback data.
char * port_list_id
Port list for target.
const char * task_iterator_last_report(iterator_t *)
Get the last report UUID from a task iterator.
char * name
Name of group.
user_t get_iterator_owner(iterator_t *)
int host_first_result
Skip over results before this result number.
char * result_id
ID of result to which to limit override.
const char * host_detail_iterator_source_type(iterator_t *)
char * task_config_name(task_t)
Return the name of the config of a task.
int copy_schedule(const char *, const char *, const char *, schedule_t *)
char * copy
UUID of resource to copy.
get_info_data_t get_info
get_info
task_t make_task(char *, char *, int, int)
modify_credential_data_t * modify_credential_data
Parser callback data for MODIFY_CREDENTIAL.
keyword_relation_t relation
The relation.
char * group_id
Group UUID.
int asset_os_iterator_installs(iterator_t *)
buffer_size_t from_client_start
The start of the data in the from_client buffer.
char * alive_tests
Alive tests.
const char * report_format_alert_iterator_name(iterator_t *)
get_tags_data_t * get_tags_data
Parser callback data for GET_TAGS.
char * name
Name of user to delete.
get_filters_data_t get_filters
get_filters
unsigned int task_id(task_t)
Return the identifier of a task.
Command data for the create_scanner command.
delete_asset_data_t delete_asset
delete_asset
array_t * condition_data
Array of pointers. Extra data for condition.
Command data for the get_credentials command.
target_t task_target(task_t)
Return the target of a task.
int port_list_target_iterator_readable(iterator_t *)
time_t agent_iterator_trust_time(iterator_t *)
char * type
Type of new scanner.
char * new_severity
New severity score of overridden results.
gchar * string
The keyword string, outer quotes removed.
array_t * split_filter(const gchar *)
Split the filter term into parts.
int request_delete_task_uuid(const char *, int)
char * resource_type
Type of the resource to which to attach the tag.
char * report_format_name(report_format_t)
char * detail_source_name
Name of source of current host detail.
char * config_id
ID of config to modify.
report_format_param_t report_format_param_iterator_param(iterator_t *)
int ultimate
Boolean. Whether to remove entirely or to trashcan.
char * filter_id
Filter UUID.
gchar * filter_term(const char *)
char * nvt_oid
Single NVT whose preferences to get.
test_alert_data_t * test_alert_data
Parser callback data for TEST_ALERT.
modify_report_format_data_t * modify_report_format_data
Parser callback data for MODIFY_REPORT_FORMAT.
char * severity
Severity score.
char * result_port
Port for current result.
const char * scanner_task_iterator_name(iterator_t *)
char * resource_id
Resource whose permissions to get.
void * client_writer_data
Argument to client_writer.
int task_alterable(task_t)
Return whether a task is an Alterable Task.
char * type
Type of credential.
void manage_filter_controls(const gchar *, int *, int *, gchar **, int *)
Get info from a filter.
#define XML_OK_CREATED(tag)
Expand to XML for a STATUS_OK_CREATED response.
Command data, as passed between OMP parser callbacks.
int target_iterator_esxi_credential(iterator_t *)
create_port_range_data_t create_port_range
create_port_range
gboolean next_report(iterator_t *, report_t *)
create_alert_data_t * create_alert_data
Parser callback data for CREATE_ALERT.
char * target_id
Target UUID.
int notes_details
Boolean. Whether to include details of above.
const char * cve_info_iterator_authentication(iterator_t *)
modify_group_data_t modify_group
modify_group
char * report_id
ID of report from which to delete assets.
int user_iterator_ifaces_allow(iterator_t *)
int init_report_format_file_iterator(file_iterator_t *iterator, report_format_t report_format)
Initialise a report format file iterator.
char * nvt_selection_family
Family of NVT selection.
const char * param_option_iterator_value(iterator_t *)
const char * override_iterator_hosts(iterator_t *)
modify_asset_data_t modify_asset
modify_asset
int tasks
Boolean. Whether to include tasks that use scan config.
char * scanner_id
ID of new scanner for task.
char * task_id
ID of task to which to limit override.
char * value
Detail value.
char * task_id
Task associated with results.
#define G_LOG_DOMAIN
GLib log domain.
Command data for the get_aggregates command.
int sync_config(const char *)
modify_alert_data_t modify_alert
modify_alert
#define XML_OK_REQUESTED(tag)
Expand to XML for a STATUS_OK_REQUESTED response.
char * hosts
Hosts to which to limit override.
char * howto_use
Usage HOWTO.
create_asset_data_t * create_asset_data
Parser callback data for CREATE_ASSET.
#define XML_ERROR_UNAVAILABLE(tag, text)
Expand to XML for a STATUS_SERVICE_UNAVAILABLE response.
char * mode
Mode to run the wizard in.
char * port_range
Port range for new target.
modify_task_data_t * modify_task_data
Parser callback data for MODIFY_TASK.
array_t * groups
IDs of new groups for task.
void init_target_task_iterator(iterator_t *, target_t)
gchar * type
Type of resource.
#define NVT_SELECTOR_TYPE_ALL
NVT selector type for "all" rule.
delete_credential_data_t * delete_credential_data
Parser callback data for DELETE_CREDENTIAL.
get_aggregates_data_t get_aggregates
get_aggregates
int setting_is_default_ca_cert(const gchar *)
int targets
Boolean. Include targets that use Port List or not.
int create_filter(const char *, const char *, const char *, const char *, int, filter_t *)
delete_alert_data_t * delete_alert_data
Parser callback data for DELETE_ALERT.
create_target_data_t * create_target_data
Parser callback data for CREATE_TARGET.
char * nvt_oid
NVT to which to limit override.
modify_report_data_t * modify_report_data
Parser callback data for MODIFY_REPORT.
char * alert_id
alert UUID.
Command data for the delete_alert command.
char * report_id
Report UUID.
char * schedule_id
ID of new schedule for task.
int ultimate
Boolean. Whether to remove entirely or to trashcan.
int permission_iterator_resource_in_trash(iterator_t *)
char * type
Name of NVT selector.
array_t * nvt_selectors
Array of nvt_selector_t's.
void buffer_results_xml(GString *, iterator_t *, task_t, int, int, int, int, int, int, int, const char *, iterator_t *, int)
Buffer XML for some results.
Command data for the create_group command.
int(* client_writer)(const char *, void *)
Writes to the client.
get_targets_data_t get_targets
get_targets
char * setting_id
UUID of single setting to get.
int scanner_count(const get_data_t *)
int manage_schema(gchar *, gchar **, gsize *, gchar **, gchar **)
int nvt_selector_nvt_count(const char *, const char *, int)
char * tag_id
UUID of the tag.
int user_count(const get_data_t *)
int init_result_get_iterator(iterator_t *, const get_data_t *, report_t, const char *, const gchar *)
int init_asset_os_iterator(iterator_t *, const get_data_t *)
char * config_id
Config UUID.
char * copy
UUID of resource to copy.
int copy_group(const char *, const char *, const char *, group_t *)
char * snmp_credential_id
SNMP credential for new target.
char * subject_type
Subject type.
const char * cve_info_iterator_vector(iterator_t *)
void init_config_timeout_iterator(iterator_t *, config_t)
scanner_t task_iterator_scanner(iterator_t *)
Get the UUID of task scanner from a task iterator.
void manage_task_update_file(task_t, const char *, const void *)
int copy_filter(const char *, const char *, const char *, filter_t *)
const char * note_iterator_threat(iterator_t *)
Command data for the delete_asset command.
Command data for the import part of the create_config command.
char * preference_name
Name in PREFERENCE.
const char * credential_target_iterator_name(iterator_t *)
void init_preference_iterator(iterator_t *, config_t)
gchar * slave_id
ID of the slave to move to.
char * report_format_content_type(report_format_t)
modify_override_data_t * modify_override_data
Parser callback data for MODIFY_OVERRIDE.
array_t * families_growing_empty
New family selection: growing, empty.
char * key_phrase
Passphrase for key.
const char * port_range_iterator_uuid(iterator_t *)
get_settings_data_t get_settings
get_settings
const char * schedule_task_iterator_uuid(iterator_t *)
char * target_id
ID of new target for task.
array_t * results
All results.
omp_parser_t * omp_parser_new(int(*write_to_client)(const char *, void *), void *write_to_client_data, gchar **disable)
Create an OMP parser.
gboolean find_port_list_with_permission(const char *, port_list_t *, const char *)
char * name
Name of single report to get.
create_port_list_data_t create_port_list
create_port_list
const char * task_alert_iterator_name(iterator_t *)
int ignore_pagination
Boolean. Whether to ignore pagination filters.
char * host_end_host
Host name for end time.
const gchar * certificate_time_status(time_t activates, time_t expires)
Tests the activation and expiration time of a certificate.
delete_user_data_t * delete_user_data
Parser callback data for DELETE_USER.
char * resource_id
Resource permission applies to.
char * name
Name of new port list.
create_scanner_data_t create_scanner
create_scanner
int setting_count(const char *)
char * period_unit
Unit of period: "hour", "day", "week", ....
const char * port_range_iterator_start(iterator_t *)
char * esxi_lsc_credential_id
ESXi credential for target (deprecated).
char * community
SNMP Community string.
Command data for the get_permissions command.
int report_format_count(const get_data_t *)
int delete_asset(const char *, const char *, int)
get_scanners_data_t * get_scanners_data
Parser callback data for GET_scannerS.
long long int port_list_t
const char * keyword_relation_symbol(keyword_relation_t)
Get the symbol of a keyword relation.
char * ssh_lsc_credential_id
SSH credential for target (deprecated).
const char * agent_iterator_installer_filename(iterator_t *)
report_t result_iterator_report(iterator_t *)
const char * user_iterator_ifaces(iterator_t *)
char * hosts
Hosts to which to limit override.
char * installer_filename
Installer filename.
const char * user_iterator_method(iterator_t *)
char * type
Type of report.
int manage_send_report(report_t, report_t, report_format_t, const get_data_t *, int, int, int, int, gboolean(*)(const char *, int(*)(const char *, void *), void *), int(*)(const char *, void *), void *, const char *, const char *, const char *, int, const char *, const char *, int, int, const gchar *)
int user_group_iterator_readable(iterator_t *)
const char * scanner_iterator_key_pub(iterator_t *)
int task_schedule_in_trash(task_t)
Get whether the task schedule is in the trash.
const char * permission_iterator_subject_name(iterator_t *)
modify_agent_data_t * modify_agent_data
Parser callback data for MODIFY_AGENT.
int port_list_iterator_count_udp(iterator_t *)
Authentication method settings.
create_note_data_t * create_note_data
Parser callback data for CREATE_NOTE.
const char * result_iterator_port(iterator_t *)
int note_count(const get_data_t *, nvt_t, result_t, task_t)
char * subject_id
Subject UUID.
int permission_iterator_subject_in_trash(iterator_t *)
const char * result_iterator_scan_nvt_version(iterator_t *)
const char * get_iterator_creation_time(iterator_t *)
int permission_count(const get_data_t *)
char * nvt_oid
OID of NVT to which to limit listing.
array_t * alerts
IDs of alerts.
int details
Boolean. Weather to include full details.
int target_iterator_smb_credential(iterator_t *)
#define STATUS_OK_TEXT
Response code text on success.
const char * config_timeout_iterator_nvt_name(iterator_t *)
char * iso_time(time_t *)
Create an ISO time from seconds since epoch.
int info_name_count(const gchar *, const gchar *)
char * alert_iterator_filter_uuid(iterator_t *)
Return the filter UUID from an alert iterator.
char * result_id
ID of result to which to limit override.
char * nvt_selector_name
In NVT_SELECTORS name of selector.
char * nvt_name
Name of NVT preference affects.
const char * run_status_name(task_status_t status)
Get the name of a run status.
char * port_list_id
UUID of Port List.
int init_group_iterator(iterator_t *, const get_data_t *)
const char * cve_info_iterator_integrity_impact(iterator_t *)
#define SEND_XML_SERVICE_DOWN(tag)
Sends XML for a STATUS_SERVICE_DOWN response.
void init_ovaldi_file_iterator(iterator_t *)
int manage_count_hosts_max(const char *given_hosts, const char *exclude_hosts, int max_hosts)
Return number of hosts described by a hosts string.
char * name
Name of the wizard.
modify_permission_data_t * modify_permission_data
Parser callback data for MODIFY_PERMISSION.
const char * task_iterator_trend_counts(iterator_t *, int, int, int, double, int, int, int, double)
get_report_formats_data_t * get_report_formats_data
Parser callback data for GET_REPORT_FORMATS.
int get_counts
Boolean. Whether to include result counts.
char * reverse_lookup_only
Boolean. Whether to consider only hosts that reverse lookup.
char * agent_id
ID of agent to verify.
#define AUTO_DELETE_KEEP_MAX
int task_iterator_finished_reports(iterator_t *)
Get the number of reports of a task iterator.
create_group_data_t * create_group_data
Parser callback data for CREATE_GROUP.
char * name
Name of the info.
char * scanner_id
New scanner UUID for config.
double aggregate_iterator_min(iterator_t *, int)
Get the minimum from an aggregate iterator.
const char * task_iterator_hosts_ordering(iterator_t *)
Get the hosts ordering value from a task iterator.
char * port
Port of scanner.
const char * os_host_iterator_severity(iterator_t *)
gboolean find_task_with_permission(const char *, task_t *, const char *)
const char * type_name(const char *type)
Return the name of a resource type.
int credential_target_iterator_readable(iterator_t *)
const char * asset_os_iterator_title(iterator_t *)
gboolean find_filter_with_permission(const char *, filter_t *, const char *)
const char * aggregate_iterator_subgroup_value(iterator_t *)
Get the value of the subgroup column from an aggregate iterator.
delete_permission_data_t * delete_permission_data
Parser callback data for DELETE_PERMISSION.
get_system_reports_data_t get_system_reports
get_system_reports
const char * cve_info_iterator_cvss(iterator_t *)
const char * task_role_iterator_name(iterator_t *)
const char * get_iterator_comment(iterator_t *)
int append_attribute(const gchar **attribute_names, const gchar **attribute_values, const char *attribute_name, gchar **string)
Find an attribute in a parser callback list of attributes and append.
const char * port_range_iterator_end(iterator_t *)
char * detail_source_type
Type of source of current host detail.
int result
Boolean. Whether to include associated results.
char * esxi_lsc_credential_id
ESXi credential (deprecated).
char * subject_id
Subject permission applies to.
verify_scanner_data_t verify_scanner
verify_scanner
int note_iterator_active(iterator_t *)
void init_nvt_preference_iterator(iterator_t *, const char *)
char * active
Whether the override is active.
int init_permission_iterator(iterator_t *, const get_data_t *)
char * severity
Severity score of results to override.
Command data for the get_groups command.
int permission_iterator_resource_readable(iterator_t *)
const char * all_info_iterator_type(iterator_t *)
array_t * preferences
Preferences.
int create_group(const char *, const char *, const char *, int, group_t *)
char * reverse_lookup_only
Boolean. Whether to consider only hosts that reverse lookup.
Command data for the modify_scanner command.
Command data for the delete_port_range command.
const char * task_iterator_run_status_name(iterator_t *)
Get the run status name from a task iterator.
gboolean next_file(file_iterator_t *iterator)
Increment a report type iterator.
int create_port_list(const char *, const char *, const char *, const char *, array_t *, port_list_t *)
char * agent_uuid(agent_t)
char * id
ID of single item to get.
const char * cert_bund_adv_info_iterator_title(iterator_t *)
int init_resource_tag_iterator(iterator_t *, const char *, resource_t, int, const char *, int)
int create_override(const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, task_t, result_t, override_t *)
int init_get(gchar *command, get_data_t *get, const gchar *setting_name, int *first)
Init for a GET handler.
report_t current_report
The report of the current task.
int max_groups
Maximum number of aggregate groups to return.
array_t * groups
IDs of groups.
delete_asset_data_t * delete_asset_data
Parser callback data for DELETE_ASSET.
char * preference_hr_name
Human readable name in PREFERENCE.
Command data for the modify_schedule command.
int init_report_iterator(iterator_t *, const get_data_t *)
char * source_name
Source name.
const char * file_iterator_name(file_iterator_t *iterator)
Return the name from a file iterator.
int modify_permission(const char *, const char *, const char *, const char *, const char *, const char *, const char *)
char * type
Type of filter.
const char * target_task_iterator_name(iterator_t *)
int target_task_iterator_readable(iterator_t *)
const char * override_iterator_text(iterator_t *)
int port_list_count(const get_data_t *)
const char * credential_scanner_iterator_name(iterator_t *)
int nvt_info_count(const get_data_t *)
get_info_data_t * get_info_data
Parser callback data for GET_INFO.
const char * cpe_info_iterator_title(iterator_t *)
void set_task_hosts_ordering(task_t, const char *)
Set the hosts ordering of a task.
void init_user_role_iterator(iterator_t *, user_t)
int copy_target(const char *, const char *, const char *, target_t *)
int create_port_range(const char *, const char *, const char *, const char *, const char *, port_range_t *)
char * filter_name(filter_t)
char * name
Name of the tag.
char * filter_replacement
Filter term to replace the one in filt_id.
int nvt_selector_iterator_type(iterator_t *)
modify_user_data_t * modify_user_data
Parser callback data for MODIFY_USER.
const char * ovaldef_info_iterator_max_cvss(iterator_t *)
int read_over
Read over any child elements.
array_t * event_data
Array of pointers. Extra data for event.
const char * target_iterator_port_list_uuid(iterator_t *)
char * privacy_password
SNMP Privacy password.
char * result_threat
Message type for current result.
int port_list_iterator_count_tcp(iterator_t *)
int init_ovaldef_info_iterator(iterator_t *, get_data_t *, const char *)
char * task_id
ID of task to modify.
const char * setting_severity()
name_value_t * param
Current param.
Command data for the modify_report command.
Command data for the modify_auth command.
void init_cve_nvt_iterator(iterator_t *, const char *, int, const char *)
int task_iterator_total_reports(iterator_t *)
Get the number of reports of a task iterator.
GSList * settings
List of auth_conf_setting_t.
gboolean find_trash_task_with_permission(const char *, task_t *, const char *)
char * preference_alt
Single radio alternative in PREFERENCE.
Command data for the delete_task command.
gchar * manage_clean_filter(const gchar *)
Clean a filter.
create_port_list_range_t * range
Current port range for import.
scanner_t task_scanner(task_t)
Return the scanner of a task.
long long int report_format_param_iterator_type_max(iterator_t *)
gboolean find_config(const char *, config_t *)
int init_aggregate_iterator(iterator_t *, const char *, const get_data_t *, int, GArray *, const char *, const char *, GArray *, GArray *, int, int, const char *, const char *)
Initialise a GET_AGGREGATES iterator, including observed resources.
char * ovaldef_cves(const char *)
create_permission_data_t * create_permission_data
Parser callback data for CREATE_PERMISSION.
int permission_iterator_subject_readable(iterator_t *)
int init_agent_iterator(iterator_t *, const get_data_t *)
sync_config_data_t sync_config
sync_config
int trash_id_exists(const char *, const char *)
Test Whether a resource of the given type and ID exists in the trash.
char * users
Users for role.
char * scanner_id
ID of scanner to verify.
int config_task_iterator_readable(iterator_t *)
char * override_id
ID of override to delete.
void init_nvt_selector_iterator(iterator_t *, const char *, config_t, int)
modify_port_list_data_t modify_port_list
modify_port_list
char * task_id
ID of task to delete.
int copy_agent(const char *, const char *, const char *, agent_t *)
Command data for the delete_filter command.
char * name
Name of alert.
get_results_data_t * get_results_data
Parser callback data for GET_RESULTS.
char * report_format_extension(report_format_t)
get_aggregates_data_t * get_aggregates_data
Parser callback data for GET_AGGREGATES.
const char * cve_info_iterator_complexity(iterator_t *)
modify_user_data_t modify_user
modify_user
char * in_assets
Whether to create assets from report.
delete_config_data_t * delete_config_data
Parser callback data for DELETE_CONFIG.
int alert_iterator_filter_readable(iterator_t *)
Return the filter readable state from an alert iterator.
char * tag_uuid(target_t)
const char * ovaldef_info_iterator_title(iterator_t *)
int role_count(const get_data_t *)
int resource_id_exists(const char *, const char *)
Test whether a resource of the given type and unique ID exists.
const char * result_iterator_nvt_bid(iterator_t *)
int init_cert_bund_adv_info_iterator(iterator_t *, get_data_t *, const char *)
Command data for the delete_report command.
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.
char * alert_id
ID of alert to test.
const char * ovaldef_info_iterator_file(iterator_t *)
const char * cve_info_iterator_products(iterator_t *)
char * task_id
ID of task to which to limit override.
int init_cpe_info_iterator(iterator_t *, get_data_t *, const char *)
char * filter_term
Filter term, for report.
char * sort_field
Field to sort results on.
create_override_data_t * create_override_data
Parser callback data for CREATE_OVERRIDE.
Command data for the modify_tag command.
int manage_check_current_task()
Handle state changes to current task made by other processes.
int osp_get_details_from_iterator(iterator_t *, char **, GSList **)
char * event
Event that will cause alert.
char to_client[TO_CLIENT_BUFFER_SIZE]
Buffer of output to the client.
#define ALL_LOG_LEVELS
Flag with all Glib log levels.
Command data for the create_config command.
char * host_start
Start time for a host.
const char * note_iterator_nvt_name(iterator_t *)
result_t override_iterator_result(iterator_t *)
delete_filter_data_t * delete_filter_data
Parser callback data for DELETE_FILTER.
char * password
Password associated with login name.
void cleanup_iterator(iterator_t *)
Cleanup an iterator.
int config_iterator_family_count(iterator_t *)
const char * credential_iterator_login(iterator_t *)
char * ssh_lsc_credential_id
SSH credential (deprecated).
char * config_uuid(config_t)
int timeout
Boolean. Whether to include timeout preference.
int ultimate
Boolean. Whether to remove entirely or to trashcan.
int ultimate
Dummy field for generic macros.
run_wizard_data_t * run_wizard_data
Parser callback data for WIZARD.
time_t schedule_iterator_period(iterator_t *)
char * port_list_id
Port list for new port range.
const char * all_info_iterator_extra(iterator_t *)
const char * config_task_iterator_uuid(iterator_t *)
create_override_data_t create_override
create_override
int permission_is_admin(const char *)
int schedules_only
Whether to to get only schedules and basic info.
char * scan_nvt_version
Version of NVT used at scan time.
Command data for the get_nvts command.
const char * report_format_iterator_summary(iterator_t *)
char * format_id
ID of report format.
const char * report_type_iterator_title(report_type_iterator_t *iterator)
Return the title from a report type iterator.
int nvt_selector_family_growing(const char *, const char *, int)
char * copy
UUID of resource to copy.
Command data for the resume_task command.
int report_progress(report_t, task_t, gchar **)
int create_report(array_t *, const char *, const char *, const char *, const char *, const char *, const char *, array_t *, array_t *, array_t *, char **)
void filter_free(array_t *)
Free a split filter.
char * scan_end
End time for a scan.
int init_alert_iterator(iterator_t *, const get_data_t *)
Initialise an alert iterator, including observed alerts.
void init_schedule_task_iterator(iterator_t *, schedule_t)
int resource_tag_count(const char *, resource_t, int)
help_data_t * help_data
Parser callback data for HELP.
const char * setting_iterator_uuid(iterator_t *)
const char * cpe_info_iterator_max_cvss(iterator_t *)
int import
The import element was present.
gboolean openvas_get_sync_script_description(const gchar *, gchar **)
void init_credential_scanner_iterator(iterator_t *, credential_t, int)
Command data for the modify_task command.
array_t * condition_data
Array of pointers. Extra data for condition.
Command data for the help command.
char * target_name(target_t)
int acl_user_may(const char *operation)
Test whether a user may perform an operation.
char * scan_start
Start time for a scan.
char * type
Resource type.
delete_task_data_t delete_task
delete_task
int create_tag(const char *, const char *, const char *, const char *, const char *, const char *, tag_t *)
delete_task_data_t * delete_task_data
Parser callback data for DELETE_TASK.
void init_port_range_iterator(iterator_t *, port_range_t, int, int, const char *)
int copy_note(const char *, note_t *)
get_groups_data_t get_groups
get_groups
const char * port_list_target_iterator_name(iterator_t *)
get_reports_data_t get_reports
get_reports
delete_target_data_t * delete_target_data
Parser callback data for DELETE_TARGET.
int note_uuid(note_t, char **)
const char * result_iterator_host(iterator_t *)
int preference_count
Boolean. Whether to include NVT preference count.
int copy_role(const char *, const char *, const char *, role_t *)
const char * alert_condition_name(alert_condition_t condition)
Get the name of an alert condition.
const char * target_iterator_ssh_port(iterator_t *)
Command data for the verify_agent command.
int openvas_current_sync(const gchar *, gchar **, gchar **)
int ultimate
Dummy field for generic macros.
const char * user_group_iterator_name(iterator_t *)
credentials_t current_credentials
Current credentials during any OMP command.
char * task_id
ID of task to which to limit listing.
int target_iterator_ssh_credential(iterator_t *)
#define g_info(...)
Defines g_info for glib versions older than 2.40.
resume_task_data_t resume_task
resume_task
char * result_severity
Severity score for current result.
get_permissions_data_t * get_permissions_data
Parser callback data for GET_PERMISSIONS.
void cleanup_file_iterator(file_iterator_t *iterator)
Cleanup a report type iterator.
#define STATUS_ERROR_SYNTAX
Response code for a syntax error.
char * report_uuid(report_t)
char * make_name_unique
Boolean. Whether to make name unique.
int set_task_schedule(task_t, schedule_t, int)
Set the schedule of a task.
int current_error
Hack for returning forked process status from the callbacks.
command_t omp_commands[]
The OMP command list.
buffer_size_t from_client_end
The end of the data in the from_client buffer.
delete_report_format_data_t delete_report_format
delete_report_format
int override_count(const get_data_t *, nvt_t, result_t, task_t)
char * duration
Duration into the past to report on.
const char * family_iterator_name(iterator_t *)
const char * cpe_info_iterator_cve_refs(iterator_t *)
A handle on an OMP parser.
int copy_config(const char *, const char *, const char *, config_t *)
int scanner_iterator_credential_trash(iterator_t *)
delete_override_data_t * delete_override_data
Parser callback data for DELETE_OVERRIDE.
void manage_set_ldap_info(int, gchar *, gchar *, int, gchar *)
char * part_data
Second part of data during *_data: value.
int ultimate
Boolean. Whether to remove entirely or to trashcan.
void set_task_config(task_t, config_t)
Set the config of a task.
char * alert_uuid(alert_t)
Return the UUID of an alert.
create_tag_data_t create_tag
create_tag
modify_group_data_t * modify_group_data
Parser callback data for MODIFY_GROUP.
char * condition
Condition for alert, e.g. "Always".
void make_task_complete(const char *)
const char * preference_iterator_hr_name(iterator_t *)
get_data_t report_get
Get args with report filtering.
char * name
Name for new schedule.
int copy_user(const char *, const char *, const char *, user_t *)
modify_setting_data_t modify_setting
modify_setting
array_t * host_starts
All host starts.
char * auth_algorithm
SNMP Authentication algorithm.
char * config_id
Config whose preference values to get.
const char * note_iterator_nvt_oid(iterator_t *)
array_t * roles
IDs of roles.
char * permission_id
Permission UUID.
gchar * value
Value for current auth_conf_setting.
int target_iterator_esxi_trash(iterator_t *)
int copy_scanner(const char *, const char *, const char *, scanner_t *)
int request_delete_task(task_t *)
char * detail_source_desc
Description of source of current detail.
void manage_transaction_stop(gboolean)
int alert_iterator_filter_trash(iterator_t *)
Return the location of an alert iterator filter.
Command data for the wizard command.
int report_timestamp(const char *, gchar **)
char * ssh_port
Port for SSH.
int manage_set_config(config_t, const char *, const char *, const char *)
const char * result_iterator_nvt_name(iterator_t *)
char * ssh_credential_id
SSH credential for target.
Command data for the modify_alert command.
start_task_data_t start_task
start_task
char * privacy_password
SNMP Privacy password.
run_wizard_data_t wizard
run_wizard
const char * port_range_iterator_type(iterator_t *)
int modify_filter(const char *, const char *, const char *, const char *, const char *)
char * end_time
Time of the last data point to report on.
char * host_end
End time for a host.
gboolean find_filter(const char *, filter_t *)
char * mode
Special aggregate mode.
char * scanner_id
ID of task scanner.
int details
Boolean. Whether to include full NVT details.
int family_nvt_count(const char *)
char * privacy_algorithm
SNMP Privacy algorithm.
const char * override_iterator_nvt_oid(iterator_t *)
int tasks
Boolean. Whether to include tasks that use this schedule.
modify_setting_data_t * modify_setting_data
Parser callback data for MODIFY_SETTING.
int modify_alert(const char *, const char *, const char *, const char *, event_t, GPtrArray *, alert_condition_t, GPtrArray *, alert_method_t, GPtrArray *)
Modify an alert.
char * severity
Severity score to which to limit note.
char * schedule_id
Schedule UUID.
modify_asset_data_t * modify_asset_data
Parser callback data for MODIFY_ASSET.
char * override_id
ID of override to modify.
int host_max_results
Maximum number of results return.
char * family_selection_family_growing_text
Text version of above.
int create_report_format(const char *, const char *, const char *, const char *, const char *, const char *, int, array_t *, array_t *, array_t *, const char *, report_format_t *)
int task_schedule_periods(task_t)
Get the number of times the period schedule should run on the task.
const char * setting_iterator_comment(iterator_t *)
client_state_t
Possible states of the client.
const char * nvt_iterator_oid(iterator_t *)
char * make_name_unique
Boolean. Whether to make name unique.
create_permission_data_t create_permission
create_permission
const char * aggregate_iterator_text(iterator_t *, int, int)
Get the value of a text column from an aggregate iterator.
GSList * groups
List of auth_group_t.
char * hosts
Hosts to which to limit override.
int task_schedule_next_time(task_t)
Get next time a scheduled task will run, following schedule timezone.
delete_scanner_data_t * delete_scanner_data
Parser callback data for DELETE_SCANNER.
char * alert_id
ID of alert to delete.
char * allow_insecure
Whether to allow insecure use.
const char * dfn_cert_adv_info_iterator_summary(iterator_t *)
char * new_threat
New threat value of overridden results.
gchar * task_id
ID of the task to move.
char * delta_report_id
ID of report to compare single report to.
Command data for the modify_setting command.
Command data for the create_permission command.
create_config_data_t * create_config_data
Parser callback data for CREATE_CONFIG.
gboolean openvas_get_sync_script_feed_version(const gchar *, gchar **)
const char * report_format_iterator_signature(iterator_t *)
char * user_id
ID of user to delete.
modify_filter_data_t * modify_filter_data
Parser callback data for MODIFY_FILTER.
int acl_user_can_super_everyone(const char *uuid)
Check whether a user is a Super Admin.
int manage_set_config_families(config_t, GPtrArray *, GPtrArray *, GPtrArray *, int)
const char * scanner_iterator_ca_pub(iterator_t *)
int overrides_details
Boolean. Whether to include details of above.
int dfn_cert_adv_info_count(const get_data_t *get)
char * port_list_uuid(port_list_t)
const char * ovaldi_file_iterator_name(iterator_t *)
char * name
Name of new target.
modify_report_data_t modify_report
modify_report
char * port
Port to which to limit override.
int create_config(const char *, const char *, const array_t *, const array_t *, const char *, config_t *, char **)
char * certificate
Certificate for client certificate auth.
get_targets_data_t * get_targets_data
Parser callback data for GET_TARGETS.
char * name
Name for new scanner.
#define CLOSE_READ_OVER(parent, element)
Insert else clause for omp_xml_handle_start_element.
const char * permission_iterator_resource_uuid(iterator_t *)
char * scanner_name(scanner_t)
char * result_description
Description of NVT for current result.
int quoted
Whether the keyword was quoted.
const char * result_iterator_nvt_oid(iterator_t *)
char * tag_id
ID of tag to delete.
Command data for the get_port_lists command.
char * report_format_uuid(report_format_t)
scanner_type
Scanner types.
char * slave_id
Slave that reports apply to, 0 for local Manager.
char * nvt_oid
OID of NVT.
const char * host_detail_iterator_source_id(iterator_t *)
int manage_test_alert(const char *, gchar **)
Test an alert.
#define AUTO_DELETE_KEEP_MIN
char * source_desc
Source description.
A system report type iterator.
const char * tag_iterator_resource_type(iterator_t *)
int openvas_sync_feed(const gchar *, const gchar *, int)
int task_in_trash(task_t)
Return whether a task is in the trashcan.
int report_scan_run_status(report_t, int *)
get_settings_data_t * get_settings_data
Parser callback data for GET_SETTINGS.
gboolean find_note_with_permission(const char *, note_t *, const char *)
int target_iterator_ssh_trash(iterator_t *)
int ovaldef_info_count(const get_data_t *get)
get_permissions_data_t get_permissions
get_permissions
time_t report_format_iterator_trust_time(iterator_t *)
char * port
Port of new scanner.
const char * cve_info_iterator_availability_impact(iterator_t *)
int brief
Boolean. Whether respond in brief.
array_t * families_growing_all
New family selection: growing, all NVTs.
int copy_report_format(const char *, const char *, report_format_t *)
int resource_count
Number of attach tags.
get_nvts_data_t get_nvts
get_nvts
int ultimate
Boolean. Whether to remove entirely or to trashcan.
modify_tag_data_t * modify_tag_data
Parser callback data for MODIFY_TAG.
stop_task_data_t stop_task
stop_task
char * name
Name of target.
const char * setting_iterator_name(iterator_t *)
delete_permission_data_t delete_permission
delete_permission
Command data for the delete_credential command.
char * task_comment(task_t)
Return the comment of a task.
int all_info_count(const get_data_t *)
Command data for the get_configs command.
alert_method_t alert_method_from_name(const char *name)
Get an alert method from a name.
const char * target_iterator_reverse_lookup_only(iterator_t *)
const char * credential_iterator_privacy_algorithm(iterator_t *)
int forked
Hack for returning fork status to caller.
int trash_credential_readable(credential_t)
Command data for the modify_target command.
#define STATUS_OK
Response code on success.
get_configs_data_t * get_configs_data
Parser callback data for GET_CONFIGS.
char * type
Type of new port range.
#define CASE_DELETE(upper, type, capital)
Insert DELETE case for omp_xml_handle_end_element.
int result_uuid(result_t, char **)
Command data for the modify_target command.
int ultimate
Dummy field for generic macros.
verify_agent_data_t verify_agent
verify_agent
char * credential_id
UUID of credential of scanner.
const char * report_format_iterator_content_type(iterator_t *)
int modify_setting(const gchar *, const gchar *, const gchar *, gchar **)
time_t override_iterator_end_time(iterator_t *)
int tag_iterator_resource_readable(iterator_t *)
char * name
Name of NVT selector.
int init_task_iterator(iterator_t *, const get_data_t *)
Initialise a task iterator.
char * format
Format requested: "installer", "howto_use", ....
int config_iterator_nvts_growing(iterator_t *)
void init_report_format_alert_iterator(iterator_t *, report_format_t)
char * active
Whether the override is active.
int modify_port_list(const char *, const char *, const char *)
start_task_data_t * start_task_data
Parser callback data for START_TASK.
int modify_report(const char *, const char *)
time_t next_time(time_t first, int period, int period_months, const char *timezone, int periods_offset)
Calculate the next time from now given a start time and a period.
char * first_time_minute
Minute schedule must first run.
char * copy
UUID of resource to copy.
char * alert_id
ID of alert.
const char * permission_iterator_resource_type(iterator_t *)
char * nvt_oid
NVT to which to limit override.
char * comment
Comment on asset.
int init_target_iterator(iterator_t *, const get_data_t *)
const char * cpe_info_iterator_status(iterator_t *)
int osp_get_version_from_iterator(iterator_t *, char **, char **, char **, char **, char **, char **)
char * duration_unit
Unit of duration: "hour", "day", "week", ....
int manage_set_config_nvts(config_t, const char *, GPtrArray *)
gboolean next(iterator_t *)
Increment an iterator.
int set_task_groups(task_t, array_t *, gchar **)
Set observer groups on a task, removing any previous groups.
char * threat
Threat to which to limit override.
char * period
Period of schedule (how often it runs).
int manage_system_report(const char *name, const char *duration, const char *start_time, const char *end_time, const char *slave_id, char **report)
Get a system report.
Command data for the delete_port_list command.
char * alterable
Boolean. Whether the task is alterable.
Command data for the get_reports command.
char * name
Name of alert.
int first_group
Skip over groups before this group number.
void init_task_alert_iterator(iterator_t *, task_t, event_t event)
Initialise a task alert iterator.
char from_client[]
Buffer of input from the client.
char * target_uuid(target_t)
delete_group_data_t * delete_group_data
Parser callback data for DELETE_GROUP.
char * copy
Config to copy.
const char * result_iterator_nvt_family(iterator_t *)
Command data for the verify_scanner command.
char * copy
UUID of alert to copy.
char * config_id
ID of task config.
gboolean next_report_type(report_type_iterator_t *iterator)
Increment a report type iterator.
int init_override_iterator(iterator_t *, const get_data_t *, nvt_t, result_t, task_t)
char * port_list_id
ID of port list to delete.
Command data for the modify_role command.
int asset_host_count(const get_data_t *)
array_t * alts
Array of gchar's. Alternate values for radio type.
gchar * string
The string counted.
char * copy
UUID of scanner to copy.
create_report_data_t create_report
create_report
void add_task_alert(task_t, alert_t)
Add an alert to a task.
delete_port_range_data_t delete_port_range
delete_port_range
char * copy
UUID of resource to copy.
char * ca_pub
CA Certificate of new scanner.
char * installer
Installer content.
buffer_size_t to_client_end
The end of the data in the to_client buffer.
const char * alert_task_iterator_uuid(iterator_t *)
Return the uuid from an alert task iterator.
const char * target_iterator_exclude_hosts(iterator_t *)
int copy_alert(const char *, const char *, const char *, alert_t *)
Create an alert from an existing alert.
char * preference_nvt_name
NVT name in PREFERENCE.
get_alerts_data_t * get_alerts_data
Parser callback data for GET_ALERTS.
char * first_time_month
Month schedule must first run.
const char * tag_iterator_resource_uuid(iterator_t *)
char * part_data
Second part of data during *_data: value.
int manage_restore(const char *)
char * family_or_nvt
Family or NVT that this selector selects.
const char * setting_iterator_value(iterator_t *)
char * task_id
ID of task to which to limit override.
const char * tag_iterator_resource_name(iterator_t *)
modify_schedule_data_t * modify_schedule_data
Parser callback data for MODIFY_SCHEDULE.
get_nvt_families_data_t * get_nvt_families_data
Parser callback data for GET_NVT_FAMILIES.
int modify_task_check_config_scanner(task_t, const char *, const char *)
void init_nvt_iterator(iterator_t *, nvt_t, config_t, const char *, const char *, int, const char *)
const char * agent_iterator_howto_use(iterator_t *)
modify_credential_data_t modify_credential
modify_credential
modify_schedule_data_t modify_schedule
modify_schedule
char * schedule_uuid(schedule_t)
int tag_iterator_active(iterator_t *)
int nvt_selector_iterator_include(iterator_t *)
int create_scanner(const char *, const char *, const char *, const char *, const char *, scanner_t *, const char *, const char *)
char * hosts_ordering
Order for scanning target hosts.
double result_iterator_severity_double(iterator_t *)
char * nvt_preference_iterator_type(iterator_t *)
char * ssh_lsc_port
Port for SSH (deprecated).
char * threat
Threat to which to limit override.
get_data_t * report_results_get_data(int first, int rows, int apply_overrides, int autofp, int min_qod)
Create a new basic get_data_t struct to get report results.
void init_os_host_iterator(iterator_t *, resource_t)
int credential_count(const get_data_t *)
char * first_time_hour
Hour schedule must first run.
int valid_db_resource_type(const char *)
Check whether a resource type table name is valid.
unsigned int buffer_size_t
const char * report_type_iterator_name(report_type_iterator_t *iterator)
Return the name from a report type iterator.
create_user_data_t * create_user_data
Parser callback data for CREATE_USER.
char * type
Requested asset type.
const char * nvt_preference_iterator_name(iterator_t *)
const char * user_group_iterator_uuid(iterator_t *)
int stop_task(const char *task_id)
Initiate stopping a task.
int init_report_format_iterator(iterator_t *, const get_data_t *)
Command data for the modify_permission command.
event_t event_from_name(const char *name)
Get an event from a name.
#define STATUS_OK_CREATED_TEXT
Response code on success, when a resource is created.
time_t schedule_iterator_duration(iterator_t *)
array_t * host_ends
All host ends.
int preferences
Boolean. Whether to include config preferences.
char * family_selection_growing_text
Text version of above.
const char * target_iterator_reverse_lookup_unify(iterator_t *)
delete_role_data_t * delete_role_data
Parser callback data for DELETE_ROLE.
char * action
What to do to file: "update" or "remove".
const char * schedule_task_iterator_name(iterator_t *)
gboolean find_scanner_with_permission(const char *, scanner_t *, const char *)
int ultimate
Boolean. Whether to remove entirely or to trashcan.
name_value_t * preference
Current preference.
int trash_target_readable(target_t)
char * nvt_preference_iterator_real_name(iterator_t *)
const char * task_group_iterator_name(iterator_t *)
int modify_target(const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *)
char * schedule_name(schedule_t)
int tasks
Boolean. Whether to include tasks that use alert.
const char * host_detail_iterator_value(iterator_t *)
int include
Whether family/NVT is included or excluded.
int init_port_list_iterator(iterator_t *, const get_data_t *)
int host_identifier_iterator_source_orphan(iterator_t *)
char * credential_name(credential_t)
gchar * key
Key for current auth_conf_setting.
int target_iterator_smb_trash(iterator_t *)
int create_agent(const char *, const char *, const char *, const char *, const char *, const char *, const char *, agent_t *)
int result_detection_reference(result_t, char **, char **, char **, char **, char **)
int manage_task_remove_file(task_t, const char *)
char * role_id
ID of role to delete.
char * host
Host of scanner.
modify_filter_data_t modify_filter
modify_filter
int config_families_growing(config_t)
const char * cpe_info_iterator_nvd_id(iterator_t *)
const char * scanner_uuid_default()
int create_task_check_config_scanner(config_t, scanner_t)
char * community
SNMP Community string.
char * nvt_preference_iterator_nvt(iterator_t *)
int total_info_count(const get_data_t *, int)
char * port_range
Port range for new port list.
const char * resource_tag_iterator_name(iterator_t *)
array_t * alerts
IDs of new alerts for task.
get_agents_data_t get_agents
get_agents
const char * permission_iterator_resource_name(iterator_t *)
void append_to_task_name(task_t, const char *, int)
const char * asset_host_iterator_severity(iterator_t *)
int ultimate
Boolean. Whether to remove entirely or to trashcan.
int override_iterator_active(iterator_t *)
char * privacy_algorithm
SNMP Privacy algorithm.
int max
Maximum number of rows returned.
char client_address[]
The OMP client's address.
int trash_schedule_readable(schedule_t)
const char * port_list_target_iterator_uuid(iterator_t *)
int asset_iterator_writable(iterator_t *)
char * scanner_id
scanner UUID.
const char * cert_bund_adv_info_iterator_max_cvss(iterator_t *)
char * filter_id
UUID of filter.
char * filter_replace
Column to replace in filter.
event_t
Types of task events.
char * name
New name for config.
get_results_data_t get_results
get_results
Command data for the create_filter command.
const char * scanner_task_iterator_uuid(iterator_t *)
const char * alert_data_iterator_name(iterator_t *)
Return the name from an alert data iterator.
char * task_name(task_t)
Return the name of a task.
delete_target_data_t delete_target
delete_target
Command data for the delete_note command.
create_agent_data_t * create_agent_data
Parser callback data for CREATE_AGENT.
char * preference_nvt_oid
OID of NVT of preference.
char * snmp_credential_id
SNMP credential for target.
char * key_phrase
Passphrase for key.
A host detail for create_report.
void get_data_reset(get_data_t *data)
Reset command data.
char * nvt_selector_type
In NVT_SELECTORS type of selector.
char * port_range_id
ID of port range to delete.
Command data for the delete_override command.
char * task_comment
Comment for container task.
get_credentials_data_t get_credentials
get_credentials
char * nvts_feed_version()
int tag_count(const get_data_t *get)
int ignore_pagination
Whether to ignore the pagination (first and max).
array_t * ranges
Port ranges for import.
int result
Boolean. Whether to include associated results.
char * schedule_id
ID of schedule to delete.
int ultimate
Boolean. Whether to remove entirely or to trashcan.
task_t note_iterator_task(iterator_t *)
char * agent_id
agent UUID.
char * nvt_selector_family_or_nvt
In NVT_SELECTORS family/NVT flag.
#define STATUS_OK_REQUESTED_TEXT
Response code text on success, when the operation will finish later.
const char * all_info_iterator_severity(iterator_t *)
char * host_levels
Letter encoded threat level filter, for hosts.
delete_port_list_data_t * delete_port_list_data
Parser callback data for DELETE_PORT_LIST.
int modify_agent(const char *, const char *, const char *)
char * preference_type
Type in PREFERENCE.
int report_format_alert_iterator_readable(iterator_t *)
verify_report_format_data_t * verify_report_format_data
Parser callback data for VERIFY_REPORT_FORMAT.
int init_scanner_iterator(iterator_t *, const get_data_t *)
char * nvt_oid
NVT to which to limit override.
verify_report_format_data_t verify_report_format
verify_report_format
int sort_order
Result sort order: 0 descending, else ascending.
const char * alert_task_iterator_name(iterator_t *)
Return the name from an alert task iterator.
Command data for the get_info command.
get_credentials_data_t * get_credentials_data
Parser callback data for GET_CREDENTIALS.
void set_task_alterable(task_t, int)
Set the alterable state of a task.
char * asset_id
asset UUID.
char * duration
Duration of schedule (how long it runs for).
const char * preference_iterator_type(iterator_t *)
int minimal
Whether to respond with minimal information.
verify_scanner_data_t * verify_scanner_data
Parser callback data for VERIFY_SCANNER.
create_user_data_t create_user
create_user
get_roles_data_t get_roles
get_roles
int set_task_schedule_periods(const gchar *, int)
Set the schedule periods of a task, given a UUID.
void init_report_format_param_iterator(iterator_t *, report_format_t, int, int, const char *)
#define APPLY_OVERRIDES_DEFAULT
Default apply_overrides setting.
int family_selection_family_growing
FAMILY_SELECTION/FAMILY growing flag.
char * note_id
ID of single note to get.
create_config_data_t create_config
create_config
char * users
Users belonging to new group.
const char * nvt_selector_iterator_name(iterator_t *)
int details
Boolean. Whether to include full details.
create_report_format_data_t * create_report_format_data
Parser callback data for CREATE_REPORT_FORMAT.
const char * credential_scanner_iterator_uuid(iterator_t *)
char * active
Whether the tag is active.
const char * cve_info_iterator_confidentiality_impact(iterator_t *)
delete_user_data_t delete_user
delete_user
int special_full
Boolean. Give group Super on itself.
int manage_trash_resource_name(const char *, const char *, char **)
Get the name of a trashcan resource.
char * scan_start_time(report_t)
int create_alert(const char *, const char *, const char *, event_t, GPtrArray *, alert_condition_t, GPtrArray *, alert_method_t, GPtrArray *, alert_t *)
Create an alert.
gchar * value
Param value.
int task_average_scan_duration(task_t)
Get the average duration of all finished reports of a task.
Command data for the create_note command.
char * ip
Current host for host details.
const char * preference_iterator_default(iterator_t *)
const char * filter_alert_iterator_name(iterator_t *)
char * filter
Filter term.
const char * config_timeout_iterator_oid(iterator_t *)
char * group_id
ID of group to delete.
char * nvt_selection_nvt_oid
OID during NVT_selection/NVT.
void init_param_option_iterator(iterator_t *, report_format_param_t, int, const char *)
long long int resource_t
A resource, like a task or target.
int manage_read_info(gchar *type, gchar *uid, gchar *name, gchar **result)
Read raw information.
const char * alert_data_iterator_data(iterator_t *)
Return the data from an alert data iterator.
gboolean find_config_with_permission(const char *, config_t *, const char *)
char * port
Port to which to limit override.
const char * aggregate_iterator_value(iterator_t *)
Get the value of the group column from a statistics iterator.
array_t * preference_alts
Array of gchar's in PREFERENCES.
long long int report_format_t
const char * dfn_cert_adv_info_iterator_title(iterator_t *)
get_schedules_data_t * get_schedules_data
Parser callback data for GET_SCHEDULES.
char * first_time_month
Month schedule must first run.
int init_config_iterator(iterator_t *, const get_data_t *)
Command data for the get_users command.
Command data for the get_feeds command.
Command data for the get_notes command.
const char * user_role_iterator_name(iterator_t *)
get_tags_data_t get_tags
get_tags
Command data for the modify_override command.
char * nvt_preference_iterator_config_value(iterator_t *, config_t)
int modify_role(const char *, const char *, const char *, const char *)
char * config_nvt_timeout(config_t, const char *)
char * permission_id
ID of permission to delete.
gchar * strdiff(const gchar *one, const gchar *two)
Compare two string with the "diff" command.
int permission_iterator_resource_orphan(iterator_t *)
char * users
Users belonging to new role.
gboolean openvas_get_sync_script_identification(const gchar *, gchar **, int)
Command data for the test_alert command.