初版功能完成
ci / Go checks (ubuntu-latest) (push) Has been cancelled
ci / Go checks (windows-latest) (push) Has been cancelled

This commit is contained in:
qsc
2026-08-29 13:12:17 +08:00
commit 142e5dc7d6
217 changed files with 21313 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
package protocol
// ErrorCode is a stable machine-readable RemLink failure identifier.
type ErrorCode string
const (
ErrorServerUnreachable ErrorCode = "SERVER_UNREACHABLE"
ErrorJoinTokenInvalid ErrorCode = "JOIN_TOKEN_INVALID"
ErrorNodeAuthFailed ErrorCode = "NODE_AUTH_FAILED"
ErrorOverlayLocalConflict ErrorCode = "OVERLAY_LOCAL_CONFLICT"
ErrorEngineerSessionExists ErrorCode = "ENGINEER_SESSION_EXISTS"
ErrorSiteOffline ErrorCode = "SITE_OFFLINE"
ErrorCIDRInvalid ErrorCode = "CIDR_INVALID"
ErrorCIDRLocalConflict ErrorCode = "CIDR_LOCAL_CONFLICT"
ErrorCIDROverlayConflict ErrorCode = "CIDR_OVERLAY_CONFLICT"
ErrorSiteNoRoute ErrorCode = "SITE_NO_ROUTE"
ErrorNetstackUnavailable ErrorCode = "NETSTACK_UNAVAILABLE"
ErrorFlowLimitReached ErrorCode = "FLOW_LIMIT_REACHED"
ErrorSessionTimeout ErrorCode = "SESSION_TIMEOUT"
ErrorSessionInjectFailed ErrorCode = "SESSION_INJECT_FAILED"
)
// ErrorCodes is the authoritative 14-code v1 baseline.
var ErrorCodes = [...]ErrorCode{
ErrorServerUnreachable,
ErrorJoinTokenInvalid,
ErrorNodeAuthFailed,
ErrorOverlayLocalConflict,
ErrorEngineerSessionExists,
ErrorSiteOffline,
ErrorCIDRInvalid,
ErrorCIDRLocalConflict,
ErrorCIDROverlayConflict,
ErrorSiteNoRoute,
ErrorNetstackUnavailable,
ErrorFlowLimitReached,
ErrorSessionTimeout,
ErrorSessionInjectFailed,
}
// Valid reports whether the code belongs to the v1 baseline.
func (c ErrorCode) Valid() bool {
switch c {
case ErrorServerUnreachable,
ErrorJoinTokenInvalid,
ErrorNodeAuthFailed,
ErrorOverlayLocalConflict,
ErrorEngineerSessionExists,
ErrorSiteOffline,
ErrorCIDRInvalid,
ErrorCIDRLocalConflict,
ErrorCIDROverlayConflict,
ErrorSiteNoRoute,
ErrorNetstackUnavailable,
ErrorFlowLimitReached,
ErrorSessionTimeout,
ErrorSessionInjectFailed:
return true
default:
return false
}
}