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";
65 static const std::vector<std::pair<QHostAddress, int>> ipv4Private(
84 static const std::vector<std::pair<QHostAddress, int>> ipv4Reserved(
127 {
QHostAddress(QStringLiteral(
"255.255.255.255")), 32}});
130 static const std::vector<std::pair<QHostAddress, int>> ipv6Private(
138 static const std::vector<std::pair<QHostAddress, int>> ipv6Reserved(
173 if (a.setAddress(
value)) {
179 if (constraints.testFlag(
IPv6Only)) {
186 for (
const std::pair<QHostAddress, int> &subnet : ipv4Private) {
187 if (a.isInSubnet(subnet.first, subnet.second)) {
197 for (
const std::pair<QHostAddress, int> &subnet : ipv4Reserved) {
198 if (a.isInSubnet(subnet.first, subnet.second)) {
207 if (a.isInSubnet(
QHostAddress(QStringLiteral(
"224.0.0.0")), 4)) {
214 if (constraints.testFlag(
IPv4Only)) {
221 for (
const std::pair<QHostAddress, int> &subnet : ipv6Private) {
222 if (a.isInSubnet(subnet.first, subnet.second)) {
232 for (
const std::pair<QHostAddress, int> &subnet : ipv6Reserved) {
233 if (a.isInSubnet(subnet.first, subnet.second)) {
242 if (a.isInSubnet(
QHostAddress(QStringLiteral(
"ff00::")), 8)) {
263 return c->
qtTrId(
"cutelyst-valip-genvalerr");
267 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.
Base class for all validator rules.
ValidatorIp(const QString &field, Constraints constraints=NoConstraint, const ValidatorMessages &messages=ValidatorMessages(), const QString &defValKey=QString())
QString label(Context *c) const
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
QString value(const ParamsMultiMap ¶ms) const
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)