|
|
@@ -32,6 +32,7 @@ type program struct {
|
|
|
core_server *jsonrpc2.RPCServer
|
|
|
http_server *http.Server
|
|
|
timeSyncOK atomic.Bool
|
|
|
+ syncSource atomic.Value
|
|
|
stopTimeSync chan struct{}
|
|
|
}
|
|
|
|
|
|
@@ -64,7 +65,7 @@ func (p *program) Start(s service.Service) error {
|
|
|
_saveLogConf := servicelib.SaveLogConf
|
|
|
methods["basic.saveLogConf"] = _saveLogConf // 保存日志设置
|
|
|
//////////////////////////////////////////////////////////
|
|
|
- methods["core.getSysTimeStatus"] = p.getSysTimeStatus
|
|
|
+ methods["core.getTimeSyncStatus"] = p.getTimeSyncStatus
|
|
|
|
|
|
err = p.core_server.RegisterMethods(methods)
|
|
|
if err != nil {
|
|
|
@@ -80,6 +81,7 @@ func (p *program) Start(s service.Service) error {
|
|
|
}
|
|
|
|
|
|
p.stopTimeSync = make(chan struct{})
|
|
|
+ p.syncSource.Store("")
|
|
|
|
|
|
go p.run()
|
|
|
|
|
|
@@ -131,16 +133,18 @@ func (p *program) syncSysTime() error {
|
|
|
return errors.New("network not available")
|
|
|
}
|
|
|
|
|
|
- var err error
|
|
|
- if !httpTime.IsZero() {
|
|
|
- err = netmgrd.SetSystemTime(httpTime)
|
|
|
+ if !httpTime.IsZero() && netmgrd.SetSystemTime(httpTime) == nil {
|
|
|
+ p.syncSource.Store("http")
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
- if httpTime.IsZero() || err != nil {
|
|
|
- err = netmgrd.SyncNTPTime()
|
|
|
+ err := netmgrd.SyncNTPTime()
|
|
|
+ if err == nil {
|
|
|
+ p.syncSource.Store("ntp")
|
|
|
+ return nil
|
|
|
+ } else {
|
|
|
+ return err
|
|
|
}
|
|
|
-
|
|
|
- return err
|
|
|
}
|
|
|
|
|
|
func (p *program) maintainSystemTime() {
|