<refentry id="linc-linc-protocol">
<refmeta>
<refentrytitle>linc-protocol</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LINC Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>linc-protocol</refname><refpurpose>The protocols exposed</refpurpose>
</refnamediv>

<refsynopsisdiv><title>Synopsis</title>

<synopsis>



enum        <link linkend="LINCProtocolFlags">LINCProtocolFlags</link>;
void        (<link linkend="LINCProtocolSetupFunc">*LINCProtocolSetupFunc</link>)        (int fd,
                                             <link linkend="LINCConnectionOptions">LINCConnectionOptions</link> cnx_flags);
void        (<link linkend="LINCProtocolDestroyFunc">*LINCProtocolDestroyFunc</link>)      (int fd,
                                             const char *host_info,
                                             const char *serv_info);
<link linkend="gboolean">gboolean</link>    (<link linkend="LINCProtocolGetSockInfoFunc">*LINCProtocolGetSockInfoFunc</link>)  (const <link linkend="LINCProtocolInfo">LINCProtocolInfo</link> *proto,
                                             const struct <link linkend="sockaddr">sockaddr</link> *sockaddr,
                                             <link linkend="gchar">gchar</link> **hostname,
                                             <link linkend="gchar">gchar</link> **service);
struct      <link linkend="LINCProtocolInfo">LINCProtocolInfo</link>;
void        <link linkend="linc-set-tmpdir">linc_set_tmpdir</link>                 (const char *dir);
</synopsis>
</refsynopsisdiv>







<refsect1>
<title>Description</title>
<para>

</para>
</refsect1>

<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="LINCProtocolFlags">enum LINCProtocolFlags</title>
<programlisting>typedef enum {
	LINC_PROTOCOL_SECURE     = 1&lt;&lt;0,
	LINC_PROTOCOL_NEEDS_BIND = 1&lt;&lt;1
} LINCProtocolFlags;
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="LINCProtocolSetupFunc">LINCProtocolSetupFunc ()</title>
<programlisting>void        (*LINCProtocolSetupFunc)        (int fd,
                                             <link linkend="LINCConnectionOptions">LINCConnectionOptions</link> cnx_flags);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>fd</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cnx_flags</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="LINCProtocolDestroyFunc">LINCProtocolDestroyFunc ()</title>
<programlisting>void        (*LINCProtocolDestroyFunc)      (int fd,
                                             const char *host_info,
                                             const char *serv_info);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>fd</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>host_info</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>serv_info</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="LINCProtocolGetSockInfoFunc">LINCProtocolGetSockInfoFunc ()</title>
<programlisting><link linkend="gboolean">gboolean</link>    (*LINCProtocolGetSockInfoFunc)  (const <link linkend="LINCProtocolInfo">LINCProtocolInfo</link> *proto,
                                             const struct <link linkend="sockaddr">sockaddr</link> *sockaddr,
                                             <link linkend="gchar">gchar</link> **hostname,
                                             <link linkend="gchar">gchar</link> **service);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>proto</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sockaddr</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>hostname</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>service</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="LINCProtocolInfo">struct LINCProtocolInfo</title>
<programlisting>struct LINCProtocolInfo {

	const char                 *name;
	int                         family;
	int                         addr_len;
	int                         stream_proto_num;
	LINCProtocolFlags           flags;

	LINCProtocolSetupFunc       setup;
	LINCProtocolDestroyFunc     destroy;
	LINCProtocolGetSockAddrFunc get_sockaddr;
	LINCProtocolGetSockInfoFunc get_sockinfo;
	LINCProtocolIsLocal         is_local;
	/* This structure is private and may be extended in future */
	gpointer                    dummy[8];
};
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="linc-set-tmpdir">linc_set_tmpdir ()</title>
<programlisting>void        linc_set_tmpdir                 (const char *dir);</programlisting>
<para>
Set the temporary directory used by linc to <parameter>dir</parameter>. 
</para>
<para>
This directory is used for the creation of UNIX sockets.
<parameter>dir</parameter> must have the correct permissions, 0700, user owned
otherwise this method will g_error.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>dir</parameter>&nbsp;:</term>
<listitem><simpara> directory name.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
