6 #include "validatorip_p.h" 10 #include <QHostAddress> 16 u
"^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"_s};
19 Constraints constraints,
22 :
ValidatorRule(*new ValidatorIpPrivate(field, constraints, messages, defValKey))
42 qCDebug(C_VALIDATOR).noquote() <<
"Not a valid IP address";
70 static const std::vector<std::pair<QHostAddress, int>> ipv4Private(
89 static const std::vector<std::pair<QHostAddress, int>> ipv4Reserved(
135 static const std::vector<std::pair<QHostAddress, int>> ipv6Private(
143 static const std::vector<std::pair<QHostAddress, int>> ipv6Reserved(
178 if (a.setAddress(
value)) {
184 if (constraints.testFlag(
IPv6Only)) {
189 valid = !std::ranges::any_of(
190 ipv4Private, [&a](
const std::pair<QHostAddress, int> &subnet) {
191 return a.isInSubnet(subnet.first, subnet.second);
196 valid = !std::ranges::any_of(
197 ipv4Reserved, [&a](
const std::pair<QHostAddress, int> &subnet) {
198 return a.isInSubnet(subnet.first, subnet.second);
210 if (constraints.testFlag(
IPv4Only)) {
215 valid = !std::ranges::any_of(
216 ipv6Private, [&a](
const std::pair<QHostAddress, int> &subnet) {
217 return a.isInSubnet(subnet.first, subnet.second);
222 valid = !std::ranges::any_of(
223 ipv6Reserved, [&a](
const std::pair<QHostAddress, int> &subnet) {
224 return a.isInSubnet(subnet.first, subnet.second);
250 return c->
qtTrId(
"cutelyst-valip-genvalerr");
254 return c->
qtTrId(
"cutelyst-valip-genvalerr-label").
arg(_label);
Stores custom error messages and the input field label.
void defaultValue(Context *c, ValidatorReturnType *result) const
bool isEmpty() const const
The Cutelyst namespace holds all public Cutelyst API.
ValidatorIp(const QString &field, Constraints constraints=NoConstraint, const ValidatorMessages &messages={}, const QString &defValKey={})
Base class for all validator rules.
void validateCb(Context *c, const ParamsMultiMap ¶ms, ValidatorRtFn cb) const override
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
QString value(const ParamsMultiMap ¶ms) const
QString label(const Context *c) const
std::function< void(ValidatorReturnType &&result)> ValidatorRtFn
Void callback function for validator rules that processes the ValidatorReturnType.
QString validationError(Context *c, const QVariant &errorData={}) const
static bool validate(const QString &value, Constraints constraints=NoConstraint)
Returns true if value is a valid IP address within the constraints.
QString qtTrId(const char *id, int n=-1) const
Contains the result of a single input parameter validation.
Checks if the field value is a valid IP address.
QString arg(Args &&... args) const const
QString genericValidationError(Context *c, const QVariant &errorData=QVariant()) const override
void setValue(QVariant &&value)