mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-09-11 15:41:41 +02:00
properly handle case when seed host is given as short host name
This commit is contained in:
+47
-24
@@ -806,29 +806,36 @@ void DiscoveryDruid::startDNSScan()
|
|||||||
|
|
||||||
InetAddr DiscoveryDruid::getSeedHostAddress()
|
InetAddr DiscoveryDruid::getSeedHostAddress()
|
||||||
{
|
{
|
||||||
|
if (fwbdebug)
|
||||||
|
qDebug(
|
||||||
|
QString("DiscoveryDruid::getSeedHostAddress(): Seed host name %1").
|
||||||
|
arg(m_dialog->seedhostname->text()).toLatin1().constData());
|
||||||
|
|
||||||
libfwbuilder::InetAddr seed_host_addr;
|
libfwbuilder::InetAddr seed_host_addr;
|
||||||
if (!m_dialog->seedhostname->text().isEmpty())
|
if (!m_dialog->seedhostname->text().isEmpty())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
seed_host_addr=InetAddr(m_dialog->seedhostname->text().toLatin1().constData());
|
QString a = getAddrByName( m_dialog->seedhostname->text() );
|
||||||
return seed_host_addr;
|
if (fwbdebug)
|
||||||
|
qDebug(
|
||||||
|
QString("DiscoveryDruid::getSeedHostAddress() address: %1").
|
||||||
|
arg(a).toLatin1().constData());
|
||||||
|
|
||||||
|
return InetAddr( a.toLatin1().constData() );
|
||||||
} catch(const FWException &ex)
|
} catch(const FWException &ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
QString a = getAddrByName( m_dialog->seedhostname->text() );
|
seed_host_addr = InetAddr(
|
||||||
return InetAddr( a.toLatin1().constData() );
|
m_dialog->seedhostname->text().toLatin1().constData());
|
||||||
#if 0
|
|
||||||
list<InetAddr> v=DNS::getHostByName( m_dialog->seedhostname->text().toLatin1().constData() );
|
|
||||||
seed_host_addr = v.front();
|
|
||||||
return seed_host_addr;
|
return seed_host_addr;
|
||||||
#endif
|
|
||||||
} catch(const FWException &ex)
|
} catch(const FWException &ex)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return seed_host_addr;
|
return seed_host_addr;
|
||||||
}
|
}
|
||||||
@@ -1739,19 +1746,21 @@ void DiscoveryDruid::updateLog()
|
|||||||
void DiscoveryDruid::changedSeedHost()
|
void DiscoveryDruid::changedSeedHost()
|
||||||
{
|
{
|
||||||
m_dialog->seedhosterror_message->setText(" ");
|
m_dialog->seedhosterror_message->setText(" ");
|
||||||
userIsTyping=true;
|
userIsTyping = true;
|
||||||
errMessage=m_dialog->seedhosterror_message;
|
errMessage = m_dialog->seedhosterror_message;
|
||||||
HostName=m_dialog->seedhostname->text();
|
HostName = m_dialog->seedhostname->text();
|
||||||
|
|
||||||
if (HostName.isEmpty())
|
if (HostName.isEmpty())
|
||||||
{
|
{
|
||||||
timer->stop();
|
timer->stop();
|
||||||
m_dialog->DNSprogress->hide();
|
m_dialog->DNSprogress->hide();
|
||||||
QPalette palette = m_dialog->seedhosterror_message->palette();
|
QPalette palette = m_dialog->seedhosterror_message->palette();
|
||||||
palette.setColor(m_dialog->seedhosterror_message->foregroundRole(), Qt::darkRed);
|
palette.setColor(
|
||||||
|
m_dialog->seedhosterror_message->foregroundRole(), Qt::darkRed);
|
||||||
m_dialog->seedhosterror_message->setPalette(palette);
|
m_dialog->seedhosterror_message->setPalette(palette);
|
||||||
|
|
||||||
m_dialog->seedhosterror_message->setText("Enter a valid host name or address.");
|
m_dialog->seedhosterror_message->setText(
|
||||||
|
"Enter a valid host name or address.");
|
||||||
isSeedHostOK=false;
|
isSeedHostOK=false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1760,26 +1769,36 @@ void DiscoveryDruid::changedSeedHost()
|
|||||||
{ // seems to be an IP Address
|
{ // seems to be an IP Address
|
||||||
m_dialog->DNSprogress->hide();
|
m_dialog->DNSprogress->hide();
|
||||||
timer->stop();
|
timer->stop();
|
||||||
QRegExp r=QRegExp("^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$",Qt::CaseInsensitive); //non wildcard
|
QRegExp r = QRegExp(
|
||||||
|
"^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$",
|
||||||
|
Qt::CaseInsensitive); //non wildcard
|
||||||
if (r.exactMatch(HostName))
|
if (r.exactMatch(HostName))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
InetAddr(HostName.toLatin1().constData());
|
InetAddr(HostName.toLatin1().constData());
|
||||||
|
|
||||||
QPalette palette = m_dialog->seedhosterror_message->palette();
|
QPalette palette =
|
||||||
palette.setColor(m_dialog->seedhosterror_message->foregroundRole(), Qt::darkGreen);
|
m_dialog->seedhosterror_message->palette();
|
||||||
|
palette.setColor(
|
||||||
|
m_dialog->seedhosterror_message->foregroundRole(),
|
||||||
|
Qt::darkGreen);
|
||||||
m_dialog->seedhosterror_message->setPalette(palette);
|
m_dialog->seedhosterror_message->setPalette(palette);
|
||||||
|
|
||||||
m_dialog->seedhosterror_message->setText("Address verified");
|
m_dialog->seedhosterror_message->setText(
|
||||||
|
"Address verified");
|
||||||
isSeedHostOK=true;
|
isSeedHostOK=true;
|
||||||
} catch(const FWException &ex)
|
} catch(const FWException &ex)
|
||||||
{
|
{
|
||||||
QPalette palette = m_dialog->seedhosterror_message->palette();
|
QPalette palette =
|
||||||
palette.setColor(m_dialog->seedhosterror_message->foregroundRole(), Qt::darkRed);
|
m_dialog->seedhosterror_message->palette();
|
||||||
|
palette.setColor(
|
||||||
|
m_dialog->seedhosterror_message->foregroundRole(),
|
||||||
|
Qt::darkRed);
|
||||||
m_dialog->seedhosterror_message->setPalette(palette);
|
m_dialog->seedhosterror_message->setPalette(palette);
|
||||||
|
|
||||||
m_dialog->seedhosterror_message->setText(ex.toString().c_str());
|
m_dialog->seedhosterror_message->setText(
|
||||||
|
ex.toString().c_str());
|
||||||
// need to return focus to the input field in case of error
|
// need to return focus to the input field in case of error
|
||||||
//m_dialog->seedhostname->setFocus();
|
//m_dialog->seedhostname->setFocus();
|
||||||
isSeedHostOK=false;
|
isSeedHostOK=false;
|
||||||
@@ -1788,7 +1807,9 @@ void DiscoveryDruid::changedSeedHost()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
QPalette palette = m_dialog->seedhosterror_message->palette();
|
QPalette palette = m_dialog->seedhosterror_message->palette();
|
||||||
palette.setColor(m_dialog->seedhosterror_message->foregroundRole(), Qt::darkRed);
|
palette.setColor(
|
||||||
|
m_dialog->seedhosterror_message->foregroundRole(),
|
||||||
|
Qt::darkRed);
|
||||||
m_dialog->seedhosterror_message->setPalette(palette);
|
m_dialog->seedhosterror_message->setPalette(palette);
|
||||||
|
|
||||||
m_dialog->seedhosterror_message->setText("Wrong IPv4 format");
|
m_dialog->seedhosterror_message->setText("Wrong IPv4 format");
|
||||||
@@ -1798,13 +1819,15 @@ void DiscoveryDruid::changedSeedHost()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{// it looks like a DNS name
|
{// it looks like a DNS name
|
||||||
isSeedHostOK=false;
|
isSeedHostOK = false;
|
||||||
|
|
||||||
QPalette palette = m_dialog->seedhosterror_message->palette();
|
QPalette palette = m_dialog->seedhosterror_message->palette();
|
||||||
palette.setColor(m_dialog->seedhosterror_message->foregroundRole(), Qt::black);
|
palette.setColor(
|
||||||
|
m_dialog->seedhosterror_message->foregroundRole(), Qt::black);
|
||||||
m_dialog->seedhosterror_message->setPalette(palette);
|
m_dialog->seedhosterror_message->setPalette(palette);
|
||||||
|
|
||||||
m_dialog->seedhosterror_message->setText("DNS resolution in progress...");
|
m_dialog->seedhosterror_message->setText(
|
||||||
|
"DNS resolution in progress...");
|
||||||
unProg = 0;
|
unProg = 0;
|
||||||
unBar=m_dialog->DNSprogress;
|
unBar=m_dialog->DNSprogress;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user