summaryrefslogtreecommitdiff
path: root/doc/ref/iaddr.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ref/iaddr.xml')
-rw-r--r--doc/ref/iaddr.xml124
1 files changed, 124 insertions, 0 deletions
diff --git a/doc/ref/iaddr.xml b/doc/ref/iaddr.xml
new file mode 100644
index 0000000..cf64a13
--- /dev/null
+++ b/doc/ref/iaddr.xml
@@ -0,0 +1,124 @@
+<refentry id="refiaddr">
+
+ <refmeta>
+ <refentrytitle>ne_iaddr_make</refentrytitle>
+ <manvolnum>3</manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname id="ne_iaddr_make">ne_iaddr_make</refname>
+ <refname id="ne_iaddr_cmp">ne_iaddr_cmp</refname>
+ <refname id="ne_iaddr_print">ne_iaddr_print</refname>
+ <refname id="ne_iaddr_free">ne_iaddr_free</refname>
+ <refpurpose>functions to manipulate and compare network addresses</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <funcsynopsis>
+
+ <funcsynopsisinfo>#include &lt;ne_socket.h&gt;
+
+typedef enum {
+ ne_iaddr_ipv4 = 0,
+ ne_iaddr_ipv6
+} <type>ne_iaddr_type</type>;</funcsynopsisinfo>
+
+ <funcprototype>
+ <funcdef>ne_inet_addr *<function>ne_iaddr_make</function></funcdef>
+ <paramdef>ne_iaddr_type <parameter>type</parameter></paramdef>
+ <paramdef>const unsigned char *<parameter>raw</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>int <function>ne_iaddr_cmp</function></funcdef>
+ <paramdef>const ne_inet_addr *<parameter>i1</parameter></paramdef>
+ <paramdef>const ne_inet_addr *<parameter>i2</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>char *<function>ne_iaddr_print</function></funcdef>
+ <paramdef>const ne_inet_addr *<parameter>ia</parameter></paramdef>
+ <paramdef>char *<parameter>buffer</parameter></paramdef>
+ <paramdef>size_t <parameter>bufsiz</parameter></paramdef>
+ </funcprototype>
+
+ <funcprototype>
+ <funcdef>void <function>ne_iaddr_free</function></funcdef>
+ <paramdef>const ne_inet_addr *<parameter>addr</parameter></paramdef>
+ </funcprototype>
+
+ </funcsynopsis>
+
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para><function>ne_iaddr_make</function> creates an
+ <type>ne_inet_addr</type> object from a raw binary network
+ address; for instance the four bytes <literal>0x7f 0x00 0x00
+ 0x01</literal> represent the IPv4 address
+ <literal>127.0.0.1</literal>. The object returned is suitable for
+ passing to <function>ne_sock_connect</function>. A binary IPv4
+ address contains four bytes; a binary IPv6 address contains
+ sixteen bytes; addresses passed must be in network byte
+ order.</para>
+
+ <para><function>ne_iaddr_cmp</function> can be used to compare two
+ network addresses; returning zero only if they are identical. The
+ addresses need not be of the same address type; if the addresses
+ are not of the same type, the return value is guaranteed to be
+ non-zero.</para>
+
+ <para><function>ne_iaddr_print</function> can be used to print the
+ human-readable string representation of a network address into a
+ buffer, for instance the string
+ <literal>"127.0.0.1"</literal>.</para>
+
+ <para><function>ne_iaddr_free</function> releases the memory
+ associated with a network address object.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Return value</title>
+
+ <para><function>ne_iaddr_make</function> returns &null; if the
+ address type passed is not supported (for instance on a platform
+ which does not support IPv6).</para>
+
+
+ <para><function>ne_iaddr_print</function> returns the
+ <parameter>buffer</parameter> pointer, and never &null;.</para>
+
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+
+ <para>The following example connects a socket to port 80 at the
+ address <literal>127.0.0.1</literal>.</para>
+
+ <programlisting>unsigned char addr[] = "\0x7f\0x00\0x00\0x01";
+ne_inet_addr *ia;
+
+ia = ne_iaddr_make(ne_iaddr_ipv4, addr);
+if (ia != NULL) {
+ ne_socket *sock = ne_sock_connect(ia, 80);
+ ne_iaddr_free(ia);
+ /* ... */
+} else {
+ /* ... */
+}</programlisting>
+
+ </refsect1>
+
+ <refsect1>
+ <title>See also</title>
+
+ <para><xref linkend="ne_addr_resolve"/></para>
+ </refsect1>
+
+</refentry>
+