<refentry id="libnetdude-libnd-dumper">
<refmeta>
<refentrytitle id="top_of_page">libnd_dumper</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBNETDUDE Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>libnd_dumper</refname>
<refpurpose></refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv id="synopsis">
<title id="synopsis.title">Synopsis</title>

<synopsis>



#define     <link linkend="LND-DUMPER-500MB:CAPS">LND_DUMPER_500MB</link>
#define     <link linkend="LND-DUMPER-1GB:CAPS">LND_DUMPER_1GB</link>
#define     <link linkend="LND-DUMPER-2GB:CAPS">LND_DUMPER_2GB</link>
typedef     <link linkend="LND-Dumper">LND_Dumper</link>;
            <link linkend="LND-DumperArgs">LND_DumperArgs</link>;
<link linkend="void">void</link>        <link linkend="libnd-dumper-args-init">libnd_dumper_args_init</link>          (<link linkend="LND-DumperArgs">LND_DumperArgs</link> *args);
<link linkend="LND-Dumper">LND_Dumper</link>* <link linkend="libnd-dumper-new">libnd_dumper_new</link>                (<link linkend="pcap-t">pcap_t</link> *pcap,
                                             const <link linkend="char">char</link> *dumper_name,
                                             <link linkend="LND-DumperArgs">LND_DumperArgs</link> *args);
<link linkend="void">void</link>        <link linkend="libnd-dumper-free">libnd_dumper_free</link>               (<link linkend="LND-Dumper">LND_Dumper</link> *dumper);
<link linkend="gboolean">gboolean</link>    <link linkend="libnd-dumper-write">libnd_dumper_write</link>              (<link linkend="LND-Dumper">LND_Dumper</link> *dumper,
                                             <link linkend="LND-Packet">LND_Packet</link> *packet);
<link linkend="void">void</link>        <link linkend="libnd-dumper-delete">libnd_dumper_delete</link>             (<link linkend="LND-Dumper">LND_Dumper</link> *dumper);
<link linkend="guint64">guint64</link>     <link linkend="libnd-dumper-get-size">libnd_dumper_get_size</link>           (<link linkend="LND-Dumper">LND_Dumper</link> *dumper);
</synopsis>
</refsynopsisdiv>









<refsect1 id="desc">
<title id="desc.title">Description</title>
<para>

</para>
</refsect1>

<refsect1 id="details">
<title id="details.title">Details</title>
<refsect2>
<title><anchor id="LND-DUMPER-500MB:CAPS" role="macro">LND_DUMPER_500MB</title>
<indexterm><primary>LND_DUMPER_500MB</primary></indexterm><programlisting>#define LND_DUMPER_500MB  500000000
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="LND-DUMPER-1GB:CAPS" role="macro">LND_DUMPER_1GB</title>
<indexterm><primary>LND_DUMPER_1GB</primary></indexterm><programlisting>#define LND_DUMPER_1GB   1000000000
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="LND-DUMPER-2GB:CAPS" role="macro">LND_DUMPER_2GB</title>
<indexterm><primary>LND_DUMPER_2GB</primary></indexterm><programlisting>#define LND_DUMPER_2GB   2000000000
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="LND-Dumper" role="typedef">LND_Dumper</title>
<indexterm><primary>LND_Dumper</primary></indexterm><programlisting>typedef struct lnd_dumper LND_Dumper;
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="LND-DumperArgs" role="struct">LND_DumperArgs</title>
<indexterm><primary>LND_DumperArgs</primary></indexterm><programlisting>typedef struct {
  pcapnav_dumpmode_t      open_mode;
  guint64                 file_limit;
  guint64                 hard_limit;
} LND_DumperArgs;
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="libnd-dumper-args-init" role="function">libnd_dumper_args_init ()</title>
<indexterm><primary>libnd_dumper_args_init</primary></indexterm><programlisting><link linkend="void">void</link>        libnd_dumper_args_init          (<link linkend="LND-DumperArgs">LND_DumperArgs</link> *args);</programlisting>
<para>
The function initializes the dumper spec structure
to default values. Currently, these are all zeroes.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>args</parameter>&nbsp;:</term>
<listitem><simpara> the argument structure to initialize.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-dumper-new" role="function">libnd_dumper_new ()</title>
<indexterm><primary>libnd_dumper_new</primary></indexterm><programlisting><link linkend="LND-Dumper">LND_Dumper</link>* libnd_dumper_new                (<link linkend="pcap-t">pcap_t</link> *pcap,
                                             const <link linkend="char">char</link> *dumper_name,
                                             <link linkend="LND-DumperArgs">LND_DumperArgs</link> *args);</programlisting>
<para>
The function returns a new dumper, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> on error. <parameter>args</parameter> can
be <link linkend="NULL:CAPS"><literal>NULL</literal></link>, in which case a per-file size limit of 1GB is enforced.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>pcap</parameter>&nbsp;:</term>
<listitem><simpara> the pcap handle for the new dumper, as used in <link linkend="pcap-dump-open"><function>pcap_dump_open()</function></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>dumper_name</parameter>&nbsp;:</term>
<listitem><simpara> the file name of the dumper.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>args</parameter>&nbsp;:</term>
<listitem><simpara> the dumper specification.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-dumper-free" role="function">libnd_dumper_free ()</title>
<indexterm><primary>libnd_dumper_free</primary></indexterm><programlisting><link linkend="void">void</link>        libnd_dumper_free               (<link linkend="LND-Dumper">LND_Dumper</link> *dumper);</programlisting>
<para>
The function closes the current output file, if any,
and releases all memory resources of the dumper.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>dumper</parameter>&nbsp;:</term>
<listitem><simpara> dumper to close.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-dumper-write" role="function">libnd_dumper_write ()</title>
<indexterm><primary>libnd_dumper_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>    libnd_dumper_write              (<link linkend="LND-Dumper">LND_Dumper</link> *dumper,
                                             <link linkend="LND-Packet">LND_Packet</link> *packet);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>dumper</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>packet</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-dumper-delete" role="function">libnd_dumper_delete ()</title>
<indexterm><primary>libnd_dumper_delete</primary></indexterm><programlisting><link linkend="void">void</link>        libnd_dumper_delete             (<link linkend="LND-Dumper">LND_Dumper</link> *dumper);</programlisting>
<para>
The function looks for all files the dumper might have
created based on its name and deletes them, until one
is found that does not exist. So if the dumper name is
"foo", it potentially deletes files foo, foo.00001,
foo.00002 etc, until a nonexistant file is hit.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>dumper</parameter>&nbsp;:</term>
<listitem><simpara> the dumper whose files to delete.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-dumper-get-size" role="function">libnd_dumper_get_size ()</title>
<indexterm><primary>libnd_dumper_get_size</primary></indexterm><programlisting><link linkend="guint64">guint64</link>     libnd_dumper_get_size           (<link linkend="LND-Dumper">LND_Dumper</link> *dumper);</programlisting>
<para>
The function returns the total size, in bytes, of all
packets ever written to this dumper (counting across
multiple created files).</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>dumper</parameter>&nbsp;:</term>
<listitem><simpara> dumper to return size of.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
