@@ -355,17 +355,31 @@ func (s *Service) storeEvent(event models.EndpointSSE) error {
355355 }
356356
357357 // 非日志事件继续存储到数据库
358+ // 添加调试信息
359+ log .Debugf ("[Master-%d]存储事件: eventType=%s, instanceID=%s, pool=%v, ping=%v" ,
360+ event .EndpointID , event .EventType , event .InstanceID , event .Pool , event .Ping )
361+
362+ // 处理可能为 nil 的字段
363+ poolValue := event .Pool
364+ if poolValue == nil {
365+ poolValue = nil // 明确设置为 nil,让数据库处理
366+ }
367+ pingValue := event .Ping
368+ if pingValue == nil {
369+ pingValue = nil // 明确设置为 nil,让数据库处理
370+ }
371+
358372 _ , err := s .db .Exec (`
359373 INSERT INTO "EndpointSSE" (
360374 eventType, pushType, eventTime, endpointId,
361375 instanceId, instanceType, status, url,
362376 tcpRx, tcpTx, udpRx, udpTx, pool, ping,
363377 logs, alias, restart, createdAt
364- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
378+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
365379 ` ,
366380 event .EventType , event .PushType , event .EventTime , event .EndpointID ,
367381 event .InstanceID , event .InstanceType , event .Status , event .URL ,
368- event .TCPRx , event .TCPTx , event .UDPRx , event .UDPTx , event . Pool , event . Ping ,
382+ event .TCPRx , event .TCPTx , event .UDPRx , event .UDPTx , poolValue , pingValue ,
369383 event .Logs , event .Alias , event .Restart , time .Now (),
370384 )
371385 if err != nil {
@@ -1041,6 +1055,10 @@ func (s *Service) tunnelCreate(tx *sql.Tx, e models.EndpointSSE, cfg parsedURL)
10411055 log .Infof ("[Master-%d#SSE]Inst.%s创建隧道时设置重启策略: %t" , e .EndpointID , e .InstanceID , restart )
10421056 }
10431057
1058+ // 处理可能为 nil 的字段
1059+ poolValue := e .Pool
1060+ pingValue := e .Ping
1061+
10441062 _ , err = tx .Exec (`INSERT INTO "Tunnel" (
10451063 instanceId, endpointId, name, mode,
10461064 status, tunnelAddress, tunnelPort, targetAddress, targetPort,
@@ -1065,7 +1083,7 @@ func (s *Service) tunnelCreate(tx *sql.Tx, e models.EndpointSSE, cfg parsedURL)
10651083 }
10661084 return nil
10671085 }(),
1068- e .TCPRx , e .TCPTx , e .UDPRx , e .UDPTx , e . Pool , e . Ping , restart , time .Now (), time .Now (), e .EventTime ,
1086+ e .TCPRx , e .TCPTx , e .UDPRx , e .UDPTx , poolValue , pingValue , restart , time .Now (), time .Now (), e .EventTime ,
10691087 )
10701088 if err != nil {
10711089 log .Errorf ("[Master-%d#SSE]Inst.%s创建隧道失败,err=%v" , e .EndpointID , e .InstanceID , err )
@@ -1154,6 +1172,10 @@ func (s *Service) tunnelUpdate(tx *sql.Tx, e models.EndpointSSE, cfg parsedURL)
11541172 return nil
11551173 }()
11561174
1175+ // 处理可能为 nil 的字段
1176+ poolValue := e .Pool
1177+ pingValue := e .Ping
1178+
11571179 _ , err = tx .Exec (`UPDATE "Tunnel" SET
11581180 status = ?, tcpRx = ?, tcpTx = ?, udpRx = ?, udpTx = ?, pool = ?, ping = ?,
11591181 name = ?, mode = ?, restart = ?,
@@ -1162,7 +1184,7 @@ func (s *Service) tunnelUpdate(tx *sql.Tx, e models.EndpointSSE, cfg parsedURL)
11621184 password = ?, min = ?, max = ?,
11631185 lastEventTime = ?, updatedAt = ?
11641186 WHERE endpointId = ? AND instanceId = ?` ,
1165- newStatus , e .TCPRx , e .TCPTx , e .UDPRx , e .UDPTx , e . Pool , e . Ping ,
1187+ newStatus , e .TCPRx , e .TCPTx , e .UDPRx , e .UDPTx , poolValue , pingValue ,
11661188 newName , newMode , newRestart ,
11671189 cfg .TunnelAddress , cfg .TunnelPort , cfg .TargetAddress , cfg .TargetPort ,
11681190 cfg .TLSMode , cfg .CertPath , cfg .KeyPath , cfg .LogLevel , ptrString (e .URL ),
@@ -1237,6 +1259,10 @@ func (s *Service) tunnelCreateOrUpdate(tx *sql.Tx, e models.EndpointSSE, cfg par
12371259 log .Infof ("[Master-%d#SSE]Inst.%s创建隧道时设置重启策略: %t" , e .EndpointID , e .InstanceID , restart )
12381260 }
12391261
1262+ // 处理可能为 nil 的字段
1263+ poolValue := e .Pool
1264+ pingValue := e .Ping
1265+
12401266 _ , err = tx .Exec (`INSERT INTO "Tunnel" (
12411267 instanceId, endpointId, name, mode,
12421268 status, tunnelAddress, tunnelPort, targetAddress, targetPort,
@@ -1261,7 +1287,7 @@ func (s *Service) tunnelCreateOrUpdate(tx *sql.Tx, e models.EndpointSSE, cfg par
12611287 }
12621288 return nil
12631289 }(),
1264- e .TCPRx , e .TCPTx , e .UDPRx , e .UDPTx , e . Pool , e . Ping , restart , time .Now (), time .Now (), e .EventTime ,
1290+ e .TCPRx , e .TCPTx , e .UDPRx , e .UDPTx , poolValue , pingValue , restart , time .Now (), time .Now (), e .EventTime ,
12651291 )
12661292 if err != nil {
12671293 log .Errorf ("[Master-%d#SSE]Inst.%s创建隧道失败,err=%v" , e .EndpointID , e .InstanceID , err )
0 commit comments