Merge pull request #25 from Sagit-chu/opencode/kind-sailor

fix(gost): mark node failed when transport detects relay error
This commit is contained in:
sagit
2026-02-05 12:21:32 +08:00
committed by GitHub
2 changed files with 8 additions and 5 deletions
+8 -1
View File
@@ -252,7 +252,14 @@ func (h *forwardHandler) Handle(ctx context.Context, conn net.Conn, opts ...hand
}
defer cc.Close()
xnet.Transport(conn, cc)
if err := xnet.Transport(conn, cc); err != nil {
if marker := target.Marker(); marker != nil {
marker.Mark()
h.options.Logger.Debugf("[handler.transport] transport failed, marked node=%s count=%d err=%v",
target.Addr, marker.Count(), err)
}
return err
}
return nil
}
@@ -51,10 +51,6 @@ public class GostUtil {
JSONObject connector = new JSONObject();
connector.put("type", "relay");
// 启用 noDelay 以确保连接错误能立即传播,使故障转移正常工作
JSONObject connectorMetadata = new JSONObject();
connectorMetadata.put("nodelay", true);
connector.put("metadata", connectorMetadata);
Node node_info = node_s.get(chainTunnel.getNodeId());
JSONObject node = new JSONObject();