Mercurial > nand-ecoscentric
changeset 3093:9306ff8edcbf
* src/bootp_support.c (show_bootp): Fixed output for some fields.
* src/dhcp_prot.c (do_dhcp): Convert bp_secs field to network byte
order. Inspired by Kelvin Lawson. [ Bugzilla 1001170 ]
| author | sergeig |
|---|---|
| date | Fri, 11 Mar 2011 20:00:19 +0000 |
| parents | fed9439fc16c |
| children | 08d845c99239 |
| files | packages/net/common/current/ChangeLog packages/net/common/current/src/bootp_support.c packages/net/common/current/src/dhcp_prot.c |
| diffstat | 3 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/net/common/current/ChangeLog +++ b/packages/net/common/current/ChangeLog @@ -1,3 +1,10 @@ +2011-03-09 Jay Foster <jay@systech.com> + Sergei Gavrikov <sergei.gavrikov@gmail.com> + + * src/bootp_support.c (show_bootp): Fixed output for some fields. + * src/dhcp_prot.c (do_dhcp): Convert bp_secs field to network byte + order. Inspired by Kelvin Lawson. [ Bugzilla 1001170 ] + 2009-09-17 Jay Foster <jay@systech.com> * src/dhcp_prot.c (do_dhcp): Fix packet parsing for DHCP servers
--- a/packages/net/common/current/src/bootp_support.c +++ b/packages/net/common/current/src/bootp_support.c @@ -274,8 +274,8 @@ show_bootp(const char *intf, struct boot diag_printf(" hlen: %d\n", bp->bp_hlen ); diag_printf(" hops: %d\n", bp->bp_hops ); diag_printf(" xid: 0x%x\n", bp->bp_xid ); - diag_printf(" secs: %d\n", bp->bp_secs ); - diag_printf(" flags: 0x%x\n", bp->bp_flags ); + diag_printf(" secs: %d\n", ntohs(bp->bp_secs) ); + diag_printf(" flags: 0x%x\n", ntohs(bp->bp_flags) ); diag_printf(" hw_addr: "); for (i = 0; i < bp->bp_hlen; i++) { diag_printf("%02x", bp->bp_chaddr[i]);
--- a/packages/net/common/current/src/dhcp_prot.c +++ b/packages/net/common/current/src/dhcp_prot.c @@ -701,6 +701,7 @@ do_dhcp(const char *intf, struct bootp * unsigned int length; cyg_uint32 xid; + unsigned short bp_secs; #define CHECK_XID() ( /* and other details */ \ received->bp_xid != xid || /* not the same transaction */ \ @@ -842,7 +843,8 @@ do_dhcp(const char *intf, struct bootp * xmit->bp_htype = HTYPE_ETHERNET; xmit->bp_hlen = IFHWADDRLEN; xmit->bp_xid = xid; - xmit->bp_secs = cyg_current_time() / 100; + bp_secs = cyg_current_time() / 100; + xmit->bp_secs = htons(bp_secs); xmit->bp_flags = htons(0x8000); // BROADCAST FLAG bcopy(ifr.ifr_hwaddr.sa_data, &xmit->bp_chaddr, xmit->bp_hlen); bcopy(mincookie, xmit->bp_vend, sizeof(mincookie));
