<!-- ##### SECTION Title ##### -->
idmef-message-read

<!-- ##### SECTION Short_Description ##### -->

Reading a message from a #prelude_msg_t buffer

<!-- ##### SECTION Long_Description ##### -->
<para>

Once you read a #prelude_msg_t object, you need to decode this message.
In case this is an IDMEF style message, the following API allow to read
the relevant IDMEF fields from the #prelude_msg_t object, and create the
IDMEF object from it's content.

</para>

<para>

The function you're most probably looking to use is idmef_message_read(), and here
is an example on how to use it:

<programlisting>
int ret;
prelude_msg_t *pmsg;
idmef_message_t *message;

pmsg = whatever_method_to_get_a_prelude_msg();

ret = idmef_message_new(&amp;message);
if ( ret &lt; 0 )
        return ret;

ret = idmef_message_read(message, pmsg);
</programlisting>

This will decode the full IDMEF message stored within pmsg into the #idmef_message_t
IDMEF object and it's childrens.

</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### FUNCTION idmef_additional_data_read ##### -->
<para>

</para>

@additional_data: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_reference_read ##### -->
<para>

</para>

@reference: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_classification_read ##### -->
<para>

</para>

@classification: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_user_id_read ##### -->
<para>

</para>

@user_id: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_user_read ##### -->
<para>

</para>

@user: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_address_read ##### -->
<para>

</para>

@address: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_process_read ##### -->
<para>

</para>

@process: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_web_service_read ##### -->
<para>

</para>

@web_service: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_snmp_service_read ##### -->
<para>

</para>

@snmp_service: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_service_read ##### -->
<para>

</para>

@service: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_node_read ##### -->
<para>

</para>

@node: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_source_read ##### -->
<para>

</para>

@source: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_file_access_read ##### -->
<para>

</para>

@file_access: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_inode_read ##### -->
<para>

</para>

@inode: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_checksum_read ##### -->
<para>

</para>

@checksum: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_file_read ##### -->
<para>

</para>

@file: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_linkage_read ##### -->
<para>

</para>

@linkage: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_target_read ##### -->
<para>

</para>

@target: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_analyzer_read ##### -->
<para>

</para>

@analyzer: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_alertident_read ##### -->
<para>

</para>

@alertident: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_impact_read ##### -->
<para>

</para>

@impact: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_action_read ##### -->
<para>

</para>

@action: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_confidence_read ##### -->
<para>

</para>

@confidence: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_assessment_read ##### -->
<para>

</para>

@assessment: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_tool_alert_read ##### -->
<para>

</para>

@tool_alert: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_correlation_alert_read ##### -->
<para>

</para>

@correlation_alert: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_overflow_alert_read ##### -->
<para>

</para>

@overflow_alert: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_alert_read ##### -->
<para>

</para>

@alert: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_heartbeat_read ##### -->
<para>

</para>

@heartbeat: 
@msg: 
@Returns: 


<!-- ##### FUNCTION idmef_message_read ##### -->
<para>

</para>

@message: 
@msg: 
@Returns: 


