ci/woodpecker/push/main-amd64-build Pipeline was successful
Methods, roles and binary channels are declared in one table per plane (node and peer). RpcRouter checks direction, kind and role when handlers are registered, when messages arrive (fleet_protocol_violation, disconnect after repeated violations) and before sending. NodeConnection is split by responsibility.
31 lines
1.7 KiB
C#
31 lines
1.7 KiB
C#
namespace Fleet.Core;
|
|
|
|
/// <summary>
|
|
/// 错误码:snake_case 字符串。框架的错误码以 <c>fleet_</c> 开头,产品可以扩展自己的错误码。
|
|
/// </summary>
|
|
public readonly record struct ErrorCode(string Value)
|
|
{
|
|
public override string ToString() => Value;
|
|
}
|
|
|
|
public static class FleetErrors
|
|
{
|
|
public static readonly ErrorCode Unauthorized = new("fleet_unauthorized");
|
|
public static readonly ErrorCode Forbidden = new("fleet_forbidden");
|
|
public static readonly ErrorCode Unsupported = new("fleet_unsupported");
|
|
/// <summary>方法没有声明、方向不对、类型不对或角色不允许:对方违反了协议。</summary>
|
|
public static readonly ErrorCode ProtocolViolation = new("fleet_protocol_violation");
|
|
public static readonly ErrorCode InvalidParams = new("fleet_invalid_params");
|
|
public static readonly ErrorCode NotFound = new("fleet_not_found");
|
|
public static readonly ErrorCode Internal = new("fleet_internal");
|
|
public static readonly ErrorCode Timeout = new("fleet_timeout");
|
|
public static readonly ErrorCode NodeOffline = new("fleet_node_offline");
|
|
public static readonly ErrorCode NodePending = new("fleet_node_pending");
|
|
public static readonly ErrorCode NodeDisabled = new("fleet_node_disabled");
|
|
public static readonly ErrorCode NameConflict = new("fleet_name_conflict");
|
|
public static readonly ErrorCode JoinTokenInvalid = new("fleet_join_token_invalid");
|
|
public static readonly ErrorCode JoinTokenExpired = new("fleet_join_token_expired");
|
|
public static readonly ErrorCode ProofInvalid = new("fleet_proof_invalid");
|
|
public static readonly ErrorCode FrameTooLarge = new("fleet_frame_too_large");
|
|
}
|