A negative return value from read in the ntpserver loop should not terminate the server. If the timesource is GPS, announce it in the NTP packets sent.