[Openvas-commits] r13182 - in trunk/gsa: . src src/html
scm-commit at wald.intevation.org
scm-commit at wald.intevation.org
Mon Apr 2 16:54:18 CEST 2012
Author: mattm
Date: 2012-04-02 16:54:18 +0200 (Mon, 02 Apr 2012)
New Revision: 13182
Modified:
trunk/gsa/ChangeLog
trunk/gsa/src/gsad.c
trunk/gsa/src/gsad_omp.c
trunk/gsa/src/gsad_omp.h
trunk/gsa/src/html/gsad.xsl
trunk/gsa/src/html/omp.xsl
Log:
Add new, list and export icons on Target Details page.
* src/gsad.c (init_validator, exec_omp_get): Add export_target.
* src/gsad_omp.c (new_target): Add target ID to XML for icon on Target
Details page.
(create_target_omp): If target ID present, go to Target Details page.
(get_target): New function. Body from get_target_omp.
(get_target_omp): Pass through to get_target.
(export_target_omp): New function.
* src/gsad_omp.h: Add header accordingly.
* src/html/omp.xsl (html-gsa-logo): Add create_target indicator match for
Target Details page.
(html-create-target-form): Add new, list and export icons.
Modified: trunk/gsa/ChangeLog
===================================================================
--- trunk/gsa/ChangeLog 2012-04-02 12:18:50 UTC (rev 13181)
+++ trunk/gsa/ChangeLog 2012-04-02 14:54:18 UTC (rev 13182)
@@ -1,5 +1,24 @@
2012-04-02 Matthew Mundell <matthew.mundell at greenbone.net>
+ Add new, list and export icons on Target Details page.
+
+ * src/gsad.c (init_validator, exec_omp_get): Add export_target.
+
+ * src/gsad_omp.c (new_target): Add target ID to XML for icon on Target
+ Details page.
+ (create_target_omp): If target ID present, go to Target Details page.
+ (get_target): New function. Body from get_target_omp.
+ (get_target_omp): Pass through to get_target.
+ (export_target_omp): New function.
+
+ * src/gsad_omp.h: Add header accordingly.
+
+ * src/html/omp.xsl (html-gsa-logo): Add create_target indicator match for
+ Target Details page.
+ (html-create-target-form): Add new, list and export icons.
+
+2012-04-02 Matthew Mundell <matthew.mundell at greenbone.net>
+
* src/html/omp.xsl (html-targets-table): Add Rows field to filtering.
2012-04-02 Matthew Mundell <matthew.mundell at greenbone.net>
Modified: trunk/gsa/src/gsad.c
===================================================================
--- trunk/gsa/src/gsad.c 2012-04-02 12:18:50 UTC (rev 13181)
+++ trunk/gsa/src/gsad.c 2012-04-02 14:54:18 UTC (rev 13182)
@@ -558,6 +558,7 @@
"|(export_port_list)"
"|(export_preference_file)"
"|(export_report_format)"
+ "|(export_target)"
"|(export_targets)"
"|(get_agent)"
"|(get_agents)"
@@ -1713,6 +1714,10 @@
return export_report_format_omp (credentials, params, content_type,
content_disposition, response_size);
+ else if (!strcmp (cmd, "export_target"))
+ return export_target_omp (credentials, params, content_type,
+ content_disposition, response_size);
+
else if (!strcmp (cmd, "export_targets"))
return export_targets_omp (credentials, params, content_type,
content_disposition, response_size);
Modified: trunk/gsa/src/gsad_omp.c
===================================================================
--- trunk/gsa/src/gsad_omp.c 2012-04-02 12:18:50 UTC (rev 13181)
+++ trunk/gsa/src/gsad_omp.c 2012-04-02 14:54:18 UTC (rev 13182)
@@ -4076,12 +4076,20 @@
gnutls_session_t session;
int socket;
gchar *html, *end;
- const char *filter;
+ const char *filter, *target_id;
filter = params_value (params, "filter");
if (filter == NULL)
filter = "";
+ target_id = params_value (params, "target_id");
+ if (target_id == NULL && params_given (params, "target_id"))
+ return gsad_message (credentials,
+ "Internal error", __FUNCTION__, __LINE__,
+ "An internal error occurred while saving a credential. "
+ "Diagnostics: Error in parameter target_id.",
+ "/omp?cmd=get_targets");
+
switch (manager_connect (credentials, &socket, &session, &html))
{
case 0:
@@ -4193,8 +4201,10 @@
}
end = g_markup_printf_escaped ("<filters><term>%s</term></filters>"
+ "<target id=\"%s\"/>"
"</new_target>",
- filter);
+ filter,
+ target_id ? target_id : "0");
g_string_append (xml, end);
g_free (end);
@@ -4233,6 +4243,8 @@
return html; \
}
+char *
+get_target (credentials_t *, params_t *, const char *);
/**
* @brief Create a target, get all targets, XSL transform the result.
@@ -4251,7 +4263,7 @@
gchar *html;
const char *name, *hosts, *target_locator, *comment, *port_list_id;
const char *target_credential, *port, *target_smb_credential, *target_source;
- const char *filter;
+ const char *filter, *target_id;
switch (manager_connect (credentials, &socket, &session, &html))
{
@@ -4282,6 +4294,7 @@
port = params_value (params, "port");
target_smb_credential = params_value (params, "lsc_smb_credential_id");
filter = params_value (params, "filter");
+ target_id = params_value (params, "target_id");
CHECK (name)
else CHECK (target_source)
@@ -4423,6 +4436,16 @@
return html;
}
+ if (target_id && strcmp (target_id, "0"))
+ {
+ gchar *ret;
+ g_string_free (xml, TRUE);
+ ret = get_target (credentials, params, response);
+ g_free (response);
+ free_entity (entity);
+ return ret;
+ }
+
g_string_append (xml, response);
g_free (response);
free_entity (entity);
@@ -5584,11 +5607,13 @@
*
* @param[in] credentials Username and password for authentication.
* @param[in] params Request parameters.
+ * @param[in] extra_xml Extra XML to insert inside page element.
*
* @return Result of XSL transformation.
*/
char *
-get_target_omp (credentials_t * credentials, params_t *params)
+get_target (credentials_t * credentials, params_t *params,
+ const char *extra_xml)
{
GString *xml;
gnutls_session_t session;
@@ -5626,6 +5651,9 @@
xml = g_string_new ("<get_target>");
+ if (extra_xml)
+ g_string_append (xml, extra_xml);
+
/* Get the target. */
if (openvas_server_sendf (&session,
@@ -5670,6 +5698,20 @@
}
/**
+ * @brief Get one target, XSL transform the result.
+ *
+ * @param[in] credentials Username and password for authentication.
+ * @param[in] params Request parameters.
+ *
+ * @return Result of XSL transformation.
+ */
+char *
+get_target_omp (credentials_t * credentials, params_t *params)
+{
+ return get_target (credentials, params, NULL);
+}
+
+/**
* @brief Get all targets, XSL transform the result.
*
* @param[in] credentials Username and password for authentication.
@@ -5765,6 +5807,95 @@
* @param[out] content_disposition Content disposition return.
* @param[out] content_length Content length return.
*
+ * @return Target XML on success. HTML result of XSL transformation
+ * on error.
+ */
+char *
+export_target_omp (credentials_t * credentials, params_t *params,
+ enum content_type * content_type, char **content_disposition,
+ gsize *content_length)
+{
+ entity_t entity;
+ gnutls_session_t session;
+ int socket;
+ char *content = NULL;
+ gchar *html;
+ const char *target_id;
+
+ *content_length = 0;
+
+ target_id = params_value (params, "target_id");
+
+ if (target_id == NULL)
+ return gsad_message (credentials,
+ "Internal error", __FUNCTION__, __LINE__,
+ "An internal error occurred while exporting a target. "
+ "Diagnostics: Required parameter was NULL.",
+ "/omp?cmd=get_targets");
+
+ switch (manager_connect (credentials, &socket, &session, &html))
+ {
+ case 0:
+ break;
+ case -1:
+ if (html)
+ return html;
+ /* Fall through. */
+ default:
+ return gsad_message (credentials,
+ "Internal error", __FUNCTION__, __LINE__,
+ "An internal error occurred while getting a target. "
+ "The target could not be delivered. "
+ "Diagnostics: Failure to connect to manager daemon.",
+ "/omp?cmd=get_targets");
+ }
+
+ if (openvas_server_sendf (&session,
+ "<get_targets"
+ " target_id=\"%s\"/>",
+ target_id)
+ == -1)
+ {
+ openvas_server_close (socket, session);
+ return gsad_message (credentials,
+ "Internal error", __FUNCTION__, __LINE__,
+ "An internal error occurred while getting the targets. "
+ "The targets could not be delivered. "
+ "Diagnostics: Failure to send command to manager daemon.",
+ "/omp?cmd=get_targets");
+ }
+
+ entity = NULL;
+ if (read_entity_and_text (&session, &entity, &content))
+ {
+ openvas_server_close (socket, session);
+ return gsad_message (credentials,
+ "Internal error", __FUNCTION__, __LINE__,
+ "An internal error occurred while getting the targets. "
+ "The targets could not be delivered. "
+ "Diagnostics: Failure to receive response from manager daemon.",
+ "/omp?cmd=get_targets");
+ }
+
+ *content_type = GSAD_CONTENT_TYPE_APP_XML;
+ *content_disposition = g_strdup_printf ("attachment;"
+ " filename=\"target-%s.xml\"",
+ target_id);
+ *content_length = strlen (content);
+ free_entity (entity);
+ openvas_server_close (socket, session);
+ return content;
+}
+
+/**
+ * @brief Export a list of target.
+ *
+ * @param[in] credentials Username and password for authentication.
+ * @param[in] params Request parameters.
+ * @param[out] content_type Content type return.
+ * @param[out] content_disposition Content disposition return.
+ * @param[out] content_length Content length return.
+ *
* @return Targets XML on success. HTML result of XSL transformation
* on error.
*/
Modified: trunk/gsa/src/gsad_omp.h
===================================================================
--- trunk/gsa/src/gsad_omp.h 2012-04-02 12:18:50 UTC (rev 13181)
+++ trunk/gsa/src/gsad_omp.h 2012-04-02 14:54:18 UTC (rev 13182)
@@ -95,6 +95,8 @@
char * get_targets_omp (credentials_t *, params_t *);
char * export_targets_omp (credentials_t *, params_t *, enum content_type *,
char **, gsize *);
+char * export_target_omp (credentials_t *, params_t *, enum content_type *,
+ char **, gsize *);
char * create_target_omp (credentials_t *, params_t *);
char * delete_target_omp (credentials_t *, params_t *);
char * delete_trash_target_omp (credentials_t *, params_t *);
Modified: trunk/gsa/src/html/gsad.xsl
===================================================================
--- trunk/gsa/src/html/gsad.xsl 2012-04-02 12:18:50 UTC (rev 13181)
+++ trunk/gsa/src/html/gsad.xsl 2012-04-02 14:54:18 UTC (rev 13182)
@@ -709,6 +709,8 @@
mode="response-indicator"/>
<xsl:apply-templates select="get_target/commands_response/delete_target_response"
mode="response-indicator"/>
+ <xsl:apply-templates select="get_target/create_target_response"
+ mode="response-indicator"/>
<xsl:apply-templates select="get_target/gsad_msg"
mode="response-indicator"/>
<xsl:apply-templates select="get_targets/gsad_msg"
Modified: trunk/gsa/src/html/omp.xsl
===================================================================
--- trunk/gsa/src/html/omp.xsl 2012-04-02 12:18:50 UTC (rev 13181)
+++ trunk/gsa/src/html/omp.xsl 2012-04-02 14:54:18 UTC (rev 13182)
@@ -5200,6 +5200,7 @@
<input type="hidden" name="token" value="{/envelope/token}"/>
<input type="hidden" name="cmd" value="create_target"/>
<input type="hidden" name="caller" value="{/envelope/caller}"/>
+ <input type="hidden" name="target_id" value="{target/@id}"/>
<input type="hidden" name="filter" value="{filters/term}"/>
<table border="0" cellspacing="0" cellpadding="3" width="100%">
<tr>
@@ -5644,6 +5645,19 @@
title="Help: Configure Targets (Target Details)">
<img src="/img/help.png"/>
</a>
+ <a href="/omp?cmd=new_target&filter={filters/term}&target_id={@id}&token={/envelope/token}"
+ title="New Target">
+ <img src="/img/new.png" border="0" style="margin-left:3px;"/>
+ </a>
+ <a href="/omp?cmd=get_targets&filter={filters/term}&token={/envelope/token}"
+ title="Targets" style="margin-left:3px;">
+ <img src="/img/list.png" border="0" alt="Targets"/>
+ </a>
+ <a href="/omp?cmd=export_target&target_id={@id}&filter={filters/term}&token={/envelope/token}"
+ title="Export Target XML"
+ style="margin-left:3px;">
+ <img src="/img/download.png" border="0" alt="Export XML"/>
+ </a>
</div>
<div class="gb_window_part_content">
<div class="float_right">
More information about the Openvas-commits
mailing list