/* Set the retransmit timer for the packet. It will select from either the discover timeouts/request timeouts or the default timeout values. */
VOID DhcpSetTransmitTimer(IN OUT DHCP_SERVICE *DhcpSb)
/* Set the retransmit timer for the packet. It will select from either the discover timeouts/request timeouts or the default timeout values. */
VOID DhcpSetTransmitTimer(IN OUT DHCP_SERVICE *DhcpSb)
{
  UINT32  *Times;
  ASSERT (DhcpSb->MaxRetries > DhcpSb->CurRetry);
  if (DhcpSb->DhcpState == Dhcp4Selecting) {
    Times = DhcpSb->ActiveConfig.DiscoverTimeout;
  } else {
    Times = DhcpSb->ActiveConfig.RequestTimeout;
  }
  if (Times == NULL) {
    Times = mDhcp4DefaultTimeout;
  }
  DhcpSb->PacketToLive = Times[DhcpSb->CurRetry];
  DhcpSb->LastTimeout  = DhcpSb->PacketToLive;
  return;
}