There's no need to set changed unconditionally in dhclient_init(), and
it can make extra work for the users of the dhclient, by causing them
to think that something changed when it didn't.
 {
     state_transition(cli, requested_ip ? S_INIT_REBOOT : S_INIT);
     cli->ipaddr = requested_ip;
-    cli->changed = true;
     cli->min_timeout = 0;
     cli->init_delay = 0;
 }
         msg.ciaddr = cli->ipaddr;
         do_send_msg(cli, &msg);
         dhcp_msg_uninit(&msg);
+        cli->changed = true;
     }
     state_transition(cli, S_RELEASED);
     cli->min_timeout = UINT_MAX;