diff options
author | Daniel Nicoletti <daniel.nicoletti@kdab.com> | 2021-06-30 17:18:02 -0300 |
---|---|---|
committer | Daniel Nicoletti <daniel.nicoletti@kdab.com> | 2021-07-27 16:47:31 -0300 |
commit | 8f75ab231fafc136fef4b973f1241b9b2db30312 (patch) | |
tree | c634d4ba891a6d13f06368f502eba81f7f61e2ae /src/network/socket/qlocalserver.cpp | |
parent | e4fd86d53af3e7a949752f5558c137bb1c8c5fa6 (diff) |
Allow to set Local Socket listen(2) backlog
Unix sockets do not suffer from SYN flood, thus the hardcoded value to
50 is size of the only queue to hold connections to be accepted,
resulting in dropped connections when the limit is reached.
On Windows the hardcoded value is 8, this patch changes the default to
50 matching UNIX.
[ChangeLog][QtNetwork][QLocalServer] Added setListenBacklogSize() to
be able to have control over the listen backlog feature.
Change-Id: Iaee6349a46b75b0bd05e40e7ade5948f1cf9f407
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/network/socket/qlocalserver.cpp')
-rw-r--r-- | src/network/socket/qlocalserver.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/network/socket/qlocalserver.cpp b/src/network/socket/qlocalserver.cpp index 6517d6dc6a..0e0cd755a4 100644 --- a/src/network/socket/qlocalserver.cpp +++ b/src/network/socket/qlocalserver.cpp @@ -554,6 +554,36 @@ bool QLocalServer::waitForNewConnection(int msec, bool *timedOut) return !d->pendingConnections.isEmpty(); } +/*! + Sets the backlog queue size of to be accepted connections to \a + size. The operating system might reduce or ignore this value. + By default, the queue size is 50. + + \note This property must be set prior to calling listen(). + + \since 6.3 + + \sa listenBacklogSize() +*/ +void QLocalServer::setListenBacklogSize(int size) +{ + Q_D(QLocalServer); + d->listenBacklog = size; +} + +/*! + Returns the backlog queue size of to be accepted connections. + + \since 6.3 + + \sa setListenBacklogSize() +*/ +int QLocalServer::listenBacklogSize() const +{ + Q_D(const QLocalServer); + return d->listenBacklog; +} + QT_END_NAMESPACE #include "moc_qlocalserver.cpp" |