PDA

View Full Version : QNetworkConfiguration Problems with Static Build



hammonjj
8th February 2014, 21:36
I'm having a problem getting to the internet via the QNetworkAccessManager. However, the odd part is that if I dynamically link to the Qt libraries, it works fine. Static linking causes the problem, but there are no other issues, that I've seen, with static linking. No matter what, networkAccessible() always returns -1 unless I explicitly set it to QNetworkAccessManager::NotAccessible. When I set it back to accessible, networkAccessible again returns -1.

Ideas? Is there something extra special that needs to be done in the build/link process that I missed?

Thanks



In Header:
std::auto_ptr<QNetworkAccessManager> m_pNetworkAccessManager

Source:
CPDLNetworkManager::CPDLNetworkManager(QWidget* parent /*= 0*/) :
QWidget(parent),
m_pNetworkAccessManager(new QNetworkAccessManager())
{
connect(m_pNetworkAccessManager.get(), SIGNAL(finished(QNetworkReply*)),
this, SLOT(slt_responseRecieved(QNetworkReply*)));

QNetworkConfigurationManager networkManager;
m_pNetworkAccessManager->setConfiguration(networkManager.defaultConfigurati on());

QList<QNetworkConfiguration> liConfig = networkManager.allConfigurations();
qDebug() << "Config Count " << liConfig.count();

for (auto configs : liConfig)
{
qDebug() << "QNetworkConfiguration";
qDebug() << "" << configs.bearerTypeName();
qDebug() << "" << configs.bearerType();
qDebug() << "" << configs.identifier();
qDebug() << "" << configs.isValid();
qDebug() << "" << configs.name();
qDebug() << "" << configs.state();
qDebug() << "" << configs.type();
qDebug() << "";

}

qDebug() << "QNetworkAccessManager::NetworkAccessibility: " << m_pNetworkAccessManager->networkAccessible();
qDebug() << "QNetworkConfiguration::identifier: " << m_pNetworkAccessManager->configuration().identifier();
qDebug() << "QNetworkConfiguration::bearerType: " << m_pNetworkAccessManager->configuration().bearerType();
qDebug() << "QNetworkConfiguration::isValid: " << m_pNetworkAccessManager->configuration().isValid();
qDebug() << "QNetworkConfiguration::name: " << m_pNetworkAccessManager->configuration().name();
qDebug() << "QNetworkConfiguration::state: " << m_pNetworkAccessManager->configuration().state();
}

Output:
Config Count 0
QNetworkAccessManager::NetworkAccessibility: -1
QNetworkConfiguration::identifier: ""
QNetworkConfiguration::bearerType: 0
QNetworkConfiguration::isValid: false
QNetworkConfiguration::name: ""
QNetworkConfiguration::state: QFlags(0x1)