aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02665.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a02665.html')
-rw-r--r--docs/doxygen/nel/a02665.html1553
1 files changed, 1553 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02665.html b/docs/doxygen/nel/a02665.html
new file mode 100644
index 00000000..6f768eb2
--- /dev/null
+++ b/docs/doxygen/nel/a02665.html
@@ -0,0 +1,1553 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLNET::CInetAddress class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLNET::CInetAddress Class Reference</h1><code>#include &lt;<a class="el" href="a05811.html">inet_address.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Internet address (IP + port). The structure sockaddr_in is internally in network byte order <p>
+<dl compact><dt><b><a class="el" href="todo.html#_todo000050">Todo:</a></b></dt><dd>cado: Test big/little endian transfers to check if byte ordering is ok.</dd></dl>
+<dl compact><dt><b>Author:</b></dt><dd>Olivier Cado <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2000 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05811.html#l00064">64</a> of file <a class="el" href="a05811.html">inet_address.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa0">asIPString</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns IP address and port as a string. (ex: "195.68.21.195:80"). <a href="#NLNET_1_1CInetAddressa0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa1">asString</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns hostname and port as a string. (ex: "www.nevrax.org:80 (195.68.21.195)"). <a href="#NLNET_1_1CInetAddressa1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa2">CInetAddress</a> (const <a class="el" href="a02665.html">CInetAddress</a> &amp;other)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor. <a href="#NLNET_1_1CInetAddressa2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa3">CInetAddress</a> (const std::string &amp;hostNameAndPort)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa4">CInetAddress</a> (const std::string &amp;hostName, <a class="el" href="a04558.html#a9">uint16</a> port)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Alternate constructor (calls <a class="el" href="a02665.html#NLNET_1_1CInetAddressa15">setByName()</a>). <a href="#NLNET_1_1CInetAddressa4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa5">CInetAddress</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default Constructor. The address is set to INADDR_ANY. <a href="#NLNET_1_1CInetAddressa5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const std::string &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa6">hostName</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns hostname. (ex: "www.nevrax.org"). <a href="#NLNET_1_1CInetAddressa6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa7">internalIPAddress</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns internal IP address. <a href="#NLNET_1_1CInetAddressa7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa8">internalNetAddress</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the internal network address (it s the network address for example 192.168.0.0 for a C class). <a href="#NLNET_1_1CInetAddressa8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa9">ipAddress</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns readable IP address. (ex: "195.68.21.195"). <a href="#NLNET_1_1CInetAddressa9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa10">is127001</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if this <a class="el" href="a02665.html">CInetAddress</a> is 127.0.0.1. <a href="#NLNET_1_1CInetAddressa10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa11">isValid</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns if object (address and port) is valid. <a href="#NLNET_1_1CInetAddressa11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa12">operator=</a> (const <a class="el" href="a02665.html">CInetAddress</a> &amp;other)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator. <a href="#NLNET_1_1CInetAddressa12"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa13">port</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns port. <a href="#NLNET_1_1CInetAddressa13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa14">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &amp;<a class="el" href="a04223.html#a626">s</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialize. <a href="#NLNET_1_1CInetAddressa14"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa15">setByName</a> (const std::string &amp;hostname)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resolves a name. <a href="#NLNET_1_1CInetAddressa15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa16">setNameAndPort</a> (const std::string &amp;hostNameAndPort)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets hostname and port (ex: www.nevrax.com:80). <a href="#NLNET_1_1CInetAddressa16"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa17">setPort</a> (<a class="el" href="a04558.html#a9">uint16</a> port)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets port. <a href="#NLNET_1_1CInetAddressa17"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa18">setSockAddr</a> (const sockaddr_in *saddr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const sockaddr_in *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa19">sockAddr</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns internal socket address (read only). <a href="#NLNET_1_1CInetAddressa19"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressa20">~CInetAddress</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NLNET_1_1CInetAddressa20"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddresse0">localAddresses</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02665.html">CInetAddress</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddresse1">localHost</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a <a class="el" href="a02665.html">CInetAddress</a> object with local host address, port=0. <a href="#NLNET_1_1CInetAddresse1"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddresss0">RetrieveNames</a> = false</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If true, <a class="el" href="a02665.html#NLNET_1_1CInetAddressa18">setSockAddr()</a> always tries to retrieve the host name from the address. <a href="#NLNET_1_1CInetAddresss0"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressb0">CInetAddress</a> (const in_addr *ip)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor with ip address, port=0. <a href="#NLNET_1_1CInetAddressb0"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressd0">init</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>sockaddr_in *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a></td></tr>
+
+<tr><td colspan=2><br><h2>Friends</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressn0">operator&lt;</a> (const <a class="el" href="a02665.html">CInetAddress</a> &amp;a1, const <a class="el" href="a02665.html">CInetAddress</a> &amp;a2)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Comparison &lt; operator. <a href="#NLNET_1_1CInetAddressn0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02665.html#NLNET_1_1CInetAddressn1">operator==</a> (const <a class="el" href="a02665.html">CInetAddress</a> &amp;a1, const <a class="el" href="a02665.html">CInetAddress</a> &amp;a2)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Comparison == operator. <a href="#NLNET_1_1CInetAddressn1"></a><br><br></td></tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLNET_1_1CInetAddressa5" doxytag="NLNET::CInetAddress::CInetAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CInetAddress::CInetAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default Constructor. The address is set to INADDR_ANY.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00064">64</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>, and <a class="el" href="a05810.html#l00180">init()</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00467">localAddresses()</a>, and <a class="el" href="a05810.html#l00447">localHost()</a>.
+<p>
+<div class="fragment"><pre>00065 {
+00066 <a class="code" href="a02665.html#NLNET_1_1CInetAddressd0">init</a>();
+00067 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_port = 0; <span class="comment">// same as htons(0)</span>
+00068 memset( &amp;<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr, 0, <span class="keyword">sizeof</span>(in_addr) ); <span class="comment">// same as htonl(INADDR_ANY)</span>
+00069 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa4" doxytag="NLNET::CInetAddress::CInetAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CInetAddress::CInetAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>hostName</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>port</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Alternate constructor (calls <a class="el" href="a02665.html#NLNET_1_1CInetAddressa15">setByName()</a>).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00098">98</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00180">init()</a>, <a class="el" href="a05810.html#l00224">setByName()</a>, <a class="el" href="a05810.html#l00262">setPort()</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00099 {
+00100 <a class="code" href="a02665.html#NLNET_1_1CInetAddressd0">init</a>();
+00101 <a class="code" href="a02665.html#NLNET_1_1CInetAddressa17">setPort</a>( port );
+00102 <a class="code" href="a02665.html#NLNET_1_1CInetAddressa15">setByName</a>( hostName );
+00103 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa3" doxytag="NLNET::CInetAddress::CInetAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CInetAddress::CInetAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>hostNameAndPort</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Alternate constructor (calls <a class="el" href="a02665.html#NLNET_1_1CInetAddressa15">setByName()</a>) example: <a class="el" href="a02665.html">CInetAddress</a>("www.nevrax.com:80")
+<p>
+Definition at line <a class="el" href="a05810.html#l00109">109</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00180">init()</a>, and <a class="el" href="a05810.html#l00204">setNameAndPort()</a>.
+<p>
+<div class="fragment"><pre>00110 {
+00111 <a class="code" href="a02665.html#NLNET_1_1CInetAddressd0">init</a>();
+00112 <a class="code" href="a02665.html#NLNET_1_1CInetAddressa16">setNameAndPort</a>( hostNameAndPort );
+00113 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa2" doxytag="NLNET::CInetAddress::CInetAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CInetAddress::CInetAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>other</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Copy constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00119">119</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00161">_HostName</a>, <a class="el" href="a05811.html#l00162">_SockAddr</a>, <a class="el" href="a05811.html#l00163">_Valid</a>, and <a class="el" href="a05810.html#l00180">init()</a>.
+<p>
+<div class="fragment"><pre>00120 {
+00121 <a class="code" href="a02665.html#NLNET_1_1CInetAddressd0">init</a>();
+00122 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a> = other.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a>;
+00123 memcpy( _SockAddr, other.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>, <span class="keyword">sizeof</span>( *_SockAddr ) );
+00124 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a> = other.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a>;
+00125 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa20" doxytag="NLNET::CInetAddress::~CInetAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CInetAddress::~<a class="el" href="a02665.html">CInetAddress</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Destructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00195">195</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>.
+<p>
+<div class="fragment"><pre>00196 {
+00197 <span class="keyword">delete</span> <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>;
+00198 <span class="comment">// _Valid = false;</span>
+00199 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressb0" doxytag="NLNET::CInetAddress::CInetAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLNET::CInetAddress::CInetAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const in_addr *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>ip</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor with ip address, port=0.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00075">75</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00161">_HostName</a>, <a class="el" href="a05811.html#l00162">_SockAddr</a>, <a class="el" href="a05811.html#l00163">_Valid</a>, <a class="el" href="a05810.html#l00180">init()</a>, and <a class="el" href="a05810.html#l00355">ipAddress()</a>.
+<p>
+<div class="fragment"><pre>00076 {
+00077 <a class="code" href="a02665.html#NLNET_1_1CInetAddressd0">init</a>();
+00078 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_port = 0;
+00079 memcpy( &amp;<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr, ip, <span class="keyword">sizeof</span>(in_addr) );
+00080
+00081 <span class="comment">// get the host name to be displayed</span>
+00082 hostent *phostent = gethostbyaddr( (<span class="keywordtype">char</span>*)&amp;ip-&gt;s_addr, 4, AF_INET );
+00083 <span class="keywordflow">if</span> ( phostent == NULL )
+00084 {
+00085 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a> = <a class="code" href="a02665.html#NLNET_1_1CInetAddressa9">ipAddress</a>();
+00086 }
+00087 <span class="keywordflow">else</span>
+00088 {
+00089 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a> = string( phostent-&gt;h_name );
+00090 }
+00091 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a> = <span class="keyword">true</span>;
+00092 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CInetAddressa0" doxytag="NLNET::CInetAddress::asIPString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::CInetAddress::asIPString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns IP address and port as a string. (ex: "195.68.21.195:80").
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00397">397</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00355">ipAddress()</a>, <a class="el" href="a05810.html#l00376">port()</a>, and <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>.
+<p>
+Referenced by <a class="el" href="a05962.html#l00338">NLNET::CLoginServer::init()</a>, <a class="el" href="a05962.html#l00467">NLNET::NLMISC_DYNVARIABLE()</a>, <a class="el" href="a05810.html#l00409">serial()</a>, and <a class="el" href="a05962.html#l00244">NLNET::setListenAddress()</a>.
+<p>
+<div class="fragment"><pre>00398 {
+00399 <span class="comment">// stringstream ss;</span>
+00400 <span class="comment">// ss &lt;&lt; ipAddress() &lt;&lt; ":" &lt;&lt; port();</span>
+00401 <span class="comment">// return ss.str();</span>
+00402 <span class="keywordflow">return</span> <a class="code" href="a02665.html#NLNET_1_1CInetAddressa9">ipAddress</a>() + <span class="stringliteral">":"</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>(<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>());
+00403 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa1" doxytag="NLNET::CInetAddress::asString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string NLNET::CInetAddress::asString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns hostname and port as a string. (ex: "www.nevrax.org:80 (195.68.21.195)").
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00385">385</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00367">hostName()</a>, <a class="el" href="a05810.html#l00355">ipAddress()</a>, <a class="el" href="a05810.html#l00376">port()</a>, and <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>.
+<p>
+Referenced by <a class="el" href="a06643.html#l00086">NLNET::CUdpSock::bind()</a>, <a class="el" href="a06650.html#l00262">NLNET::cbServerAskUniversalTime()</a>, <a class="el" href="a05962.html#l00181">NLNET::cbShardValidation()</a>, <a class="el" href="a06487.html#l00101">NLNET::CTcpSock::disconnect()</a>, <a class="el" href="a05662.html#l00058">NLNET::CDummyTcpSock::disconnect()</a>, <a class="el" href="a06089.html#l00285">NLNET::CNamingClient::info()</a>, <a class="el" href="a05913.html#l00076">NLNET::CListenSock::init()</a>, <a class="el" href="a06089.html#l00501">NLNET::CNamingClient::lookupAndConnect()</a>, <a class="el" href="a06364.html#l00419">NLNET::IService::main()</a>, <a class="el" href="a06643.html#l00156">NLNET::CUdpSock::receive()</a>, <a class="el" href="a05514.html#l00386">NLNET::CNonBlockingBufSock::receivePart()</a>, <a class="el" href="a05670.html#l00086">NLNET::sendEMailCommand()</a>, and <a class="el" href="a06645.html#l00857">NLNET::CUnifiedNetwork::update()</a>.
+<p>
+<div class="fragment"><pre>00386 {
+00387 <span class="comment">// stringstream ss;</span>
+00388 <span class="comment">// ss &lt;&lt; hostName() &lt;&lt; ":" &lt;&lt; port() &lt;&lt; " (" &lt;&lt; ipAddress() &lt;&lt; ")";</span>
+00389 <span class="comment">// return ss.str();</span>
+00390 <span class="keywordflow">return</span> <a class="code" href="a02665.html#NLNET_1_1CInetAddressa6">hostName</a>() + <span class="stringliteral">":"</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>(<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>()) + <span class="stringliteral">" ("</span> + <a class="code" href="a02665.html#NLNET_1_1CInetAddressa9">ipAddress</a>() + <span class="stringliteral">")"</span>;
+00391 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa6" doxytag="NLNET::CInetAddress::hostName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const string &amp; NLNET::CInetAddress::hostName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns hostname. (ex: "www.nevrax.org").
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00367">367</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00161">_HostName</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00385">asString()</a>.
+<p>
+<div class="fragment"><pre>00368 {
+00369 <span class="keywordflow">return</span> <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a>;
+00370 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressd0" doxytag="NLNET::CInetAddress::init" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CInetAddress::init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00180">180</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>, and <a class="el" href="a05811.html#l00163">_Valid</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00064">CInetAddress()</a>.
+<p>
+<div class="fragment"><pre>00181 {
+00182 CSock::initNetwork();
+00183
+00184 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a> = <span class="keyword">false</span>;
+00185
+00186 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a> = <span class="keyword">new</span> sockaddr_in;
+00187 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_family = AF_INET;
+00188 memset( <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_zero, 0, 8 );
+00189 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa7" doxytag="NLNET::CInetAddress::internalIPAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLNET::CInetAddress::internalIPAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns internal IP address.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00315">315</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00320">internalNetAddress()</a>, and <a class="el" href="a05810.html#l00503">is127001()</a>.
+<p>
+<div class="fragment"><pre>00316 {
+00317 <span class="keywordflow">return</span> <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr;
+00318 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa8" doxytag="NLNET::CInetAddress::internalNetAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a11">uint32</a> NLNET::CInetAddress::internalNetAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the internal network address (it s the network address for example 192.168.0.0 for a C class).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00320">320</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00315">internalIPAddress()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00321 {
+00322 <a class="code" href="a04558.html#a11">uint32</a> ip = <a class="code" href="a02665.html#NLNET_1_1CInetAddressa7">internalIPAddress</a>();
+00323 <span class="keywordflow">if</span> ((ip&amp;0x00000080) == 0)
+00324 {
+00325 <span class="comment">// A class</span>
+00326 <span class="keywordflow">return</span> ip &amp; 0x000000FF;
+00327 }
+00328 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((ip&amp;0x00000040) == 0)
+00329 {
+00330 <span class="comment">// B class</span>
+00331 <span class="keywordflow">return</span> ip &amp; 0x0000FFFF;
+00332 }
+00333 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((ip&amp;0x00000020) == 0)
+00334 {
+00335 <span class="comment">// C class</span>
+00336 <span class="keywordflow">return</span> ip &amp; 0x00FFFFFF;
+00337 }
+00338 <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((ip&amp;0x00000010) == 0)
+00339 {
+00340 <span class="comment">// D class</span>
+00341 <span class="keywordflow">return</span> ip &amp; 0xFFFFFFFF;
+00342 }
+00343 <span class="keywordflow">else</span>
+00344 {
+00345 <span class="keywordflow">return</span> ip;
+00346 }
+00347 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa9" doxytag="NLNET::CInetAddress::ipAddress" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> string NLNET::CInetAddress::ipAddress </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns readable IP address. (ex: "195.68.21.195").
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00355">355</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00397">asIPString()</a>, <a class="el" href="a05810.html#l00385">asString()</a>, <a class="el" href="a05810.html#l00075">CInetAddress()</a>, <a class="el" href="a05810.html#l00447">localHost()</a>, and <a class="el" href="a05810.html#l00272">setSockAddr()</a>.
+<p>
+<div class="fragment"><pre>00356 {
+00357 <span class="comment">/*stringstream ss; // or use inet_ntoa</span>
+00358 <span class="comment"> ss &lt;&lt; inet_ntoa ( _SockAddr-&gt;sin_addr );</span>
+00359 <span class="comment"> return ss.str();*/</span>
+00360 <span class="keywordflow">return</span> string( inet_ntoa( <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr ) );
+00361 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa10" doxytag="NLNET::CInetAddress::is127001" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLNET::CInetAddress::is127001 </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns true if this <a class="el" href="a02665.html">CInetAddress</a> is 127.0.0.1.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00503">503</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00315">internalIPAddress()</a>.
+<p>
+<div class="fragment"><pre>00504 {
+00505 <span class="keywordflow">return</span> (<a class="code" href="a02665.html#NLNET_1_1CInetAddressa7">internalIPAddress</a> () == htonl(0x7F000001));
+00506 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa11" doxytag="NLNET::CInetAddress::isValid" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NLNET::CInetAddress::isValid </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns if object (address and port) is valid.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00297">297</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>, and <a class="el" href="a05811.html#l00163">_Valid</a>.
+<p>
+Referenced by <a class="el" href="a06645.html#l00479">NLNET::CUnifiedNetwork::init()</a>, and <a class="el" href="a06645.html#l00857">NLNET::CUnifiedNetwork::update()</a>.
+<p>
+<div class="fragment"><pre>00298 {
+00299 <span class="keywordflow">return</span> ( <a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a> &amp;&amp; <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_port!=0 ); <span class="comment">// same as ntohs(0)</span>
+00300 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddresse0" doxytag="NLNET::CInetAddress::localAddresses" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::vector&lt; <a class="el" href="a02665.html">CInetAddress</a> &gt; NLNET::CInetAddress::localAddresses </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the list of the local host addresses (with port=0) (especially useful if the host is multihomed)
+<p>
+Definition at line <a class="el" href="a05810.html#l00467">467</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00064">CInetAddress()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00468 {
+00469 <span class="comment">// 1. Get local host name</span>
+00470 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> maxlength = 80;
+00471 <span class="keywordtype">char</span> localhost [maxlength];
+00472 <span class="keywordflow">if</span> ( gethostname( localhost, maxlength ) == SOCKET_ERROR )
+00473 {
+00474 <span class="keywordflow">throw</span> ESocket( <span class="stringliteral">"Unable to get local hostname"</span> );
+00475 }
+00476
+00477 <span class="comment">// 2. Get address list</span>
+00478 vector&lt;CInetAddress&gt; vect;
+00479
+00480 <a class="code" href="a04558.html#a15">uint</a> i = 0;
+00481 <span class="keywordflow">do</span>
+00482 {
+00483 hostent *phostent = gethostbyname( localhost );
+00484 <span class="keywordflow">if</span> ( phostent == NULL )
+00485 <span class="keywordflow">throw</span> ESocket( (string(<span class="stringliteral">"Hostname resolution failed for "</span>)+string(localhost)).c_str() );
+00486
+00487 <span class="keywordflow">if</span> (phostent-&gt;h_addr_list[i] == 0)
+00488 <span class="keywordflow">break</span>;
+00489
+00490 vect.push_back( <a class="code" href="a02665.html#NLNET_1_1CInetAddressa5">CInetAddress</a>( (<span class="keyword">const</span> in_addr*)(phostent-&gt;h_addr_list[i]) ) );
+00491 i++;
+00492 }
+00493 <span class="keywordflow">while</span> (<span class="keyword">true</span>);
+00494
+00495 <span class="keywordflow">if</span>(vect.empty())
+00496 {
+00497 <span class="keywordflow">throw</span> ESocket( (string(<span class="stringliteral">"No network card detected for "</span>)+string(localhost)).c_str() );
+00498 }
+00499
+00500 <span class="keywordflow">return</span> vect;
+00501 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddresse1" doxytag="NLNET::CInetAddress::localHost" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02665.html">CInetAddress</a> NLNET::CInetAddress::localHost </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Creates a <a class="el" href="a02665.html">CInetAddress</a> object with local host address, port=0.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00447">447</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00064">CInetAddress()</a>, <a class="el" href="a05810.html#l00355">ipAddress()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00448 {
+00449 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> maxlength = 80;
+00450 <span class="keywordtype">char</span> localhost [maxlength];
+00451 <span class="keywordflow">if</span> ( gethostname( localhost, maxlength ) != 0 )
+00452 <span class="keywordflow">throw</span> ESocket( <span class="stringliteral">"Unable to get local hostname"</span> );
+00453 <a class="code" href="a02665.html">CInetAddress</a> localaddr = <a class="code" href="a02665.html#NLNET_1_1CInetAddressa5">CInetAddress</a>( string(localhost) );
+00454
+00455 <span class="keywordflow">if</span> ( localaddr.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa9">ipAddress</a>() == <span class="stringliteral">"127.0.0.1"</span> )
+00456 {
+00457 <a class="code" href="a04199.html#a2">nlwarning</a> (<span class="stringliteral">"LNETL0: No network card detected! using localhost (127.0.0.1)"</span>);
+00458 }
+00459
+00460 <span class="keywordflow">return</span> localaddr;
+00461 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa12" doxytag="NLNET::CInetAddress::operator=" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02665.html">CInetAddress</a> &amp; NLNET::CInetAddress::operator= </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>other</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Assignment operator.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00131">131</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00161">_HostName</a>, <a class="el" href="a05811.html#l00162">_SockAddr</a>, and <a class="el" href="a05811.html#l00163">_Valid</a>.
+<p>
+<div class="fragment"><pre>00132 {
+00133 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a> = other.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a>;
+00134 memcpy( _SockAddr, other.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>, <span class="keyword">sizeof</span>( *_SockAddr ) );
+00135 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a> = other.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a>;
+00136 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+00137 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa13" doxytag="NLNET::CInetAddress::port" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a9">uint16</a> NLNET::CInetAddress::port </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns port.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00376">376</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00397">asIPString()</a>, <a class="el" href="a05810.html#l00385">asString()</a>, and <a class="el" href="a05810.html#l00153">NLNET::operator&lt;()</a>.
+<p>
+<div class="fragment"><pre>00377 {
+00378 <span class="keywordflow">return</span> ntohs( <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_port );
+00379 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa14" doxytag="NLNET::CInetAddress::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CInetAddress::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>s</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialize.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00409">409</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>, <a class="el" href="a05811.html#l00163">_Valid</a>, <a class="el" href="a05810.html#l00397">asIPString()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a05646.html#l00977">s</a>, <a class="el" href="a05979.html#l00420">NLMISC::CMemStream::serial()</a>, <a class="el" href="a05810.html#l00204">setNameAndPort()</a>, <a class="el" href="a05810.html#l00272">setSockAddr()</a>, <a class="el" href="a05979.html#l00116">NLMISC::CMemStream::stringMode()</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00410 {
+00411 <a class="code" href="a02271.html">NLMISC::CMemStream</a> *ms = dynamic_cast&lt;NLMISC::CMemStream*&gt;(&amp;<a class="code" href="a04223.html#a626">s</a>);
+00412 <span class="keywordflow">if</span> ( ms &amp;&amp; ms-&gt;<a class="code" href="a02271.html#NLMISC_1_1CStringStreama49">stringMode</a>() )
+00413 {
+00414 <span class="comment">// String stream</span>
+00415 string addrs;
+00416 <span class="keywordflow">if</span> ( ms-&gt;<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>() )
+00417 {
+00418 ms-&gt;<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( addrs );
+00419 <a class="code" href="a02665.html#NLNET_1_1CInetAddressa16">setNameAndPort</a>( addrs );
+00420 }
+00421 <span class="keywordflow">else</span>
+00422 {
+00423 addrs = <a class="code" href="a02665.html#NLNET_1_1CInetAddressa0">asIPString</a>();
+00424 ms-&gt;<a class="code" href="a02271.html#NLNET_1_1CMessagea41">serial</a>( addrs );
+00425 }
+00426 <a class="code" href="a04223.html#a626">s</a>.serial( _Valid );
+00427 }
+00428 <span class="keywordflow">else</span>
+00429 {
+00430 <span class="comment">// Binary stream</span>
+00431 <a class="code" href="a04223.html#a626">s</a>.serialBuffer( (<a class="code" href="a04558.html#a7">uint8</a>*)_SockAddr, <span class="keyword">sizeof</span>(*_SockAddr) ); <span class="comment">// this is possible only because the contents of _SockAddr is platform-independant !</span>
+00432 <a class="code" href="a04223.html#a626">s</a>.serial( _Valid );
+00433
+00434 <span class="keywordflow">if</span>(<a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a>)
+00435 {
+00436 <span class="comment">// retreive the fullname</span>
+00437 <a class="code" href="a02665.html#NLNET_1_1CInetAddressa18">setSockAddr</a> (_SockAddr);
+00438 }
+00439
+00440 }
+00441 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa15" doxytag="NLNET::CInetAddress::setByName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02665.html">CInetAddress</a> &amp; NLNET::CInetAddress::setByName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>hostname</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Resolves a name.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00224">224</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00161">_HostName</a>, <a class="el" href="a05811.html#l00162">_SockAddr</a>, <a class="el" href="a05811.html#l00163">_Valid</a>, and <a class="el" href="a05622.html#l00101">nldebug</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00098">CInetAddress()</a>, and <a class="el" href="a05810.html#l00204">setNameAndPort()</a>.
+<p>
+<div class="fragment"><pre>00225 {
+00226 <span class="comment">// Try to convert directly for addresses such as a.b.c.d</span>
+00227 in_addr iaddr;
+00228 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00229 <span class="preprocessor"></span> iaddr.S_un.S_addr = inet_addr( hostName.c_str() );
+00230 <span class="keywordflow">if</span> ( iaddr.S_un.S_addr == INADDR_NONE )
+00231 <span class="preprocessor">#elif defined NL_OS_UNIX</span>
+00232 <span class="preprocessor"></span> iaddr.s_addr = inet_addr( hostName.c_str() );
+00233 <span class="keywordflow">if</span> ( iaddr.s_addr == INADDR_NONE )
+00234 <span class="preprocessor">#endif</span>
+00235 <span class="preprocessor"></span> {
+00236
+00237 <span class="comment">// Otherwise use the traditional DNS look-up</span>
+00238 hostent *phostent = gethostbyname( hostName.c_str() );
+00239 <span class="keywordflow">if</span> ( phostent == NULL )
+00240 {
+00241 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a> = <span class="keyword">false</span>;
+00242 <a class="code" href="a04199.html#a0">nldebug</a>( <span class="stringliteral">"LNETL0: Network error: resolution of hostname '%s' failed"</span>, hostName.c_str() );
+00243 <span class="comment">// return *this;</span>
+00244 <span class="keywordflow">throw</span> ESocket( (string(<span class="stringliteral">"Hostname resolution failed for "</span>)+hostName).c_str() );
+00245 }
+00246 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a> = string( phostent-&gt;h_name );
+00247 memcpy( &amp;<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr, phostent-&gt;h_addr, <span class="keyword">sizeof</span>(in_addr) );
+00248 }
+00249 <span class="keywordflow">else</span>
+00250 {
+00251 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a> = hostName;
+00252 memcpy( &amp;<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr, &amp;iaddr, <span class="keyword">sizeof</span>(iaddr) );
+00253 }
+00254 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a> = <span class="keyword">true</span>;
+00255 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+00256 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa16" doxytag="NLNET::CInetAddress::setNameAndPort" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CInetAddress::setNameAndPort </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>hostNameAndPort</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets hostname and port (ex: www.nevrax.com:80).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00204">204</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05810.html#l00224">setByName()</a>, <a class="el" href="a05810.html#l00262">setPort()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00109">CInetAddress()</a>, and <a class="el" href="a05810.html#l00409">serial()</a>.
+<p>
+<div class="fragment"><pre>00205 {
+00206 <a class="code" href="a04558.html#a11">uint32</a> pos = hostNameAndPort.find_first_of (<span class="charliteral">':'</span>);
+00207 <span class="keywordflow">if</span> (pos != string::npos)
+00208 {
+00209 <a class="code" href="a02665.html#NLNET_1_1CInetAddressa17">setPort</a>( atoi(hostNameAndPort.substr(pos + 1).c_str()) );
+00210 }
+00211 <span class="keywordflow">else</span>
+00212 {
+00213 <a class="code" href="a02665.html#NLNET_1_1CInetAddressa17">setPort</a>( 0 );
+00214 }
+00215
+00216 <span class="comment">// if pos == -1, it will copy all the string</span>
+00217 <a class="code" href="a02665.html#NLNET_1_1CInetAddressa15">setByName</a>( hostNameAndPort.substr (0, pos) );
+00218 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa17" doxytag="NLNET::CInetAddress::setPort" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CInetAddress::setPort </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>port</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets port.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00262">262</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00098">CInetAddress()</a>, <a class="el" href="a05913.html#l00076">NLNET::CListenSock::init()</a>, and <a class="el" href="a05810.html#l00204">setNameAndPort()</a>.
+<p>
+<div class="fragment"><pre>00263 {
+00264 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_port = htons( port );
+00265
+00266 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa18" doxytag="NLNET::CInetAddress::setSockAddr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLNET::CInetAddress::setSockAddr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const sockaddr_in *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>saddr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Sets internal socket address directly (contents is copied). It also retrieves the host name if <a class="el" href="a02665.html#NLNET_1_1CInetAddresss0">CInetAddress::RetrieveNames</a> is true.
+<p>
+Definition at line <a class="el" href="a05810.html#l00272">272</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00161">_HostName</a>, <a class="el" href="a05811.html#l00162">_SockAddr</a>, <a class="el" href="a05811.html#l00163">_Valid</a>, and <a class="el" href="a05810.html#l00355">ipAddress()</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00409">serial()</a>.
+<p>
+<div class="fragment"><pre>00273 {
+00274 memcpy( _SockAddr, saddr, <span class="keyword">sizeof</span>(*saddr) );
+00275
+00276 <span class="comment">// Get host name</span>
+00277 <span class="comment">// Warning: when it can't find it, it take more than 4 seconds</span>
+00278 <span class="keywordflow">if</span> ( CInetAddress::RetrieveNames )
+00279 {
+00280 hostent *phostent = gethostbyaddr( (<span class="keywordtype">char</span>*)&amp;saddr-&gt;sin_addr.s_addr, 4, AF_INET );
+00281 <span class="keywordflow">if</span> ( phostent == NULL )
+00282 {
+00283 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a> = <a class="code" href="a02665.html#NLNET_1_1CInetAddressa9">ipAddress</a>();
+00284 }
+00285 <span class="keywordflow">else</span>
+00286 {
+00287 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr0">_HostName</a> = string( phostent-&gt;h_name );
+00288 }
+00289 }
+00290 <a class="code" href="a02665.html#NLNET_1_1CInetAddressr2">_Valid</a> = <span class="keyword">true</span>;
+00291 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressa19" doxytag="NLNET::CInetAddress::sockAddr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const sockaddr_in * NLNET::CInetAddress::sockAddr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns internal socket address (read only).
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00306">306</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+References <a class="el" href="a05811.html#l00162">_SockAddr</a>.
+<p>
+Referenced by <a class="el" href="a06643.html#l00086">NLNET::CUdpSock::bind()</a>.
+<p>
+<div class="fragment"><pre>00307 {
+00308 <span class="keywordflow">return</span> <a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>;
+00309 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" name="NLNET_1_1CInetAddressn0" doxytag="NLNET::CInetAddress::operator<" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool operator&lt; </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [friend]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Comparison &lt; operator.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00153">153</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+<div class="fragment"><pre>00154 {
+00155 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00156 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.S_un.S_addr == a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.S_un.S_addr )
+00157 {
+00158 <span class="keywordflow">return</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>() &lt; a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>() );
+00159 }
+00160 <span class="keywordflow">else</span>
+00161 {
+00162 <span class="keywordflow">return</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.S_un.S_addr &lt; a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.S_un.S_addr );
+00163 }
+00164 <span class="preprocessor">#elif defined NL_OS_UNIX</span>
+00165 <span class="preprocessor"></span> <span class="keywordflow">if</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr == a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr )
+00166 {
+00167 <span class="keywordflow">return</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>() &lt; a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressa13">port</a>() );
+00168 }
+00169 <span class="keywordflow">else</span>
+00170 {
+00171 <span class="keywordflow">return</span> ( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr &lt; a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>-&gt;sin_addr.s_addr );
+00172 }
+00173 <span class="preprocessor">#endif </span>
+00174 <span class="preprocessor"></span>}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressn1" doxytag="NLNET::CInetAddress::operator==" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool operator== </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a1</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02665.html">CInetAddress</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>a2</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [friend]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Comparison == operator.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00143">143</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>.
+<p>
+<div class="fragment"><pre>00144 {
+00145 <span class="comment">// Compares the sockaddr structure except the last 8 bytes equal to zero.</span>
+00146 <span class="keywordflow">return</span> ( memcmp( a1.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>, a2.<a class="code" href="a02665.html#NLNET_1_1CInetAddressr1">_SockAddr</a>, <span class="keyword">sizeof</span>(sockaddr_in)-8 ) == 0 );
+00147 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLNET_1_1CInetAddressr0" doxytag="NLNET::CInetAddress::_HostName" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::string <a class="el" href="a02665.html#NLNET_1_1CInetAddressr0">NLNET::CInetAddress::_HostName</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05811.html#l00161">161</a> of file <a class="el" href="a05811.html">inet_address.h</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00075">CInetAddress()</a>, <a class="el" href="a05810.html#l00367">hostName()</a>, <a class="el" href="a05810.html#l00131">operator=()</a>, <a class="el" href="a05810.html#l00224">setByName()</a>, and <a class="el" href="a05810.html#l00272">setSockAddr()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressr1" doxytag="NLNET::CInetAddress::_SockAddr" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> sockaddr_in* <a class="el" href="a02665.html#NLNET_1_1CInetAddressr1">NLNET::CInetAddress::_SockAddr</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05811.html#l00162">162</a> of file <a class="el" href="a05811.html">inet_address.h</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00064">CInetAddress()</a>, <a class="el" href="a05810.html#l00180">init()</a>, <a class="el" href="a05810.html#l00315">internalIPAddress()</a>, <a class="el" href="a05810.html#l00355">ipAddress()</a>, <a class="el" href="a05810.html#l00297">isValid()</a>, <a class="el" href="a05810.html#l00153">NLNET::operator&lt;()</a>, <a class="el" href="a05810.html#l00131">operator=()</a>, <a class="el" href="a05810.html#l00143">NLNET::operator==()</a>, <a class="el" href="a05810.html#l00376">port()</a>, <a class="el" href="a05810.html#l00409">serial()</a>, <a class="el" href="a05810.html#l00224">setByName()</a>, <a class="el" href="a05810.html#l00262">setPort()</a>, <a class="el" href="a05810.html#l00272">setSockAddr()</a>, <a class="el" href="a05810.html#l00306">sockAddr()</a>, and <a class="el" href="a05810.html#l00195">~CInetAddress()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddressr2" doxytag="NLNET::CInetAddress::_Valid" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02665.html#NLNET_1_1CInetAddressr2">NLNET::CInetAddress::_Valid</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05811.html#l00163">163</a> of file <a class="el" href="a05811.html">inet_address.h</a>.
+<p>
+Referenced by <a class="el" href="a05810.html#l00075">CInetAddress()</a>, <a class="el" href="a05810.html#l00180">init()</a>, <a class="el" href="a05810.html#l00297">isValid()</a>, <a class="el" href="a05810.html#l00131">operator=()</a>, <a class="el" href="a05810.html#l00409">serial()</a>, <a class="el" href="a05810.html#l00224">setByName()</a>, and <a class="el" href="a05810.html#l00272">setSockAddr()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLNET_1_1CInetAddresss0" doxytag="NLNET::CInetAddress::RetrieveNames" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a02665.html#NLNET_1_1CInetAddresss0">NLNET::CInetAddress::RetrieveNames</a> = false<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If true, <a class="el" href="a02665.html#NLNET_1_1CInetAddressa18">setSockAddr()</a> always tries to retrieve the host name from the address.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05810.html#l00058">58</a> of file <a class="el" href="a05810.html">inet_address.cpp</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05811.html">inet_address.h</a><li><a class="el" href="a05810.html">inet_address.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 13:57:36 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>