Fix IGMP/MLD group address find/replace
fieldData/setFieldData changed to work with uint in addition to string
This commit is contained in:
parent
4aedc61c8e
commit
969e16aaf3
@ -57,7 +57,7 @@ void GmpConfigForm::loadWidget(AbstractProtocol *proto)
|
|||||||
groupAddress->setText(
|
groupAddress->setText(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
GmpProtocol::kGroupAddress,
|
GmpProtocol::kGroupAddress,
|
||||||
AbstractProtocol::FieldValue
|
AbstractProtocol::FieldTextValue
|
||||||
).toString());
|
).toString());
|
||||||
groupMode->setCurrentIndex(
|
groupMode->setCurrentIndex(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
|
@ -134,6 +134,7 @@ QVariant IgmpProtocol::fieldData(int index, FieldAttrib attrib,
|
|||||||
case FieldName:
|
case FieldName:
|
||||||
return QString("Group Address");
|
return QString("Group Address");
|
||||||
case FieldValue:
|
case FieldValue:
|
||||||
|
return grpIp;
|
||||||
case FieldTextValue:
|
case FieldTextValue:
|
||||||
return QHostAddress(grpIp).toString();
|
return QHostAddress(grpIp).toString();
|
||||||
case FieldFrameValue:
|
case FieldFrameValue:
|
||||||
@ -289,8 +290,14 @@ bool IgmpProtocol::setFieldData(int index, const QVariant &value,
|
|||||||
}
|
}
|
||||||
case kGroupAddress:
|
case kGroupAddress:
|
||||||
{
|
{
|
||||||
|
quint32 ip = value.toUInt(&isOk);
|
||||||
|
if (isOk) {
|
||||||
|
data.mutable_group_address()->set_v4(ip);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
QHostAddress addr(value.toString());
|
QHostAddress addr(value.toString());
|
||||||
quint32 ip = addr.toIPv4Address();
|
ip = addr.toIPv4Address();
|
||||||
isOk = (addr.protocol() == QAbstractSocket::IPv4Protocol);
|
isOk = (addr.protocol() == QAbstractSocket::IPv4Protocol);
|
||||||
if (isOk)
|
if (isOk)
|
||||||
data.mutable_group_address()->set_v4(ip);
|
data.mutable_group_address()->set_v4(ip);
|
||||||
|
@ -195,6 +195,7 @@ QVariant MldProtocol::fieldData(int index, FieldAttrib attrib,
|
|||||||
case FieldName:
|
case FieldName:
|
||||||
return QString("Group Address");
|
return QString("Group Address");
|
||||||
case FieldValue:
|
case FieldValue:
|
||||||
|
return QVariant::fromValue(UInt128(grpHi, grpLo));
|
||||||
case FieldTextValue:
|
case FieldTextValue:
|
||||||
case FieldFrameValue:
|
case FieldFrameValue:
|
||||||
{
|
{
|
||||||
@ -401,6 +402,14 @@ bool MldProtocol::setFieldData(int index, const QVariant &value,
|
|||||||
{
|
{
|
||||||
case kGroupAddress:
|
case kGroupAddress:
|
||||||
{
|
{
|
||||||
|
if (value.typeName() == QString("UInt128")) {
|
||||||
|
UInt128 addr = value.value<UInt128>();
|
||||||
|
data.mutable_group_address()->set_v6_hi(addr.hi64());
|
||||||
|
data.mutable_group_address()->set_v6_lo(addr.lo64());
|
||||||
|
isOk = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
Q_IPV6ADDR addr = QHostAddress(value.toString()).toIPv6Address();
|
Q_IPV6ADDR addr = QHostAddress(value.toString()).toIPv6Address();
|
||||||
quint64 x;
|
quint64 x;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user