It would really help the world... ok, me... if the script was given the reason it was being called. Mainly I want to know if it is a renewal.
diff --git a/sdhcp.c b/sdhcp.c index e2a641e..b6cbfe7 100644 --- a/sdhcp.c +++ b/sdhcp.c @@ -322,7 +339,7 @@ dhcprecv(void) } static void -acceptlease(void) +acceptlease(const char *reason) { char buf[128]; @@ -341,6 +358,7 @@ acceptlease(void) setenv("ROUTER", buf, 1); snprintf(buf, sizeof(buf), "%d.%d.%d.%d", dns[0], dns[1], dns[2], dns[3]); setenv("DNS", buf, 1); + setenv("REASON", reason, 1); system(program); } alarm(t1); @@ -378,7 +396,7 @@ Requesting: case DHCPoffer: goto Requesting; /* ignore other offers. */ case DHCPack: - acceptlease(); + acceptlease("BOUND"); goto Bound; } Bound: @@ -400,7 +418,7 @@ Bound: Renewing: switch(dhcprecv()) { case DHCPack: - acceptlease(); + acceptlease("RENEW"); goto Bound; case DHCPnak: goto Init; @@ -413,7 +431,7 @@ Rebinding: case DHCPnak: /* lease expired */ goto Init; case DHCPack: - acceptlease(); + acceptlease("REBIND"); goto Bound; } }