validate method
Implementation
List<XrayValidationIssue> validate({
bool allowUnknownProtocols = false,
bool allowRawSettings = true,
}) {
final issues = <XrayValidationIssue>[];
final inboundTags = _collectTags(
inbounds?.map((item) => item.tag),
'inbounds',
issues,
);
final outboundTags = _collectTags(
outbounds?.map((item) => item.tag),
'outbounds',
issues,
);
final balancerTags = _collectTags(
routing?.balancers?.map((item) => item.tag),
'routing.balancers',
issues,
);
final inboundList = inbounds ?? const <InboundDetourConfig>[];
for (var index = 0; index < inboundList.length; index++) {
inboundList[index]._validate(
issues,
'inbounds[$index]',
allowUnknownProtocols: allowUnknownProtocols,
allowRawSettings: allowRawSettings,
);
}
final outboundList = outbounds ?? const <OutboundDetourConfig>[];
for (var index = 0; index < outboundList.length; index++) {
final outbound = outboundList[index];
outbound._validate(
issues,
'outbounds[$index]',
outboundTags: outboundTags,
allowUnknownProtocols: allowUnknownProtocols,
allowRawSettings: allowRawSettings,
);
}
final rules = routing?.ruleList ?? const <RouterRule>[];
for (var index = 0; index < rules.length; index++) {
rules[index]._validate(
issues,
'routing.rules[$index]',
inboundTags: inboundTags,
outboundTags: outboundTags,
balancerTags: balancerTags,
);
}
final balancers = routing?.balancers ?? const <BalancingRule>[];
for (var index = 0; index < balancers.length; index++) {
balancers[index]._validate(
issues,
'routing.balancers[$index]',
outboundTags: outboundTags,
);
}
return issues;
}