Re: Ip::Address::IsAnyAddr

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Wed, 27 Jul 2011 10:28:53 +1200

 On Tue, 26 Jul 2011 18:05:57 +0300, Tsantilas Christos wrote:
> On 07/26/2011 02:01 AM, Amos Jeffries wrote:
>> On Mon, 25 Jul 2011 17:59:48 +0300, Tsantilas Christos wrote:
>>> I am sending a version 4 of the patch which is the same with Amos
>>> patch but is a little smaller. IT is easier to see the changes.
>>>
>>>
>>> But applying this patch I found some problems in icp* related code.
>>> This problems has as result an assertion failure inside icp code.
>>> I am attaching a patch which is required to allow icp works with
>>> isAnyAddr patch, but maybe fixes bugs.
>>>
>>> From what I can understand reading about the icp protocol, it
>>> supports only the IPv4 protocol: It contains in icp messages header
>>> a
>>> 32bit number which represents the ip address of sender. This is
>>> mean
>>> that only ipv4 addresses can used.
>>>
>>> The icp-isanyaddr.patch:
>>> 1) Use the ip::Address::SetIPv4 method to always convert to IPv4
>>> the
>>> ip addresses used to set the hostid field of the ICP header
>>> message.
>>>
>>> 2) Inside neighbors_init() function there is the line:
>>> theIcpPublicHostID.GetInAddr( *((struct in_addr*)&echo_hdr.shostid)
>>> );
>>> The above line sets the hostid field of the header of the icp echo
>>> message, to theIcpPublciHostID. The problem is that this ipaddress
>>> is
>>> not initialized yet. Will be initialized inside
>>> icpIncomingConnectionOpened when this function called.
>>> The icp-isanyadd.patch replaces the above line with a simple:
>>> echo_hdr.shostid = 0;
>>> which is absolutely equivalent (but probably not the correct).
>>>
>>> The icp-isanyaddr.patch is not a finished patch but I am posting it
>>> here to show two (possible) problems:
>>> - The icp does not work with IPv4 so we may add checks to prevent
>>> using ipv6 addresses
>>> - The echo_hdr message initialized with an IP address which is not
>>> initialized yet.
>>>
>>
>> What you have so far on the ICP looks correct.
>
> OK I post a separate patch for icp.
>
> Is it OK to commit the isAnyAddr patch to trunk?
>

 Hmm, of itself its ready. But I'm not inclined to +1 it until the ICP
 patch is in.
 I think that is not many minutes work away though.

 Amos
Received on Tue Jul 26 2011 - 22:28:57 MDT

This archive was generated by hypermail 2.2.0 : Wed Jul 27 2011 - 12:00:09 MDT