2020-10-08 15:06:42 +08:00
|
|
|
|
package checkpoints
|
|
|
|
|
|
|
2021-07-18 15:51:49 +08:00
|
|
|
|
// AllCheckpoints all check points list
|
2020-10-08 15:06:42 +08:00
|
|
|
|
var AllCheckpoints = []*CheckpointDefinition{
|
2020-11-18 19:35:38 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "通用请求Header长度限制",
|
|
|
|
|
|
Prefix: "requestGeneralHeaderLength",
|
|
|
|
|
|
Description: "通用Header比如Cache-Control、Accept之类的长度限制,防止缓冲区溢出攻击",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestGeneralHeaderLengthCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-11-18 19:35:38 +08:00
|
|
|
|
},
|
2020-10-08 15:06:42 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "客户端地址(IP)",
|
|
|
|
|
|
Prefix: "remoteAddr",
|
|
|
|
|
|
Description: "试图通过分析X-Forwarded-For等Header获取的客户端地址,比如192.168.1.100",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestRemoteAddrCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "客户端源地址(IP)",
|
|
|
|
|
|
Prefix: "rawRemoteAddr",
|
|
|
|
|
|
Description: "直接连接的客户端地址,比如192.168.1.100",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestRawRemoteAddrCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "客户端端口",
|
|
|
|
|
|
Prefix: "remotePort",
|
|
|
|
|
|
Description: "直接连接的客户端地址端口",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestRemotePortCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "客户端用户名",
|
|
|
|
|
|
Prefix: "remoteUser",
|
|
|
|
|
|
Description: "通过BasicAuth登录的客户端用户名",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestRemoteUserCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求URI",
|
|
|
|
|
|
Prefix: "requestURI",
|
2022-06-09 19:44:11 +08:00
|
|
|
|
Description: "包含URL参数的请求URI,类似于 /hello/world?lang=go",
|
2020-10-08 15:06:42 +08:00
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestURICheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求路径",
|
|
|
|
|
|
Prefix: "requestPath",
|
2022-06-09 19:44:11 +08:00
|
|
|
|
Description: "不包含URL参数的请求路径,类似于 /hello/world",
|
2020-10-08 15:06:42 +08:00
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestPathCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
2022-06-09 19:44:11 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "请求URL",
|
|
|
|
|
|
Prefix: "requestURL",
|
|
|
|
|
|
Description: "完整的请求URL,包含协议、域名、请求路径、参数等,类似于 https://example.com/hello?name=lily",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestURLCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2022-06-09 19:44:11 +08:00
|
|
|
|
},
|
2020-10-08 15:06:42 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "请求内容长度",
|
|
|
|
|
|
Prefix: "requestLength",
|
|
|
|
|
|
Description: "请求Header中的Content-Length",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestLengthCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求体内容",
|
|
|
|
|
|
Prefix: "requestBody",
|
|
|
|
|
|
Description: "通常在POST或者PUT等操作时会附带请求体,最大限制32M",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestBodyCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 5,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求URI和请求体组合",
|
|
|
|
|
|
Prefix: "requestAll",
|
|
|
|
|
|
Description: "${requestURI}和${requestBody}组合",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestAllCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 5,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求表单参数",
|
|
|
|
|
|
Prefix: "requestForm",
|
|
|
|
|
|
Description: "获取POST或者其他方法发送的表单参数,最大请求体限制32M",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(RequestFormArgCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 5,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "上传文件",
|
|
|
|
|
|
Prefix: "requestUpload",
|
|
|
|
|
|
Description: "获取POST上传的文件信息,最大请求体限制32M",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(RequestUploadCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 20,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求JSON参数",
|
|
|
|
|
|
Prefix: "requestJSON",
|
|
|
|
|
|
Description: "获取POST或者其他方法发送的JSON,最大请求体限制32M,使用点(.)符号表示多级数据",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(RequestJSONArgCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 5,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求方法",
|
|
|
|
|
|
Prefix: "requestMethod",
|
|
|
|
|
|
Description: "比如GET、POST",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestMethodCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求协议",
|
|
|
|
|
|
Prefix: "scheme",
|
|
|
|
|
|
Description: "比如http或https",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestSchemeCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "HTTP协议版本",
|
|
|
|
|
|
Prefix: "proto",
|
|
|
|
|
|
Description: "比如HTTP/1.1",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestProtoCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "主机名",
|
|
|
|
|
|
Prefix: "host",
|
|
|
|
|
|
Description: "比如teaos.cn",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestHostCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
2022-11-16 15:01:10 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "CNAME",
|
|
|
|
|
|
Prefix: "cname",
|
2024-07-27 15:42:50 +08:00
|
|
|
|
Description: "当前网站服务CNAME,比如38b48e4f.goedge.cloud",
|
2022-11-16 15:01:10 +08:00
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestCNAMECheckpoint),
|
|
|
|
|
|
Priority: 100,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "是否为CNAME",
|
|
|
|
|
|
Prefix: "isCNAME",
|
|
|
|
|
|
Description: "是否为CNAME,值为1(是)或0(否)",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestIsCNAMECheckpoint),
|
|
|
|
|
|
Priority: 100,
|
|
|
|
|
|
},
|
2020-10-08 15:06:42 +08:00
|
|
|
|
{
|
2023-12-24 10:03:24 +08:00
|
|
|
|
Name: "请求来源",
|
|
|
|
|
|
Prefix: "refererOrigin",
|
|
|
|
|
|
Description: "请求报头中的Referer或Origin值",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestRefererOriginCheckpoint),
|
|
|
|
|
|
Priority: 100,
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "请求来源Referer",
|
2020-10-08 15:06:42 +08:00
|
|
|
|
Prefix: "referer",
|
|
|
|
|
|
Description: "请求Header中的Referer值",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestRefererCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "客户端信息",
|
|
|
|
|
|
Prefix: "userAgent",
|
|
|
|
|
|
Description: "比如Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestUserAgentCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "内容类型",
|
|
|
|
|
|
Prefix: "contentType",
|
|
|
|
|
|
Description: "请求Header的Content-Type",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestContentTypeCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "所有cookie组合字符串",
|
|
|
|
|
|
Prefix: "cookies",
|
|
|
|
|
|
Description: "比如sid=IxZVPFhE&city=beijing&uid=18237",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestCookiesCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "单个cookie值",
|
|
|
|
|
|
Prefix: "cookie",
|
|
|
|
|
|
Description: "单个cookie值",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(RequestCookieCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "所有URL参数组合",
|
|
|
|
|
|
Prefix: "args",
|
|
|
|
|
|
Description: "比如name=lu&age=20",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestArgsCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "单个URL参数值",
|
|
|
|
|
|
Prefix: "arg",
|
|
|
|
|
|
Description: "单个URL参数值",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(RequestArgCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "所有Header信息",
|
|
|
|
|
|
Prefix: "headers",
|
2022-01-06 16:27:39 +08:00
|
|
|
|
Description: "使用\\n隔开的Header信息字符串",
|
2020-10-08 15:06:42 +08:00
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestHeadersCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
2023-12-08 15:39:23 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "所有请求报头名称",
|
|
|
|
|
|
Prefix: "headerNames",
|
|
|
|
|
|
Description: "使用换行符(\\n)隔开的报头名称字符串,每行一个名称",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestHeaderNamesCheckpoint),
|
|
|
|
|
|
Priority: 100,
|
|
|
|
|
|
},
|
2020-10-08 15:06:42 +08:00
|
|
|
|
{
|
2024-05-06 21:06:55 +08:00
|
|
|
|
Name: "单个报头值",
|
2020-10-08 15:06:42 +08:00
|
|
|
|
Prefix: "header",
|
2024-05-06 21:06:55 +08:00
|
|
|
|
Description: "单个报头值",
|
2020-10-08 15:06:42 +08:00
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(RequestHeaderCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
2024-05-06 21:06:55 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "请求报头最大长度",
|
|
|
|
|
|
Prefix: "headerMaxLength",
|
|
|
|
|
|
Description: "最长的请求报头的长度。",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestHeaderMaxLengthCheckpoint),
|
|
|
|
|
|
Priority: 100,
|
|
|
|
|
|
},
|
2022-01-06 16:27:39 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "国家/地区名称",
|
|
|
|
|
|
Prefix: "geoCountryName",
|
|
|
|
|
|
Description: "国家/地区名称",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestGeoCountryNameCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 90,
|
2022-01-06 16:27:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "省份名称",
|
|
|
|
|
|
Prefix: "geoProvinceName",
|
|
|
|
|
|
Description: "中国省份名称",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestGeoProvinceNameCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 90,
|
2022-01-06 16:27:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "城市名称",
|
|
|
|
|
|
Prefix: "geoCityName",
|
|
|
|
|
|
Description: "中国城市名称",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestGeoCityNameCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 90,
|
2022-01-06 16:27:39 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "ISP名称",
|
|
|
|
|
|
Prefix: "ispName",
|
|
|
|
|
|
Description: "ISP名称",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(RequestISPNameCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 90,
|
2022-01-06 16:27:39 +08:00
|
|
|
|
},
|
2020-10-08 15:06:42 +08:00
|
|
|
|
{
|
2021-07-19 10:49:56 +08:00
|
|
|
|
Name: "CC统计(旧)",
|
2020-10-08 15:06:42 +08:00
|
|
|
|
Prefix: "cc",
|
|
|
|
|
|
Description: "统计某段时间段内的请求信息",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(CCCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 10,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
2021-07-19 10:49:56 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "CC统计(新)",
|
|
|
|
|
|
Prefix: "cc2",
|
|
|
|
|
|
Description: "统计某段时间段内的请求信息",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(CC2Checkpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 10,
|
2021-07-19 10:49:56 +08:00
|
|
|
|
},
|
2021-10-19 11:38:46 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "防盗链",
|
|
|
|
|
|
Prefix: "refererBlock",
|
|
|
|
|
|
Description: "阻止一些域名访问引用本站资源",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(RequestRefererBlockCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 20,
|
2021-10-19 11:38:46 +08:00
|
|
|
|
},
|
2020-11-18 19:35:38 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "通用响应Header长度限制",
|
|
|
|
|
|
Prefix: "responseGeneralHeaderLength",
|
|
|
|
|
|
Description: "通用Header比如Cache-Control、Accept之类的长度限制,防止缓冲区溢出攻击",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(ResponseGeneralHeaderLengthCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-11-18 19:35:38 +08:00
|
|
|
|
},
|
2020-10-08 15:06:42 +08:00
|
|
|
|
{
|
|
|
|
|
|
Name: "响应状态码",
|
|
|
|
|
|
Prefix: "status",
|
|
|
|
|
|
Description: "响应状态码,比如200、404、500",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(ResponseStatusCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "响应Header",
|
|
|
|
|
|
Prefix: "responseHeader",
|
|
|
|
|
|
Description: "响应Header值",
|
|
|
|
|
|
HasParams: true,
|
|
|
|
|
|
Instance: new(ResponseHeaderCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "响应内容",
|
|
|
|
|
|
Prefix: "responseBody",
|
|
|
|
|
|
Description: "响应内容字符串",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(ResponseBodyCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 5,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
Name: "响应内容长度",
|
|
|
|
|
|
Prefix: "bytesSent",
|
|
|
|
|
|
Description: "响应内容长度,通过响应的Header Content-Length获取",
|
|
|
|
|
|
HasParams: false,
|
|
|
|
|
|
Instance: new(ResponseBytesSentCheckpoint),
|
2022-10-24 17:57:07 +08:00
|
|
|
|
Priority: 100,
|
2020-10-08 15:06:42 +08:00
|
|
|
|
},
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-01-06 16:27:39 +08:00
|
|
|
|
// FindCheckpoint find a check point
|
2020-10-08 15:06:42 +08:00
|
|
|
|
func FindCheckpoint(prefix string) CheckpointInterface {
|
|
|
|
|
|
for _, def := range AllCheckpoints {
|
|
|
|
|
|
if def.Prefix == prefix {
|
2022-10-24 17:57:07 +08:00
|
|
|
|
def.Instance.SetPriority(def.Priority)
|
2020-10-08 15:06:42 +08:00
|
|
|
|
return def.Instance
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return nil
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-01-06 16:27:39 +08:00
|
|
|
|
// FindCheckpointDefinition find a check point definition
|
2020-10-08 15:06:42 +08:00
|
|
|
|
func FindCheckpointDefinition(prefix string) *CheckpointDefinition {
|
|
|
|
|
|
for _, def := range AllCheckpoints {
|
|
|
|
|
|
if def.Prefix == prefix {
|
|
|
|
|
|
return def
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return nil
|
|
|
|
|
|
}
|