Содержание
- QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. #844
- Comments
- QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. #546
- Comments
- ScudCloud Version
- Distro and Desktop info
- Expected behavior
- Actual behavior
- Steps to reproduce
- Footer
- QNetworkReplyImplPrivate printed to stdout #509
- Comments
- Exceptions when handling exceptions #544
- Comments
- ScudCloud Version
- Distro and Desktop info
- Expected behavior
- Actual behavior
- Steps to reproduce
- [SOLVED]Linux error downloading manifest.xml
- [SOLVED]Linux error downloading manifest.xml
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. #844
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
The text was updated successfully, but these errors were encountered:
This issue actually caused Splash to stuck and stops responding. And even ignoring the restart command.
The same issue still happens.
It would be great if one of you managed to provide a set of steps to reliably reproduce this issue. If you do, it would be much easier to fix the issue.
Splash version: 3.2
Qt 5.9.1, PyQt 5.9, WebKit 602.1, sip 4.19.3, Twisted 16.1.1, Lua 5.2
Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609]
I run splash with command docker run -p 8050:8050 scrapinghub/splash
After some count of requests execution I receive a lot of errors in splash log like:
loadFinished: RenderErrorInfo(type=’Network’, code=99, text=’Proxy connection refused’, url=’https://. ‘) I rotate proxy servers on each request using next lua script:
I also rotate user-agent http header using next lua script:
I understand that it’s OK because some of my proxies can expire. But I suppose that it could be related to the main error.
15-20 minutes I start to receive 504 response. But some requests still work. In a pair of minutes I receive just 504 errors. I also tried to run the docker container with next command docker run -p 8050:8050 scrapinghub/splash —max-timeout 3600 regarding to the manual. But the issue still happens.
When 504 error happens in the log I can rarely see the topic error.
There are some errors from the log that I can reproduce now:
Источник
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. #546
ScudCloud Version
Paste the output for scudcloud —version below:
ScudCloud 1.50 Python 3.5.2 Qt 5.5.1 PyQt 5.5.1 SIP 4.17
Distro and Desktop info
- Distribution:
- Version/Release:
- Desktop environment:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
xfce
Expected behavior
Actual behavior
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
Steps to reproduce
- perhaps changing networks
- perhaps suspend on one network, resume where it’s absent and connect to a different one
The text was updated successfully, but these errors were encountered:
For sure, Qt5 is bad on reconnect (I actually have to re-open Scudcloud when I’m disconnected from Internet for few hours). I’ll search if I can improve this in some way.
Hm, I’ve updated my qtwebkit, and the reconnect improved a lot. Maybe I should publish a package with it.
Perhaps so. Recent scudcloud ALWAYS needs a restart after network change.
@shevek Yeap, I’m investigating this. Even with new qtwebkit I’m facing this too. I’ll keep searching for a solution.
I’ll check if I can create a class inheriting from QtNetwork manager and apply a fix like that in python.
Looks like the patches from https://bugreports.qt.io/browse/QTBUG-46323 are already included in current debian versions (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804883) but the problem still persists, even with Qt 5.7.1.
Thank you for adding this info, @jayme-github.
In a first moment I though to try to mimic some of the patch using Python, but after check the code, not an easy task (similar to how I’ve translated the spell suggester from Qupzilla).
But if this is not fixed yet. 🙁
Hm, yea — maybe the «new» problem is a different one. As said in #573 I can only see some errors in the webkit debug console, no QNetworkReplyImplPrivate errors here.
Usually the QNetworkReplyImplPrivate error is displayed in the command line (so, you have to start scudcloud from there).
Exactly the same problem here, running Ubuntu 16.04.2 LTS on Gnome3.
Usually the QNetworkReplyImplPrivate error is displayed in the command line (so, you have to start scudcloud from there).
Did that of cause. I only see messages like the following, but I’m unsure if they are related to this issue:
QObject::disconnect: Unexpected null parameter
Even using the internal browser reload, the Qt libraries appears to not reconnect properly. I was thinking to build a try/catch around these failures and fire a reload.
Yea, it’s completely strange and probably there is more than one specific issue. I did some further testing with the changes in jayme-github@af3cd54:
- When I change network from A to B the signal is triggered with new state: NotAccessible
- A signal for new state Accessible is never received, scudcloud stops functioning
- When I switch back from B to A the signal is triggered with new state: Accessible
- Even in this case the new state is not (always?) recognized by scudcloud e.g. «Page Reload» is needed to re-enable input in slack etc.
@raelgc do you know where those QObject::disconnect: Unexpected null parameter messages are triggered?
@jayme-github I’m starting scudcloud by command line and I’ll watch it for the next hours.
Laptop just woke up from suspend (on the same network as when going to sleep):
Switching networks does not bring back accessible state.
Very similar results after suspend/wakeup:
© 2023 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Источник
QNetworkReplyImplPrivate printed to stdout #509
After setting up capybara-webkit , I encountered this error message which is simply printed to the console during execution:
It doesn’t occur every time, though. The test which makes this message appear is:
- capybara (2.1.0)
- capybara-webkit (0.14.1 0abc7e1)
The text was updated successfully, but these errors were encountered:
Thanks for reporting this. It’s likely not an issue, though it could be related to our NetworkReplyProxy, which lets us read raw responses after content has been rendered by the browser (for instance, when you want to get the binary content of a PDF). There’s likely some production code behind this test case which is causing the error, e.g. some Ajax requests or the way a controller behaves. If you could extract a failing example, with fixture HTML, that would be very helpful in tracking this down.
OK. I’m getting rid of non-related code, which is a pain, since the failure doesn’t occur reliably but rather on every 5th run sometimes.
Hi! It seems the problem in qt 5. Can I compile the gem with qt 4.8 until the error in qt 5 will not fix?
capybara-webkit is compatible with Qt 4.8 and Qt 5.
I was wrong when I said that the problem was in qt 5. The problem was in qt 4.8.4 and after the upgrade to qt 5 the message disappeared. But the tests which use the capybara-webkit freeze.
Example:
But the next test does not freeze:
This error message seems to be caused by WebKit Qt issue 82506 per this comment regarding use of WebKit Qt from Python.
After updating qtwebkit tests stopped freeze and seem to work correctly. But still printed message::
WebKit Qt bug 82506 currently has status «RESOLVED FIXED» (from 2012-10-01).
However, comment 15 from October, 2012 which closed that WebKit Qt bug says: «As discussed on irc, passing the same url again does not trigger an error, but basically results in a NOP. Closing this now, please holler if you believe it should be left open.»
Perhaps the words above, «error», «basically» and «NOP» are weasel words. ;/
Some ways we might handle this are:
- Ask our users to make sure they don’t cause us to reload pages in certain ways. (Requesting this of users would seem mostly useless.)
- Track in-progress page loads, and invoke wait_load before repeating any. So, we would invoke method «browser._wait_load()» (or our equivalent) before reinvoking method «browser.webframe.load()» (or our equivalent) on any page_load in progress. (This would seem the best way.)
- Convince (or put pressure on) WebKit Qt developers to stop emitting this scary error message while repeating a page load, because they themselves, after all, characterize this merely as a «NOP» (or null operation).
Web-searching that error message («QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once») reveals that WebKit Qt users from a wide variety of software systems still experience this problem (recently). It seems to result from a flaw in WebKit Qt’s expectations, from intermediate software layers such as ours (capybara-webkit), about what our own users programmatically will ask us to do.
Источник
Exceptions when handling exceptions #544
ScudCloud Version
Paste the output for scudcloud —version below:
ScudCloud 1.50 Python 3.5.2 Qt 5.5.1 PyQt 5.5.1 SIP 4.17
Distro and Desktop info
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
Expected behavior
Actual behavior
ScudCloud using 50% CPU on a Broadwell system
Steps to reproduce
The text was updated successfully, but these errors were encountered:
Thanks for reporting this issue, @shevek!
Is this happening everytime at startup? Or in some conditions, like when viewing a snippet?
It’s not at startup. It’s just something that happens «sometimes», perhaps related to network instability. One network I was using had 20% packet loss until today, so I got a lot of issues. It can also go wrong when resuming from sleep, depending on when the sleep interrupt happened.
After latest restart, console just contains:
I don’t understand dbus — could this be asynchronicity in suspend/resume?
QDBusObjectPath: invalid path «»
QDBusConnection: error: could not send message to service «org.freedesktop.NetworkManager» path «/org/freedesktop/NetworkManager» interface «org.freedesktop.NetworkManager» member «ActivateConnection»: Marshalling failed: Invalid object path passed in arguments
QDBusObjectPath: invalid path «»
QDBusConnection: error: could not send message to service «org.freedesktop.NetworkManager» path «/org/freedesktop/NetworkManager» interface «org.freedesktop.NetworkManager» member «ActivateConnection»: Marshalling failed: Invalid object path passed in arguments
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
«No such interface ‘org.freedesktop.DBus.Properties’ on object at path /»
«No such interface ‘org.freedesktop.DBus.Properties’ on object at path /»
and it’s not working. GUI’s responding, but it isn’t working
Unfortunatelly, all above are just simple console output, and not crash exceptions. These days, as I’m moving to a new home (so I’m under a slow 3G connection), I’m facing these outputs too.
For some reason, Qt5 appears to not handle so well the slow connections as Qt4.
Anyway, I’ll investigate all issues.
Perversely, I’m glad about the 3G, as it’s much easier to debug when you can reproduce! But yes, I’m on a network with 20% packet loss, and scudcloud is one of the major losers. Firefox often manages to hold its own. mpv sometimes works. Skype works OK, except when it doesn’t.
Источник
[SOLVED]Linux error downloading manifest.xml
This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.
[SOLVED]Linux error downloading manifest.xml
so the Linux client was always kinda buggy for me. But it was always fixable with just removing the AO folder, downloading the newest version of the game from the official site and reinstalling it.
Today, i get a really strange message and my usual approach of fixing issues with AO on linux does not work.
This is the output of my terminal when launching AO:
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QIODevice::read (QNetworkReplyHttpImpl): device not open
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QIODevice::read (QNetworkReplyHttpImpl): device not open
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
In the launcher, the following message appears:
Is someone experiencing similar issues?
Iam running Void Linux here, Kernel 4.10.13_1 (i know its not officially supported but it worked kinda fine till now)
Источник
ScudCloud Version
Paste the output for scudcloud --version
below:
ScudCloud 1.50 Python 3.5.2 Qt 5.5.1 PyQt 5.5.1 SIP 4.17
Distro and Desktop info
- Distribution:
- Version/Release:
- Desktop environment:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial
xfce
Expected behavior
Actual behavior
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
Steps to reproduce
- perhaps changing networks
- perhaps suspend on one network, resume where it’s absent and connect to a different one
For sure, Qt5 is bad on reconnect (I actually have to re-open Scudcloud when I’m disconnected from Internet for few hours). I’ll search if I can improve this in some way.
Hm, I’ve updated my qtwebkit, and the reconnect improved a lot. Maybe I should publish a package with it.
Perhaps so. Recent scudcloud ALWAYS needs a restart after network change.
@shevek Yeap, I’m investigating this. Even with new qtwebkit I’m facing this too. I’ll keep searching for a solution.
Thank you for adding this info, @jayme-github.
In a first moment I though to try to mimic some of the patch using Python, but after check the code, not an easy task (similar to how I’ve translated the spell suggester from Qupzilla).
But if this is not fixed yet…
Hm, yea — maybe the «new» problem is a different one. As said in #573 I can only see some errors in the webkit debug console, no QNetworkReplyImplPrivate
errors here.
Usually the QNetworkReplyImplPrivate
error is displayed in the command line (so, you have to start scudcloud from there).
Exactly the same problem here, running Ubuntu 16.04.2 LTS on Gnome3.
Usually the QNetworkReplyImplPrivate error is displayed in the command line (so, you have to start scudcloud from there).
Did that of cause. I only see messages like the following, but I’m unsure if they are related to this issue:
QObject::disconnect: Unexpected null parameter
Even using the internal browser reload, the Qt libraries appears to not reconnect properly. I was thinking to build a try/catch around these failures and fire a reload.
Yea, it’s completely strange and probably there is more than one specific issue. I did some further testing with the changes in jayme-github@af3cd54:
- When I change network from A to B the signal is triggered with new state: NotAccessible
- A signal for new state Accessible is never received, scudcloud stops functioning
- When I switch back from B to A the signal is triggered with new state: Accessible
- Even in this case the new state is not (always?) recognized by scudcloud e.g. «Page Reload» is needed to re-enable input in slack etc.
@raelgc do you know where those QObject::disconnect: Unexpected null parameter
messages are triggered?
@jayme-github I’m starting scudcloud by command line and I’ll watch it for the next hours.
This could be related: https://bugreports.qt.io/browse/QTBUG-57110
Laptop just woke up from suspend (on the same network as when going to sleep):
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/28"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/27"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/28"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/27"
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/30"
QObject::disconnect: Unexpected null parameter
2017-06-06 06:07:06.345186 _networkAccessibleChanged: 0
2017-06-06 06:07:06.345616 _networkAccessibleChanged: 0
2017-06-06 06:07:06.345664 _networkAccessibleChanged: 0
Switching networks does not bring back accessible state.
Very similar results after suspend/wakeup:
sys:1: Warning: Source ID 599 was not found when attempting to remove it
sys:1: Warning: Source ID 1656 was not found when attempting to remove it
QObject::disconnect: Unexpected null parameter
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
QObject::disconnect: Unexpected null parameter
#include <qnetworkreplyimpl_p.h>
Public Types |
|
enum | InternalNotifications { NotifyDownstreamReadyWrite, NotifyCloseDownstreamChannel, NotifyCopyFinished } |
typedef QQueue< InternalNotifications > | NotificationQueue |
enum | State { Idle, Buffering, Working, Finished, Aborted, WaitingForSession, Reconnecting } |
Public Types inherited from QIODevicePrivate | |
enum | AccessMode { Unset, Sequential, RandomAccess } |
Public Types inherited from QObjectPrivate | |
typedef void(* | StaticMetaCallFunction) (QObject *, QMetaObject::Call, int, void **) |
Public Types inherited from QNetworkHeadersPrivate | |
typedef QHash< QNetworkRequest::Attribute, QVariant > | AttributesMap |
typedef QHash< QNetworkRequest::KnownHeaders, QVariant > | CookedHeadersMap |
typedef QPair< QByteArray, QByteArray > | RawHeaderPair |
typedef QList< RawHeaderPair > | RawHeadersList |
Public Functions |
|
void | _q_bufferOutgoingData () |
void | _q_bufferOutgoingDataFinished () |
void | _q_cacheDestroyed () |
void | _q_copyReadChannelFinished () |
void | _q_copyReadyRead () |
void | _q_networkSessionConnected () |
void | _q_networkSessionFailed () |
void | _q_sourceReadChannelFinished () |
void | _q_sourceReadyRead () |
void | _q_startOperation () |
void | appendDownstreamData (QByteDataBuffer &data) |
void | appendDownstreamData (QIODevice *data) |
void | appendDownstreamData (const QByteArray &data) |
void | appendDownstreamDataDownloadBuffer (qint64, qint64) |
void | appendDownstreamDataSignalEmissions () |
void | backendNotify (InternalNotifications notification) |
void | completeCacheSave () |
void | consume (qint64 count) |
void | createCache () |
void | emitUploadProgress (qint64 bytesSent, qint64 bytesTotal) |
void | error (QNetworkReply::NetworkError code, const QString &errorString) |
void | finished () |
char * | getDownloadBuffer (qint64 size) |
void | handleNotifications () |
void | initCacheSaveDevice () |
bool | isCachingEnabled () const |
void | metaDataChanged () |
bool | migrateBackend () |
QAbstractNetworkCache * | networkCache () const |
qint64 | nextDownstreamBlockSize () const |
void | pauseNotificationHandling () |
QNetworkReplyImplPrivate () | |
void | redirectionRequested (const QUrl &target) |
void | resumeNotificationHandling () |
void | setCachingEnabled (bool enable) |
void | setDownloadBuffer (QSharedPointer< char > sp, qint64 size) |
void | setup (QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData) |
void | sslErrors (const QList< QSslError > &errors) |
Public Functions inherited from QNetworkReplyPrivate | |
QNetworkReplyPrivate () | |
Public Functions inherited from QIODevicePrivate | |
bool | isSequential () const |
virtual qint64 | peek (char *data, qint64 maxSize) |
virtual QByteArray | peek (qint64 maxSize) |
virtual bool | putCharHelper (char c) |
QIODevicePrivate () | |
virtual | ~QIODevicePrivate () |
Public Functions inherited from QObjectPrivate | |
void | _q_reregisterTimers (void *pointer) |
void | addConnection (int signal, Connection *c) |
void | cleanConnectionLists () |
void | connectNotify (const char *signal) |
void | deleteChildren () |
void | disconnectNotify (const char *signal) |
bool | isSender (const QObject *receiver, const char *signal) const |
bool | isSignalConnected (uint signalIdx) const |
Returns true if the signal with index signal_index from object sender is connected. More… | |
void | moveToThread_helper () |
QObjectPrivate (int version=QObjectPrivateVersion) | |
QObjectList | receiverList (const char *signal) const |
QObjectList | senderList () const |
void | setParent_helper (QObject *) |
void | setThreadData_helper (QThreadData *currentData, QThreadData *targetData) |
int | signalIndex (const char *signalName) const |
Returns the signal index used in the internal connectionLists vector. More… | |
virtual | ~QObjectPrivate () |
Public Functions inherited from QObjectData | |
virtual | ~QObjectData ()=0 |
Public Functions inherited from QNetworkHeadersPrivate | |
RawHeadersList | allRawHeaders () const |
RawHeadersList::ConstIterator | findRawHeader (const QByteArray &key) const |
QList< QByteArray > | rawHeadersKeys () const |
void | setAllRawHeaders (const RawHeadersList &list) |
Sets the internal raw headers list to match list. More… | |
void | setCookedHeader (QNetworkRequest::KnownHeaders header, const QVariant &value) |
void | setRawHeader (const QByteArray &key, const QByteArray &value) |
Public Variables |
|
QNetworkAccessBackend * | backend |
qint64 | bytesDownloaded |
qint64 | bytesUploaded |
bool | cacheEnabled |
QIODevice * | cacheSaveDevice |
QIODevice * | copyDevice |
char * | downloadBuffer |
qint64 | downloadBufferCurrentSize |
qint64 | downloadBufferMaximumSize |
QSharedPointer< char > | downloadBufferPointer |
qint64 | downloadBufferReadPosition |
QString | httpReasonPhrase |
int | httpStatusCode |
qint64 | lastBytesDownloaded |
QNetworkProxy | lastProxyAuthentication |
bool | notificationHandlingPaused |
QIODevice * | outgoingData |
QSharedPointer< QRingBuffer > | outgoingDataBuffer |
NotificationQueue | pendingNotifications |
qint64 | preMigrationDownloaded |
QList< QNetworkProxy > | proxyList |
QByteDataBuffer | readBuffer |
State | state |
QUrl | urlForLastAuthentication |
Public Variables inherited from QNetworkReplyPrivate | |
QNetworkReply::NetworkError | errorCode |
bool | isFinished |
QPointer< QNetworkAccessManager > | manager |
QNetworkAccessManager::Operation | operation |
qint64 | readBufferMaxSize |
QNetworkRequest | request |
QUrl | url |
Public Variables inherited from QIODevicePrivate | |
AccessMode | accessMode |
bool | baseReadLineDataCalled |
QIODevicePrivateLinearBuffer | buffer |
qint64 | devicePos |
QString | errorString |
bool | firstRead |
QIODevice::OpenMode | openMode |
qint64 * | pDevicePos |
qint64 | pos |
qint64 * | pPos |
qint64 | seqDumpPos |
Public Variables inherited from QObjectPrivate | |
union { | |
QObject * currentChildBeingDeleted | |
QAbstractDeclarativeData * declarativeData | |
}; | |
quint32 | connectedSignals [2] |
QObjectConnectionListVector * | connectionLists |
Sender * | currentSender |
QList< QPointer< QObject > > | eventFilters |
ExtraData * | extraData |
QString | objectName |
Connection * | senders |
QAtomicPointer< QtSharedPointer::ExternalRefCountData > | sharedRefcount |
QThreadData * | threadData |
void * | unused |
Public Variables inherited from QObjectData | |
uint | blockSig: 1 |
QObjectList | children |
uint | hasGuards: 1 |
uint | inEventHandler: 1 |
uint | inThreadChangeEvent: 1 |
uint | isWidget: 1 |
QMetaObject * | metaObject |
uint | ownObjectName: 1 |
QObject * | parent |
uint | pendTimer: 1 |
int | postedEvents |
QObject * | q_ptr |
uint | receiveChildEvents: 1 |
uint | sendChildEvents: 1 |
uint | unused: 22 |
uint | wasDeleted: 1 |
Public Variables inherited from QNetworkHeadersPrivate | |
AttributesMap | attributes |
CookedHeadersMap | cookedHeaders |
QWeakPointer< QObject > | originatingObject |
RawHeadersList | rawHeaders |
Additional Inherited Members |
|
Static Public Functions inherited from QNetworkReplyPrivate | |
static void | setManager (QNetworkReply *reply, QNetworkAccessManager *manager) |
Static Public Functions inherited from QObjectPrivate | |
static void | clearGuards (QObject *) |
static QObjectPrivate * | get (QObject *o) |
static void | resetCurrentSender (QObject *receiver, Sender *currentSender, Sender *previousSender) |
static Sender * | setCurrentSender (QObject *receiver, Sender *sender) |
static void | signalSignature (const QMetaMethod &signal, QVarLengthArray< char > *result) |
Static Public Functions inherited from QNetworkHeadersPrivate | |
static QDateTime | fromHttpDate (const QByteArray &value) |
static QByteArray | toHttpDate (const QDateTime &dt) |
Definition at line 110 of file qnetworkreplyimpl_p.h.
◆ NotificationQueue
◆ InternalNotifications
Enumerator | |
---|---|
NotifyDownstreamReadyWrite | |
NotifyCloseDownstreamChannel | |
NotifyCopyFinished |
Definition at line 113 of file qnetworkreplyimpl_p.h.
◆ State
Enumerator | |
---|---|
Idle | |
Buffering | |
Working | |
Finished | |
Aborted | |
WaitingForSession | |
Reconnecting |
Definition at line 119 of file qnetworkreplyimpl_p.h.
|
inline |
Definition at line 59 of file qnetworkreplyimpl.cpp.
71 {
72 }
QNetworkAccessBackend * backend
bool notificationHandlingPaused
qint64 downloadBufferReadPosition
qint64 preMigrationDownloaded
qint64 downloadBufferCurrentSize
QIODevice * cacheSaveDevice
qint64 lastBytesDownloaded
qint64 downloadBufferMaximumSize
◆ _q_bufferOutgoingData()
void QNetworkReplyImplPrivate::_q_bufferOutgoingData | ( | ) |
Definition at line 220 of file qnetworkreplyimpl.cpp.
Referenced by _q_bufferOutgoingDataFinished().
221 {
223
225
227
230 }
231
232 qint64 bytesBuffered = 0;
233 qint64 bytesToBuffer = 0;
234
235
238
239 if (bytesToBuffer <= 0)
240 bytesToBuffer = 2*1024;
241
244
245 if (bytesBuffered == -1) {
246
248
250 break;
251 } else if (bytesBuffered == 0) {
252
254
255 break;
256 } else {
257
259 }
260 }
261 }
void _q_bufferOutgoingData()
qint64 read(char *data, qint64 maxlen)
Reads at most maxSize bytes from the device into data, and returns the number of bytes read…
char * reserve(int bytes)
static bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
Creates a connection of the given type from the signal in the sender object to the method in the rece…
QSharedPointer< QRingBuffer > outgoingDataBuffer
virtual qint64 bytesAvailable() const
Returns the number of bytes that are available for reading.
void _q_bufferOutgoingDataFinished()
#define forever
This macro is provided for convenience for writing infinite loops.
◆ _q_bufferOutgoingDataFinished()
void QNetworkReplyImplPrivate::_q_bufferOutgoingDataFinished | ( | ) |
Definition at line 203 of file qnetworkreplyimpl.cpp.
Referenced by _q_bufferOutgoingData().
204 {
206
207
208
210 return;
211
212
215
216
218 }
void _q_bufferOutgoingData()
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
Disconnects signal in object sender from method in object receiver.
void _q_bufferOutgoingDataFinished()
◆ _q_cacheDestroyed()
void QNetworkReplyImplPrivate::_q_cacheDestroyed | ( | ) |
◆ _q_copyReadChannelFinished()
void QNetworkReplyImplPrivate::_q_copyReadChannelFinished | ( | ) |
◆ _q_copyReadyRead()
void QNetworkReplyImplPrivate::_q_copyReadyRead | ( | ) |
Definition at line 140 of file qnetworkreplyimpl.cpp.
Referenced by _q_copyReadChannelFinished(), appendDownstreamData(), and handleNotifications().
141 {
144 return;
146 return;
147
148
149
150
151
154 if (bytesToRead == 0)
155
156 break;
157
160 byteData.resize(bytesToRead);
161 qint64 bytesActuallyRead = copyDevice->read(byteData.data(), byteData.size());
162 if (bytesActuallyRead == -1) {
163 byteData.clear();
165 break;
166 }
167
168 byteData.resize(bytesActuallyRead);
170
174 break;
175 }
176
178 }
179
181
182 return;
183 }
184
190
191
192 emit q->readyRead();
194 totalSize.isNull() ? Q_INT64_C(-1) : totalSize.toLongLong());
196 }
The QVariant class acts like a union for the most common Qt data types.
bool isNull() const
Returns true if this is a NULL variant, false otherwise.
void resumeNotificationHandling()
The QByteArray class provides an array of bytes.
void append(QByteDataBuffer &other)
qint64 nextDownstreamBlockSize() const
virtual bool atEnd() const
Returns true if the current read and write position is at the end of the device (i.e.
const T value(const Key &key) const
Returns the value associated with the key.
qint64 read(char *data, qint64 maxlen)
Reads at most maxSize bytes from the device into data, and returns the number of bytes read…
qlonglong toLongLong(bool *ok=0) const
Returns the variant as a long long int if the variant has type() LongLong , Bool , ByteArray , Char , Double , Int , String , UInt , or ULongLong ; otherwise returns 0.
bool isOpen() const
Returns true if the device is open; otherwise returns false.
qint64 preMigrationDownloaded
void pauseNotificationHandling()
virtual bool isSequential() const
Returns true if this device is sequential; otherwise returns false.
void resize(int size)
Sets the size of the byte array to size bytes.
virtual qint64 bytesAvailable() const
Returns the number of bytes that are available for reading.
QByteDataBuffer readBuffer
qint64 lastBytesDownloaded
void backendNotify(InternalNotifications notification)
#define forever
This macro is provided for convenience for writing infinite loops.
◆ _q_networkSessionConnected()
void QNetworkReplyImplPrivate::_q_networkSessionConnected | ( | ) |
Definition at line 264 of file qnetworkreplyimpl.cpp.
265 {
267
269 return;
270
272 if (!session)
273 return;
274
276 return;
277
278 #ifndef QT_NO_NETWORKPROXY
279
281 #endif
282
287
289 break;
291
293 break;
294 default:
295 ;
296 }
297 }
QPointer< QNetworkAccessManager > manager
bool isNull() const
Returns true if the referenced object has been destroyed or if there is no referenced object; otherwi…
QList< QNetworkProxy > proxyList
QUrl url() const
Returns the URL this network request is referring to.
State state() const
Returns the state of the session.
The QNetworkProxyQuery class is used to query the proxy settings for a socket.
◆ _q_networkSessionFailed()
void QNetworkReplyImplPrivate::_q_networkSessionFailed | ( | ) |
Definition at line 299 of file qnetworkreplyimpl.cpp.
Referenced by _q_startOperation().
300 {
301
307 }
308 }
static QString translate(const char *context, const char *key, const char *disambiguation=0, Encoding encoding=CodecForTr)
void error(QNetworkReply::NetworkError code, const QString &errorString)
◆ _q_sourceReadChannelFinished()
void QNetworkReplyImplPrivate::_q_sourceReadChannelFinished | ( | ) |
◆ _q_sourceReadyRead()
void QNetworkReplyImplPrivate::_q_sourceReadyRead | ( | ) |
◆ _q_startOperation()
void QNetworkReplyImplPrivate::_q_startOperation | ( | ) |
Definition at line 74 of file qnetworkreplyimpl.cpp.
Referenced by setup().
75 {
76
78 qDebug(«QNetworkReplyImpl::_q_startOperation was called more than once»);
79 return;
80 }
82
83
84
85
90 return;
91 }
92
94 #ifndef QT_NO_BEARERMANAGEMENT
95
96
97
99
101
102 if (session) {
104
107
108 if (!session->isOpen())
109 session->open();
110 } else {
111 qWarning(«Backend is waiting for QNetworkSession to connect, but there is none!»);
116 }
117 #else
118 qWarning(«Backend start failed»);
123 #endif
124 return;
125 }
126
129 q_func()->setFinished(true);
130 } else {
134
136 }
137 }
138 }
QPointer< QNetworkAccessManager > manager
QNetworkAccessBackend * backend
NotificationQueue pendingNotifications
static QString translate(const char *context, const char *key, const char *disambiguation=0, Encoding encoding=CodecForTr)
Q_CORE_EXPORT void qDebug(const char *,…)
void append(const T &t)
Inserts value at the end of the list.
SessionError
This enum describes the session errors that can occur.
static bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
Creates a connection of the given type from the signal in the sender object to the method in the rece…
Q_CORE_EXPORT void qWarning(const char *,…)
QNetworkAccessManager::Operation operation
void _q_networkSessionFailed()
QString scheme() const
Returns the scheme of the URL.
void handleNotifications()
void error(QNetworkReply::NetworkError code, const QString &errorString)
virtual bool start()
Starts the backend.
◆ appendDownstreamData() [1/3]
void QNetworkReplyImplPrivate::appendDownstreamData | ( | QByteDataBuffer & | data | ) |
Definition at line 584 of file qnetworkreplyimpl.cpp.
Referenced by QNetworkAccessBackend::writeDownstreamData().
585 {
587 if (!q->isOpen())
588 return;
589
592 }
593
594 qint64 bytesWritten = 0;
595 for (int i = 0; i < data.bufferCount(); i++) {
597
601
602 bytesWritten += item.size();
603 }
605
608
610 }
The QByteArray class provides an array of bytes.
void append(QByteDataBuffer &other)
void appendDownstreamDataSignalEmissions()
const char * constData() const
Returns a pointer to the data stored in the byte array.
QIODevice * cacheSaveDevice
int size() const
Returns the number of bytes in this byte array.
QByteDataBuffer readBuffer
qint64 write(const char *data, qint64 len)
Writes at most maxSize bytes of data from data to the device.
qint64 bufferCount() const
qint64 lastBytesDownloaded
void initCacheSaveDevice()
◆ appendDownstreamData() [2/3]
void QNetworkReplyImplPrivate::appendDownstreamData | ( | QIODevice * | data | ) |
Definition at line 635 of file qnetworkreplyimpl.cpp.
636 {
638 if (!q->isOpen())
639 return;
640
641
643 qCritical(«QNetworkReplyImpl: copy from QIODevice already in progress — «
644 «backend probly needs to be fixed»);
645 return;
646 }
647
651
652
654 }
void _q_copyReadChannelFinished()
static const char * data(const QByteArray &arr)
Q_CORE_EXPORT void qCritical(const char *,…)
◆ appendDownstreamData() [3/3]
void QNetworkReplyImplPrivate::appendDownstreamData | ( | const QByteArray & | data | ) |
Definition at line 656 of file qnetworkreplyimpl.cpp.
657 {
659
660
661
662
663 qFatal(«QNetworkReplyImplPrivate::appendDownstreamData not implemented»);
664 }
Q_CORE_EXPORT void qFatal(const char *,…)
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun…
◆ appendDownstreamDataDownloadBuffer()
void QNetworkReplyImplPrivate::appendDownstreamDataDownloadBuffer | ( | qint64 | bytesReceived, |
qint64 | bytesTotal | ||
) |
Definition at line 704 of file qnetworkreplyimpl.cpp.
Referenced by QNetworkAccessBackend::writeDownstreamDataDownloadBuffer().
705 {
707 if (!q->isOpen())
708 return;
709
712
714
715
716
717
718
720 }
721
724
726
727
728
729
731 emit q->readyRead();
733 }
qint64 downloadBufferCurrentSize
QIODevice * cacheSaveDevice
qint64 write(const char *data, qint64 len)
Writes at most maxSize bytes of data from data to the device.
qint64 lastBytesDownloaded
void initCacheSaveDevice()
◆ appendDownstreamDataSignalEmissions()
void QNetworkReplyImplPrivate::appendDownstreamDataSignalEmissions | ( | ) |
Definition at line 612 of file qnetworkreplyimpl.cpp.
Referenced by appendDownstreamData().
613 {
615
620
621
622 emit q->readyRead();
623
624
626 totalSize.isNull() ? Q_INT64_C(-1) : totalSize.toLongLong());
627
629
632 }
The QVariant class acts like a union for the most common Qt data types.
bool isNull() const
Returns true if this is a NULL variant, false otherwise.
void resumeNotificationHandling()
qint64 nextDownstreamBlockSize() const
const T value(const Key &key) const
Returns the value associated with the key.
qlonglong toLongLong(bool *ok=0) const
Returns the variant as a long long int if the variant has type() LongLong , Bool , ByteArray , Char , Double , Int , String , UInt , or ULongLong ; otherwise returns 0.
qint64 preMigrationDownloaded
void pauseNotificationHandling()
void backendNotify(InternalNotifications notification)
◆ backendNotify()
Definition at line 387 of file qnetworkreplyimpl.cpp.
Referenced by _q_copyReadyRead(), and appendDownstreamDataSignalEmissions().
388 {
392
395 }
static void postEvent(QObject *receiver, QEvent *event)
Adds the event event, with the object receiver as the receiver of the event, to an event queue and re…
NotificationQueue pendingNotifications
QBool contains(const T &t) const
Returns true if the list contains an occurrence of value; otherwise returns false.
void enqueue(const T &t)
Adds value t to the tail of the queue.
int size() const
Returns the number of items in the list.
The QEvent class is the base class of all event classes.
◆ completeCacheSave()
void QNetworkReplyImplPrivate::completeCacheSave | ( | ) |
Definition at line 508 of file qnetworkreplyimpl.cpp.
Referenced by finished().
509 {
516 }
518 }
521 }
virtual bool remove(const QUrl &url)=0
Removes the cache entry for url, returning true if success otherwise false.
virtual void insert(QIODevice *device)=0
Inserts the data in device and the prepared meta data into the cache.
QAbstractNetworkCache * networkCache() const
QNetworkReply::NetworkError errorCode
QIODevice * cacheSaveDevice
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
Disconnects signal in object sender from method in object receiver.
◆ consume()
void QNetworkReplyImplPrivate::consume | ( | qint64 | count | ) |
◆ createCache()
void QNetworkReplyImplPrivate::createCache | ( | ) |
Definition at line 455 of file qnetworkreplyimpl.cpp.
Referenced by setCachingEnabled().
456 {
457
463 return;
465 }
QVariant attribute(Attribute code, const QVariant &defaultValue=QVariant()) const
Returns the attribute associated with the code code.
bool toBool() const
Returns the variant as a bool if the variant has type() Bool.
int toInt(bool *ok=0) const
Returns the variant as an int if the variant has type() Int , Bool , ByteArray , Char …
QAbstractNetworkCache * networkCache() const
◆ emitUploadProgress()
void QNetworkReplyImplPrivate::emitUploadProgress | ( | qint64 | bytesSent, |
qint64 | bytesTotal | ||
) |
Definition at line 523 of file qnetworkreplyimpl.cpp.
524 {
528 emit q->uploadProgress(bytesSent, bytesTotal);
530 }
void resumeNotificationHandling()
void pauseNotificationHandling()
◆ error()
◆ finished()
void QNetworkReplyImplPrivate::finished | ( | ) |
Definition at line 735 of file qnetworkreplyimpl.cpp.
Referenced by _q_networkSessionFailed(), _q_startOperation(), and QNetworkAccessBackend::finished().
736 {
738
740 return;
741
746
748 #ifndef QT_NO_BEARERMANAGEMENT
752
753 if (!totalSize.isNull()) {
756
759 return;
760 }
761 } else {
764 }
765 }
766 }
767 }
768 #endif
769 }
771
773 q->setFinished(true);
774
776
778 if (totalSize.isNull() || totalSize == -1) {
780 }
781
783 emit q->uploadProgress(0, 0);
785
786
789
790
791
792
794 emit q->readChannelFinished();
795 emit q->finished();
797 }
The QVariant class acts like a union for the most common Qt data types.
bool isNull() const
Returns true if this is a NULL variant, false otherwise.
QPointer< QNetworkAccessManager > manager
bool isNull() const
Returns true if the referenced object has been destroyed or if there is no referenced object; otherwi…
void resumeNotificationHandling()
static QString tr(const char *sourceText, const char *comment=0, int n=-1)
NotificationQueue pendingNotifications
const T value(const Key &key) const
Returns the value associated with the key.
qlonglong toLongLong(bool *ok=0) const
Returns the variant as a long long int if the variant has type() LongLong , Bool , ByteArray , Char , Double , Int , String , UInt , or ULongLong ; otherwise returns 0.
qint64 preMigrationDownloaded
void pauseNotificationHandling()
void clear()
Removes all items from the list.
QNetworkReply::NetworkError errorCode
QSharedPointer< QRingBuffer > outgoingDataBuffer
void error(QNetworkReply::NetworkError code, const QString &errorString)
◆ getDownloadBuffer()
char * QNetworkReplyImplPrivate::getDownloadBuffer | ( | qint64 | size | ) |
Definition at line 671 of file qnetworkreplyimpl.cpp.
Referenced by QNetworkAccessBackend::getDownloadBuffer().
672 {
674
676
677
679 if (bufferAllocationPolicy.isValid() && bufferAllocationPolicy.toLongLong() >= size) {
684
686 }
687 }
688
690 }
The QVariant class acts like a union for the most common Qt data types.
QVariant qVariantFromValue(const T &)
static void downloadBufferDeleter(char *ptr)
QVariant attribute(Attribute code, const QVariant &defaultValue=QVariant()) const
Returns the attribute associated with the code code.
QSharedPointer< char > downloadBufferPointer
qlonglong toLongLong(bool *ok=0) const
Returns the variant as a long long int if the variant has type() LongLong , Bool , ByteArray , Char , Double , Int , String , UInt , or ULongLong ; otherwise returns 0.
qint64 downloadBufferCurrentSize
bool isValid() const
Returns true if the storage type of this variant is not QVariant::Invalid; otherwise returns false…
qint64 downloadBufferMaximumSize
◆ handleNotifications()
void QNetworkReplyImplPrivate::handleNotifications | ( | ) |
Definition at line 397 of file qnetworkreplyimpl.cpp.
Referenced by _q_startOperation().
398 {
400 return;
401
404
406 return;
407
408 while (state == Working && !current.isEmpty()) {
410 switch (notification) {
414 else
416 break;
417
420 break;
421
426 break;
427 }
428 }
429 }
430 }
QQueue< InternalNotifications > NotificationQueue
virtual void closeDownstreamChannel()=0
QNetworkAccessBackend * backend
NotificationQueue pendingNotifications
virtual void downstreamReadyWrite()
bool notificationHandlingPaused
void clear()
Removes all items from the list.
virtual void copyFinished(QIODevice *)
The QIODevice class is the base interface class of all I/O devices in Qt.
◆ initCacheSaveDevice()
void QNetworkReplyImplPrivate::initCacheSaveDevice | ( | ) |
Definition at line 542 of file qnetworkreplyimpl.cpp.
Referenced by appendDownstreamData(), and appendDownstreamDataDownloadBuffer().
543 {
545
546
547
550 return;
551 }
552
553
557
558
560 if (redirectionTarget.isValid()) {
564 }
565
567
570 qCritical(«QNetworkReplyImpl: network cache returned a device that is not open — «
571 «class %s probably needs to be fixed»,
573
577 } else {
579 }
580 }
The QVariant class acts like a union for the most common Qt data types.
QNetworkAccessBackend * backend
virtual QNetworkCacheMetaData fetchCacheMetaData(const QNetworkCacheMetaData &metaData) const
virtual bool remove(const QUrl &url)=0
Removes the cache entry for url, returning true if success otherwise false.
iterator insert(const Key &key, const T &value)
Inserts a new item with the key and a value of value.
bool isOpen() const
Returns true if the device is open; otherwise returns false.
QAbstractNetworkCache * networkCache() const
virtual QIODevice * prepare(const QNetworkCacheMetaData &metaData)=0
Returns the device that should be populated with the data for the cache item metaData.
QIODevice * cacheSaveDevice
bool isValid() const
Returns true if the storage type of this variant is not QVariant::Invalid; otherwise returns false…
virtual const QMetaObject * metaObject() const
Returns a pointer to the meta-object of this object.
Q_CORE_EXPORT void qCritical(const char *,…)
◆ isCachingEnabled()
bool QNetworkReplyImplPrivate::isCachingEnabled | ( | ) | const |
◆ metaDataChanged()
void QNetworkReplyImplPrivate::metaDataChanged | ( | ) |
Definition at line 817 of file qnetworkreplyimpl.cpp.
Referenced by QNetworkAccessBackend::metaDataChanged().
818 {
820
821
829 if (jar)
831 }
832 emit q->metaDataChanged();
833 }
QPointer< QNetworkAccessManager > manager
bool isNull() const
Returns true if the referenced object has been destroyed or if there is no referenced object; otherwi…
QVariant attribute(Attribute code, const QVariant &defaultValue=QVariant()) const
Returns the attribute associated with the code code.
bool contains(const Key &key) const
Returns true if the hash contains an item with the key; otherwise returns false.
const T value(const Key &key) const
Returns the value associated with the key.
int toInt(bool *ok=0) const
Returns the variant as an int if the variant has type() Int , Bool , ByteArray , Char …
LoadControl
Indicates if an aspect of the request's loading mechanism has been manually overridden, e.
virtual bool setCookiesFromUrl(const QList< QNetworkCookie > &cookieList, const QUrl &url)
Adds the cookies in the list cookieList to this cookie jar.
The QNetworkCookieJar class implements a simple jar of QNetworkCookie objects.
T qvariant_cast(const QVariant &)
QNetworkCookieJar * cookieJar() const
Returns the QNetworkCookieJar that is used to store cookies obtained from the network as well as cook…
◆ migrateBackend()
bool QNetworkReplyImplPrivate::migrateBackend | ( | ) |
Definition at line 1043 of file qnetworkreplyimpl.cpp.
Referenced by _q_networkSessionConnected(), and finished().
1044 {
1046
1047
1049 return true;
1050
1051
1053 return false;
1054
1055
1057 return true;
1058
1059
1061 return false;
1062
1064
1068 }
1069
1072
1074
1076
1081 }
1082
1083 #ifndef QT_NO_HTTP
1084 if (qobject_cast<QNetworkAccessHttpBackend *>(backend)) {
1086 } else {
1088 }
1089 #else
1091 #endif // QT_NO_HTTP
1092
1093 return true;
1094 }
void clear()
Removes all items from the hash.
QPointer< QNetworkAccessManager > manager
QNetworkAccessBackend * backend
virtual bool canResume() const
void setParent(QObject *)
Makes the object a child of parent.
QNetworkReplyImplPrivate * reply
qint64 preMigrationDownloaded
QNetworkAccessManager::Operation operation
void clear()
Removes all items from the list.
virtual void setResumeOffset(quint64 offset)
◆ networkCache()
◆ nextDownstreamBlockSize()
qint64 QNetworkReplyImplPrivate::nextDownstreamBlockSize | ( | ) | const |
◆ pauseNotificationHandling()
void QNetworkReplyImplPrivate::pauseNotificationHandling | ( | ) |
◆ redirectionRequested()
void QNetworkReplyImplPrivate::redirectionRequested | ( | const QUrl & | target | ) |
◆ resumeNotificationHandling()
void QNetworkReplyImplPrivate::resumeNotificationHandling | ( | ) |
◆ setCachingEnabled()
void QNetworkReplyImplPrivate::setCachingEnabled | ( | bool | enable | ) |
Definition at line 472 of file qnetworkreplyimpl.cpp.
Referenced by QNetworkAccessBackend::setCachingEnabled().
473 {
476 return;
478 return;
479
480 if (enable) {
482
483 qCritical(«QNetworkReplyImpl: backend error: caching was enabled after some bytes had been written»);
484 return;
485 }
486
488 } else {
489
490
491 qDebug(«QNetworkReplyImpl: setCachingEnabled(true) called after setCachingEnabled(false) — «
492 «backend %s probably needs to be fixed»,
498 }
499 }
QNetworkAccessBackend * backend
virtual bool remove(const QUrl &url)=0
Removes the cache entry for url, returning true if success otherwise false.
Q_CORE_EXPORT void qDebug(const char *,…)
QAbstractNetworkCache * networkCache() const
QIODevice * cacheSaveDevice
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
Disconnects signal in object sender from method in object receiver.
virtual const QMetaObject * metaObject() const
Returns a pointer to the meta-object of this object.
Q_CORE_EXPORT void qCritical(const char *,…)
◆ setDownloadBuffer()
◆ setup()
Definition at line 311 of file qnetworkreplyimpl.cpp.
Referenced by QNetworkAccessManager::createRequest().
313 {
315
316 outgoingData = data;
317 request = req;
320
322
323
324 QVariant synchronousHttpAttribute = req.attribute(
326
327
330 qint64 previousDataSize = 0;
331 do {
335 }
336
339
340
342
343
345
346
347
349 } else {
350 bool bufferingDisallowed =
352 false).toBool();
353
354 if (bufferingDisallowed) {
355
356
359 } else {
362 }
363 } else {
364
367 }
368 }
369 } else {
370
371
372 #ifndef QT_NO_HTTP
375 } else {
377 }
378 #else
381 else
383 #endif // QT_NO_HTTP
384 }
385 }
The QVariant class acts like a union for the most common Qt data types.
virtual bool needsResetableUploadData()
void append(const QByteArray &qba)
bool toBool() const
Returns the variant as a bool if the variant has type() Bool.
QNetworkAccessBackend * backend
QUrl url() const
Returns the URL this network request is referring to.
void setSynchronous(bool sync)
static const char * data(const QByteArray &arr)
QNetworkAccessManager::Operation operation
virtual bool isSequential() const
Returns true if this device is sequential; otherwise returns false.
QSharedPointer< QRingBuffer > outgoingDataBuffer
QByteArray readAll()
Reads all available data from the device, and returns it as a QByteArray.
◆ sslErrors()
void QNetworkReplyImplPrivate::sslErrors | ( | const QList< QSslError > & | errors | ) |
Definition at line 840 of file qnetworkreplyimpl.cpp.
Referenced by QNetworkAccessBackend::sslErrors().
841 {
842 #ifndef QT_NO_OPENSSL
844 emit q->sslErrors(errors);
845 #else
847 #endif
848 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun…
◆ backend
◆ bytesDownloaded
qint64 QNetworkReplyImplPrivate::bytesDownloaded
◆ bytesUploaded
qint64 QNetworkReplyImplPrivate::bytesUploaded
◆ cacheEnabled
bool QNetworkReplyImplPrivate::cacheEnabled
◆ cacheSaveDevice
QIODevice* QNetworkReplyImplPrivate::cacheSaveDevice
◆ copyDevice
QIODevice* QNetworkReplyImplPrivate::copyDevice
◆ downloadBuffer
char* QNetworkReplyImplPrivate::downloadBuffer
◆ downloadBufferCurrentSize
qint64 QNetworkReplyImplPrivate::downloadBufferCurrentSize
◆ downloadBufferMaximumSize
qint64 QNetworkReplyImplPrivate::downloadBufferMaximumSize
◆ downloadBufferPointer
◆ downloadBufferReadPosition
qint64 QNetworkReplyImplPrivate::downloadBufferReadPosition
◆ httpReasonPhrase
QString QNetworkReplyImplPrivate::httpReasonPhrase
◆ httpStatusCode
int QNetworkReplyImplPrivate::httpStatusCode
◆ lastBytesDownloaded
qint64 QNetworkReplyImplPrivate::lastBytesDownloaded
◆ lastProxyAuthentication
◆ notificationHandlingPaused
bool QNetworkReplyImplPrivate::notificationHandlingPaused
◆ outgoingData
QIODevice* QNetworkReplyImplPrivate::outgoingData
◆ outgoingDataBuffer
◆ pendingNotifications
◆ preMigrationDownloaded
qint64 QNetworkReplyImplPrivate::preMigrationDownloaded
◆ proxyList
◆ readBuffer
◆ state
State QNetworkReplyImplPrivate::state
◆ urlForLastAuthentication
QUrl QNetworkReplyImplPrivate::urlForLastAuthentication
The documentation for this class was generated from the following files:
- /src/network/access/qnetworkreplyimpl_p.h
- /src/network/access/qnetworkreplyimpl.cpp
0
1
Всем привет! Решил запустить 2GIS в Opensuse 11.4 Evergreen. Команды file, ldd и «strings 2gis | grep LIB» дали понять что нужно glibc 2.15 и C++ Runtime 4.9. Склонировал в репозиторий OBS binutils и glibc из Opensuse 12.2 (я это сделал ещё для Steam), GCC 4.9 из репозитория devel:gcc для Opensuse 13.1 — эти зависимости удовлетворены. Теперь «ldd 2gis» — хочет Qt 5.4. Не беда, компильнул. Программа работает, но плохо: справочник пустой, поле «Отправить отзыв» не обновляется.
Наверное в Qt, идущем в составе программы, есть какие-то патчи — а может быть ДубльГИС-у не понравились мои патчи для «отвязывания» QtWebkit от ICU. Решил удовлетворять зависимости для Qt из архива с программой. libjpeg8, icu 52 и Gstreamer 1.x. Первое нашлось в репозитории, второе компильнул, третье компильнуть не удалось — нужен Glib 2.32, а в системе 2.28. К счастью, эта библиотека нашлась в стороннем репозитории, её не пришлось компилировать самостоятельно. И Gstreamer 1.4.3 компильнулся.
Наконец, /usr/lib/2GIS/v4/plugins/platforms/libqxcb.so захотел несколько недостающих библиотек libxcb — компильнул. Вот ошибки при запуске:
$ LD_LIBRARY_PATH=/usr/src/packages/BUILDROOT/gcc49-4.9.2+r216911-51.1.x86_64/usr/lib64/:/home/zenitur/icu/usr/local/lib:/home/zenitur/xcb/usr/local/lib 2gis
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
(2gis:12742): GStreamer-WARNING **: External plugin loader failed. This most likely means that the plugin loader helper binary was not found or could not be run. You might need to set the GST_PLUGIN_SCANNER environment variable if your setup is unusual. This should normally not be required though.
Ошибка сегментирования
Во втором и последующих запусках ошибка с Gstreamer больше не появлялась.
$ LD_LIBRARY_PATH=/usr/src/packages/BUILDROOT/gcc49-4.9.2+r216911-51.1.x86_64/usr/lib64/:/home/zenitur/icu/usr/local/lib:/home/zenitur/xcb/usr/local/lib 2gis
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
QSslSocket: cannot resolve TLSv1_1_client_method
QSslSocket: cannot resolve TLSv1_2_client_method
QSslSocket: cannot resolve TLSv1_1_server_method
QSslSocket: cannot resolve TLSv1_2_server_method
QSslSocket: cannot resolve SSL_select_next_proto
QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
QThread::start: Thread creation error: Ресурс временно недоступен
1 0x7fc34bde07b7 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(WTFCrash+0x17) [0x7fc34bde07b7]
2 0x7fc34bdf9c83 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3WTF10fastMallocEm+0x423) [0x7fc34bdf9c83]
3 0x7fc34bdfa4be /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3WTF16fastZeroedMallocEm+0xe) [0x7fc34bdfa4be]
4 0x7fc34bda0422 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x17e8422) [0x7fc34bda0422]
5 0x7fc34bdbf562 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3JSC9Structure22materializePropertyMapERNS_2VME+0x3f2) [0x7fc34bdbf562]
6 0x7fc34adc0b90 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x808b90) [0x7fc34adc0b90]
7 0x7fc34bc3dbca /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x1685bca) [0x7fc34bc3dbca]
8 0x7fc34bc3df55 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x1685f55) [0x7fc34bc3df55]
9 0x7fc2f6aa8b29 [0x7fc2f6aa8b29]
Ошибка сегментирования
После этой ошибки я обновил Openssl с 1.0.0 до 1.0.1 из этого репозитория. Вот как стало:
$ LD_LIBRARY_PATH=/usr/src/packages/BUILDROOT/gcc49-4.9.2+r216911-51.1.x86_64/usr/lib64/:/home/zenitur/icu/usr/local/lib:/home/zenitur/xcb/usr/local/lib 2gis
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
2gis: /usr/lib64/libxml2.so.2: no version information available (required by /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5)
QThread::start: Thread creation error: Ресурс временно недоступен
1 0x7fe8018557b7 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(WTFCrash+0x17) [0x7fe8018557b7]
2 0x7fe80189b085 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3WTF11OSAllocator18reserveUncommittedEmNS0_5UsageEbbb+0x55) [0x7fe80189b085]
3 0x7fe80188265c /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3WTF21PageAllocationAligned8allocateEmmNS_11OSAllocator5UsageEb+0x4c) [0x7fe80188265c]
4 0x7fe801586505 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x1559505) [0x7fe801586505]
5 0x7fe801585d19 /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x1558d19) [0x7fe801585d19]
6 0x7fe80158647b /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(_ZN3JSC15MarkedAllocator16allocateSlowCaseEm+0x11b) [0x7fe80158647b]
7 0x7fe8016bb25c /usr/lib/2GIS/v4/lib/libQt5WebKit.so.5(+0x168e25c) [0x7fe8016bb25c]
8 0x7fe7ac0ca891 [0x7fe7ac0ca891]
Ошибка сегментирования