# HG changeset patch # User asl # Date 1077800311 0 # Node ID 021fe06c2e08fe0c944bcae3fec577b5799f578d # Parent fc4fa5d81cbac319c3c45c79d09204d3400c37d7 * src/sntp.c: When a new server is added to the list of unicast servers don't wait 30 minutes before querying it for the first time. diff --git a/packages/net/sntp/current/ChangeLog b/packages/net/sntp/current/ChangeLog --- a/packages/net/sntp/current/ChangeLog +++ b/packages/net/sntp/current/ChangeLog @@ -1,3 +1,9 @@ +2004-02-26 Yuxin Jiang + + * src/sntp.c: When a new server is added to the list of unicast + servers don't wait 30 minutes before querying it for the first + time. + 2003-10-15 Dan Jakubiec Andrew Lunn diff --git a/packages/net/sntp/current/src/sntp.c b/packages/net/sntp/current/src/sntp.c --- a/packages/net/sntp/current/src/sntp.c +++ b/packages/net/sntp/current/src/sntp.c @@ -140,6 +140,7 @@ static int sntp_initialized = 0; static struct sockaddr *sntp_servers = NULL; static cyg_uint32 sntp_num_servers = 0; static cyg_mutex_t sntp_mutex; +static time_t NextTimeUpdate = 0; /* SNTP Timeouts * @@ -216,7 +217,6 @@ static void sntp_fn(cyg_addrword_t data) #ifdef CYGPKG_NET_SNTP_UNICAST int i; struct timeval timeout; - time_t NextTimeUpdate = 0; #endif /* CYGPKG_NET_SNTP_UNICAST */ struct timeval *ptimeout = NULL; @@ -329,7 +329,8 @@ static void sntp_fn(cyg_addrword_t data) * up when it's time to send more * requests. */ - timeout.tv_sec = NextTimeUpdate - current_time; + timeout.tv_sec = (SNTP_WAITPERIOD > (NextTimeUpdate - current_time)? + (NextTimeUpdate - current_time):SNTP_WAITPERIOD); } else { /* It's already time for us to update our time */ NextTimeUpdate = 0; @@ -530,8 +531,12 @@ void cyg_sntp_set_servers(struct sockadd /* Record the new server list */ sntp_num_servers = num_servers; - if (num_servers == 0) + if (num_servers == 0) { server_list = NULL; + } else { + /* reset the waiting time to force a new update <= SNTP_WAITPERIOD*/ + NextTimeUpdate = 0; + } sntp_servers = server_list; /* Free the mutex */