Re: Ip::Address::IsAnyAddr

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Tue, 26 Jul 2011 11:01:21 +1200

 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.

 Amos
Received on Mon Jul 25 2011 - 23:01:25 MDT

This archive was generated by hypermail 2.2.0 : Tue Jul 26 2011 - 12:00:05 MDT