Qnetworkreplyimplprivate error internal problem this method must only be called once

QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. #844 Comments 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 […]

Содержание

  1. QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. #844
  2. Comments
  3. QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. #546
  4. Comments
  5. ScudCloud Version
  6. Distro and Desktop info
  7. Expected behavior
  8. Actual behavior
  9. Steps to reproduce
  10. Footer
  11. QNetworkReplyImplPrivate printed to stdout #509
  12. Comments
  13. Exceptions when handling exceptions #544
  14. Comments
  15. ScudCloud Version
  16. Distro and Desktop info
  17. Expected behavior
  18. Actual behavior
  19. Steps to reproduce
  20. [SOLVED]Linux error downloading manifest.xml
  21. [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

  1. perhaps changing networks
  2. 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)

Источник

@shevek

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

  1. perhaps changing networks
  2. perhaps suspend on one network, resume where it’s absent and connect to a different one

@raelgc

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.

@raelgc

Hm, I’ve updated my qtwebkit, and the reconnect improved a lot. Maybe I should publish a package with it.

@shevek

Perhaps so. Recent scudcloud ALWAYS needs a restart after network change.

@raelgc

@shevek Yeap, I’m investigating this. Even with new qtwebkit I’m facing this too. I’ll keep searching for a solution.

@raelgc

@jayme-github

@raelgc

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… :(

@jayme-github

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.

@raelgc

Usually the QNetworkReplyImplPrivate error is displayed in the command line (so, you have to start scudcloud from there).

@kristijan-ujevic

Exactly the same problem here, running Ubuntu 16.04.2 LTS on Gnome3.

@jayme-github

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

@raelgc

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.

@jayme-github

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?

@raelgc

@jayme-github I’m starting scudcloud by command line and I’ll watch it for the next hours.

@jayme-github

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.

@raelgc

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.

QNetworkReplyImplPrivate::QNetworkReplyImplPrivate ( )
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]
Ошибка сегментирования

Понравилась статья? Поделить с друзьями:
  • Qmodmanager subnautica error
  • Qml is not a type error
  • Ql query error при обновлении битрикс
  • Qiwi платеж не проведен внутренняя ошибка
  • Qiwi ошибочный перевод как вернуть