@@ -5639,13 +5639,14 @@ xsl_transform (gchar *stylesheet, gchar *xmlfile, gchar **param_names,
5639
5639
* @param[in] close_tag Whether to close the NVT tag or not.
5640
5640
* @param[in] skip_cert_refs Whether to exclude the CERT REFs.
5641
5641
* @param[in] skip_tags Whether to exclude the tags.
5642
+ * @param[in] lean Whether to send fewer details.
5642
5643
*
5643
5644
* @return A dynamically allocated string containing the XML description.
5644
5645
*/
5645
5646
gchar *
5646
5647
get_nvt_xml (iterator_t * nvts , int details , int pref_count ,
5647
5648
int preferences , const char * timeout , config_t config ,
5648
- int close_tag , int skip_cert_refs , int skip_tags )
5649
+ int close_tag , int skip_cert_refs , int skip_tags , int lean )
5649
5650
{
5650
5651
const char * oid = nvt_iterator_oid (nvts );
5651
5652
const char * name = nvt_iterator_name (nvts );
@@ -5658,9 +5659,8 @@ get_nvt_xml (iterator_t *nvts, int details, int pref_count,
5658
5659
{
5659
5660
int tag_count ;
5660
5661
GString * refs_str , * tags_str , * buffer , * nvt_tags ;
5661
- iterator_t cert_refs_iterator , tags , severities ;
5662
+ iterator_t cert_refs_iterator , tags ;
5662
5663
gchar * tag_name_esc , * tag_value_esc , * tag_comment_esc ;
5663
- char * default_timeout = nvt_default_timeout (oid );
5664
5664
5665
5665
DEF (family );
5666
5666
DEF (tag );
@@ -5811,77 +5811,95 @@ get_nvt_xml (iterator_t *nvts, int details, int pref_count,
5811
5811
g_string_append_printf (buffer ,
5812
5812
"<nvt oid=\"%s\">"
5813
5813
"<name>%s</name>"
5814
- "<creation_time>%s</creation_time>"
5815
- "<modification_time>%s</modification_time>"
5816
5814
"%s" // user_tags
5817
- "<category>%d</category>"
5818
- "<family>%s</family>"
5819
- "<cvss_base>%s</cvss_base>"
5820
- "<severities score=\"%s\">" ,
5815
+ "<preference_count>%i</preference_count>"
5816
+ "<timeout>%s</timeout>" ,
5821
5817
oid ,
5822
5818
name_text ,
5823
- get_iterator_creation_time (nvts )
5824
- ? get_iterator_creation_time (nvts )
5825
- : "" ,
5826
- get_iterator_modification_time (nvts )
5827
- ? get_iterator_modification_time (nvts )
5828
- : "" ,
5829
5819
tags_str ? tags_str -> str : "" ,
5830
- nvt_iterator_category (nvts ),
5831
- family_text ,
5832
- nvt_iterator_cvss_base (nvts )
5833
- ? nvt_iterator_cvss_base (nvts )
5834
- : "" ,
5820
+ pref_count ,
5821
+ timeout ? timeout : "" );
5822
+
5823
+ if (lean == 0 )
5824
+ {
5825
+ char * default_timeout ;
5826
+
5827
+ default_timeout = nvt_default_timeout (oid );
5828
+ g_string_append_printf (buffer ,
5829
+ "<default_timeout>%s</default_timeout>"
5830
+ "<creation_time>%s</creation_time>"
5831
+ "<modification_time>%s</modification_time>"
5832
+ "<category>%d</category>"
5833
+ "<family>%s</family>"
5834
+ "<cvss_base>%s</cvss_base>"
5835
+ "<qod>"
5836
+ "<value>%s</value>"
5837
+ "<type>%s</type>"
5838
+ "</qod>"
5839
+ "<refs>%s</refs>"
5840
+ "<tags>%s</tags>" ,
5841
+ default_timeout ? default_timeout : "" ,
5842
+ get_iterator_creation_time (nvts )
5843
+ ? get_iterator_creation_time (nvts )
5844
+ : "" ,
5845
+ get_iterator_modification_time (nvts )
5846
+ ? get_iterator_modification_time (nvts )
5847
+ : "" ,
5848
+ nvt_iterator_category (nvts ),
5849
+ family_text ,
5850
+ nvt_iterator_cvss_base (nvts )
5851
+ ? nvt_iterator_cvss_base (nvts )
5852
+ : "" ,
5853
+ nvt_iterator_qod (nvts ),
5854
+ nvt_iterator_qod_type (nvts ),
5855
+ refs_str -> str ,
5856
+ nvt_tags -> str );
5857
+ free (default_timeout );
5858
+ }
5859
+
5860
+ g_string_append_printf (buffer ,
5861
+ "<severities score=\"%s\">" ,
5835
5862
nvt_iterator_cvss_base (nvts )
5836
- ? nvt_iterator_cvss_base (nvts )
5837
- : "" );
5863
+ ? nvt_iterator_cvss_base (nvts )
5864
+ : "" );
5838
5865
5839
- init_nvt_severity_iterator (& severities , oid );
5840
- while (next (& severities ))
5866
+ if (lean == 0 )
5841
5867
{
5842
- buffer_xml_append_printf
5843
- (buffer ,
5844
- "<severity type=\"%s\">"
5845
- "<origin>%s</origin>"
5846
- "<date>%s</date>"
5847
- "<score>%0.1f</score>"
5848
- "<value>%s</value>"
5849
- "</severity>" ,
5850
- nvt_severity_iterator_type (& severities ),
5851
- nvt_severity_iterator_origin (& severities ),
5852
- nvt_severity_iterator_date (& severities ),
5853
- nvt_severity_iterator_score (& severities ),
5854
- nvt_severity_iterator_value (& severities ));
5868
+ iterator_t severities ;
5869
+
5870
+ init_nvt_severity_iterator (& severities , oid );
5871
+ while (next (& severities ))
5872
+ {
5873
+ buffer_xml_append_printf
5874
+ (buffer ,
5875
+ "<severity type=\"%s\">"
5876
+ "<origin>%s</origin>"
5877
+ "<date>%s</date>"
5878
+ "<score>%0.1f</score>"
5879
+ "<value>%s</value>"
5880
+ "</severity>" ,
5881
+ nvt_severity_iterator_type (& severities ),
5882
+ nvt_severity_iterator_origin (& severities ),
5883
+ nvt_severity_iterator_date (& severities ),
5884
+ nvt_severity_iterator_score (& severities ),
5885
+ nvt_severity_iterator_value (& severities ));
5886
+ }
5887
+ cleanup_iterator (& severities );
5855
5888
}
5856
- cleanup_iterator (& severities );
5857
5889
5858
5890
g_string_append_printf (buffer ,
5859
- "</severities>"
5860
- "<qod>"
5861
- "<value>%s</value>"
5862
- "<type>%s</type>"
5863
- "</qod>"
5864
- "<refs>%s</refs>"
5865
- "<tags>%s</tags>"
5866
- "<preference_count>%i</preference_count>"
5867
- "<timeout>%s</timeout>"
5868
- "<default_timeout>%s</default_timeout>" ,
5869
- nvt_iterator_qod (nvts ),
5870
- nvt_iterator_qod_type (nvts ),
5871
- refs_str -> str ,
5872
- nvt_tags -> str ,
5873
- pref_count ,
5874
- timeout ? timeout : "" ,
5875
- default_timeout ? default_timeout : "" );
5891
+ "</severities>" );
5892
+
5876
5893
g_free (family_text );
5877
5894
g_string_free (nvt_tags , 1 );
5878
5895
g_string_free (refs_str , 1 );
5879
5896
if (tags_str )
5880
5897
g_string_free (tags_str , 1 );
5881
5898
5882
- if (nvt_iterator_solution (nvts ) ||
5883
- nvt_iterator_solution_type (nvts ) ||
5884
- nvt_iterator_solution_method (nvts ))
5899
+ if (lean == 0
5900
+ && (nvt_iterator_solution (nvts )
5901
+ || nvt_iterator_solution_type (nvts )
5902
+ || nvt_iterator_solution_method (nvts )))
5885
5903
{
5886
5904
buffer_xml_append_printf (buffer , "<solution" );
5887
5905
@@ -5900,11 +5918,14 @@ get_nvt_xml (iterator_t *nvts, int details, int pref_count,
5900
5918
buffer_xml_append_printf (buffer , "/>" );
5901
5919
}
5902
5920
5903
-
5904
5921
if (preferences )
5905
5922
{
5906
5923
iterator_t prefs ;
5907
- const char * nvt_oid = nvt_iterator_oid (nvts );
5924
+ char * default_timeout ;
5925
+ const char * nvt_oid ;
5926
+
5927
+ default_timeout = nvt_default_timeout (oid );
5928
+ nvt_oid = nvt_iterator_oid (nvts );
5908
5929
5909
5930
/* Send the preferences for the NVT. */
5910
5931
@@ -5921,11 +5942,11 @@ get_nvt_xml (iterator_t *nvts, int details, int pref_count,
5921
5942
cleanup_iterator (& prefs );
5922
5943
5923
5944
xml_string_append (buffer , "</preferences>" );
5945
+ free (default_timeout );
5924
5946
}
5925
5947
5926
5948
xml_string_append (buffer , close_tag ? "</nvt>" : "" );
5927
5949
msg = g_string_free (buffer , FALSE);
5928
- free (default_timeout );
5929
5950
}
5930
5951
else
5931
5952
{
@@ -6055,7 +6076,8 @@ manage_read_info (gchar *type, gchar *uid, gchar *name, gchar **result)
6055
6076
0 , /* Config. */
6056
6077
1 , /* Close tag. */
6057
6078
0 , /* Skip CERT refs. */
6058
- 0 ); /* Skip tags. */
6079
+ 0 , /* Skip tags. */
6080
+ 0 ); /* Lean. */
6059
6081
6060
6082
cleanup_iterator (& nvts );
6061
6083
}
0 commit comments