This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
dhcp XID generation
- To: ecos-discuss at sources dot redhat dot com
- Subject: [ECOS] dhcp XID generation
- From: Robin Farine <acnrf at dial dot eunet dot ch>
- Date: 03 May 2001 16:55:19 +0200
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