This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

dhcp XID generation


Hi,

In a system with a single power supply but many independent boards running eCos
and using the DHCP client, switching the system on sometimes results into some
boards configured with the *same* parameters (IP address, ...).

The problem resides in the method used to generate the DHCP request's XID
field. A solution that seems to work for us follows:

<Changelog>
2001-05-03  Robin Farine  <acnrf@dial.eunet.ch>

	* src/lib/dhcp_prot.c (do_dhcp): Uses arc4random() instead of
	cyg_current_time() to generate the XID field to improve randomness.
</Changelog>

<patch>
Index: packages/net/tcpip/current/src/lib/dhcp_prot.c
===================================================================
RCS file: /usr/cvs/eCos/packages/net/net/tcpip/current/src/lib/dhcp_prot.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -r1.1.1.1 -r1.2
397c397
<         xid = (cyg_uint32)res + (cyg_uint32)(0xffffffff & cyg_current_time());
---
>         xid = (cyg_uint32)res + (cyg_uint32)arc4random();
</patch>

Robin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]