aboutsummaryrefslogtreecommitdiff
path: root/clients/net-snk/app/netlib/bootp.c
diff options
context:
space:
mode:
Diffstat (limited to 'clients/net-snk/app/netlib/bootp.c')
-rw-r--r--clients/net-snk/app/netlib/bootp.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/clients/net-snk/app/netlib/bootp.c b/clients/net-snk/app/netlib/bootp.c
index ce2ae5f..b89f0bf 100644
--- a/clients/net-snk/app/netlib/bootp.c
+++ b/clients/net-snk/app/netlib/bootp.c
@@ -20,6 +20,8 @@
#define DEBUG 0
+static char * response_buffer;
+
void
print_ip(char *ip)
{
@@ -164,6 +166,9 @@ receive_bootp(int boot_device, filename_ip_t * fn_ip)
if (memcmp(fn_ip->own_mac, btph->chaddr, ETH_ALEN))
continue;
+ if(response_buffer)
+ memcpy(response_buffer, btph, 1720);
+
fn_ip->own_ip = btph->yiaddr;
fn_ip->server_ip = btph->siaddr;
memcpy(fn_ip->server_mac, &ethh->src_mac, 6);
@@ -229,13 +234,15 @@ receive_bootp(int boot_device, filename_ip_t * fn_ip)
int
-bootp(int boot_device, filename_ip_t * fn_ip, unsigned int retries)
+bootp(int boot_device, char *ret_buffer, filename_ip_t * fn_ip, unsigned int retries)
{
int i = (int) retries+1;
fn_ip->own_ip = 0;
printf(" ");
+ response_buffer = ret_buffer;
+
do {
printf("\b\b%02d", i);
if (!i--) {