Comments (4)
You are correct, and the behaviour you describe applies both to QXmpp based clients and servers. I have made a change to QXmppStream so that the end of the incoming stream triggers closing the outgoing stream. Can you please confirm this fixes your issue?
Re-reading the RFC brings to mind another issue: to be fully compliant with the RFC we should not close the TCP socket until the incoming stream has been closed. However I am reluctant to make this change at this point as I fear it will potentially cause regressions in the form of "hung" connections.
from qxmpp.
Thank you for the fix - you were too fast, I already was preparing a pull request...
Your solution looks similar to my approach, however I'm going to test it this afternoon and leave a reply.
I agree with your concern regarding the TCP socket: For instance (if my observations are correct) the client library jabber-net has a bug and doesn't close the TCP connection after receiving the closed strem.
from qxmpp.
The test was successful.
(The jabber-net based client keeps a connection in state CLOSE_WAIT, but this is a problem of jabber-net and not qxmpp.)
from qxmpp.
Good news!
from qxmpp.
Related Issues (20)
- PubSubEvent: Extra event type for retract (instead of sharing with items query)
- ClientExtension: Save allocation of empty d ptr
- Use generate_export_headers for base/client/server module
- Rename QXmppTuneItem to QXmppUserTuneItem
- How to check if a QXmppMessage has the delay element attached? HOT 3
- Broken discovery manager HOT 1
- Write changelog for QXmpp 1.5
- qxmpp 1.5.0 build failure HOT 3
- Crash when downloading a file using the file sharing manager
- Enable parallel installation of Qt5 and Qt6 version HOT 2
- Aborted(core dump) on server example HOT 2
- Crash in EntityTimeManager HOT 2
- Build FAILED HOT 1
- Build QXmppOmemo statically with BUILD_SHARED_LIBS=OFF
- Link error and QXMPP cannot be used HOT 5
- [1.5] Tests hang when building with Qt6 HOT 1
- XEP-0016 Privacy Lists HOT 1
- Add a simple tic-tac-toe two players game as an example. HOT 1
- Help with using the server
- 'QXmppPubSubBaseItem': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_trivially_constructible' HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qxmpp.