summaryrefslogtreecommitdiffstats
path: root/src/network/socket
Commit message (Collapse)AuthorAgeFilesLines
* QLocalSocket: reorder device closingAlex Trotsenko2021-09-212-2/+4
| | | | | | | | | | | To allow reading from a slot connected to the aboutToClose() signal, we should call QIODevice::close() just before closing the inner device. This patch amends 21f3ff65b8df777b5726a68b09bbee39f1a893ec. Pick-to: 6.2 Change-Id: Ic8cd00497e1bdf923b980c26e9ca874b77e82f89 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Q{LocalSocket|Process}/Win: handle write errorsAlex Trotsenko2021-09-182-0/+13
| | | | | | | | | To match the Unix behavior, we should emit errorOccurred() signal and close the channel if the write operation fails. Change-Id: Iac3acb18dbbfe6e7e8afb2555d9adaff1fe98d0f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QWindowsPipeWriter: do not clear the buffer in thread pool callbackAlex Trotsenko2021-09-181-1/+1
| | | | | | | | | | | | | | | | | In a blocking application, receiving the results of write operations must be synchronized with the waitFor...() functions. But, clearing the buffer in another thread can cause the code localsocket.write(...); QVERIFY(localsocket.bytesToWrite() > 0); to fail unexpectedly, if the socket has been disconnected between the calls. So, defer resetting the buffer until checkForWrite() is called. Change-Id: I8c21036aab6a4c56d02c0d9a18d4bbce52d724f4 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Doc: Update a link to Windows SocketsLuca Di Sera2021-09-101-1/+1
| | | | | | | | | | | | | | | | | | | The link was to `msdn.microsoft.com` which now redirects to `docs.microsoft.com`. While the redirection works, our script to catch broken links on dev-snapshots builds of the documentation doesn't handle redirection correctly, reporting it as broken. Both to appease the broken-links script and to avoid an unneccesary redirection, the Winsock link in `qlocalsocket.cpp` was modified to point to the new address. Task-number: QTBUG-96127 Pick-to: 6.2 Change-Id: Idff5c2e96f7c90259219a554f73e16c37b81cafe Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Move QNAM's http header parsing into separate classØystein Heskestad2021-09-091-1/+1
| | | | | | Fixes: QTBUG-80701 Change-Id: I43f5e102c15d121dba74e07e3cd4bb8aded1c763 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Doc: Fix documentation warnings for Qt NetworkTopi Reinio2021-09-081-1/+4
| | | | | | | | | | | | | | | | The Clang compiler used in QDoc complained about the documentation- specific overload of QAbstractSocket::bind(): error: incomplete type 'QHostAddress' named in nested name specifier Also, fix an attempted snippet inclusion to use the \include command, and fix the comment tag spacing and indentation. Pick-to: 6.2 Fixes: QTBUG-96293 Change-Id: Ie4d78933fa7ac0aaf7f3bcc6487e7fd823db5123 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Doc: mark documentation of internal functions as such to silence qdocVolker Hilsheimer2021-09-061-0/+2
| | | | | | | | Pick-to: 6.2 Change-Id: I9523511b9adf40d1280fbf320c24a79aa2860ef2 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Luca Di Sera <luca.disera@qt.io>
* QLocalSocket/Win: fix waitFor...() functions for write-only socketAlex Trotsenko2021-09-021-8/+36
| | | | | | | | | | | | | | | | | There were several issues with the socket state checking when the pipe reader is not running: - the number of object handles in the WaitForMultipleObjectsEx() call might have been zero; - a call to the waitForDisconnected(-1) might have hung; - we did not perform a loop iteration for the waitFor...(0) calls, so disconnect detection was unreliable. These issues are related to the same code, so they don't seem to be addressable separately. Change-Id: I3bca872bb4191e6a7d38a693d81f7981af7fe145 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket: always open outer QIODevice in unbuffered modeAlex Trotsenko2021-08-012-1/+3
| | | | | | | | | | | The actual buffering is performed either in the inner socket (Unix), or in the pipeReader (Windows). To avoid unnecessary copying of data between buffers, enforce unbuffered mode for all implementations, which slightly improves read performance. Change-Id: Idb2a09f35823b9945c71231710290be12d9930f7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket: do not emit aboutToClose() twiceAlex Trotsenko2021-08-012-2/+0
| | | | | | | | | This signal is emitted by the QIODevice itself, so we don't have to forward it from the internal socket. Pick-to: 6.1 6.2 Change-Id: I85745f36d7a27d92f339a9184de3b6e5d46f6f34 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Allow to set Local Socket listen(2) backlogDaniel Nicoletti2021-07-278-14/+46
| | | | | | | | | | | | | | | 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>
* QLocalSocket/Win: allow delayed close to workAlex Trotsenko2021-07-252-16/+9
| | | | | | | | | | | | This mechanism was neither properly designed nor correctly tested initially on Windows. [ChangeLog][QtNetwork][Important Behavior Changes] QLocalSocket on Windows now implements delayed closing, which is consistent with the behavior on Unix. Change-Id: Ic3bc427e68eea7f18201f6129df19fbc87d68101 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket/Win: do not close the device on disconnectFromServer()Alex Trotsenko2021-07-241-5/+7
| | | | | | | | | | | | | It's the user's privilege to do so when they want to finish reading the QIODevice. Moreover, this is the only difference between close() and disconnectFromServer(). [ChangeLog][QtNetwork][Important Behavior Changes] The Windows implementation of QLocalSocket::disconnectFromServer() no longer calls close(), which is consistent with the behavior on Unix. Change-Id: Ie9ce20c60259a2b08f5254b719355bd7be9b17cd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket/Win: do not flush the pipe in disconnectFromServer()Alex Trotsenko2021-07-241-1/+0
| | | | | | | | | | | | | | | | | | In the case where we have pending data to write, calling flush() here may cause the device to close immediately, if the pipe writer already got a result of the last operation from the thread pool. In this scenario, the device does not enter the 'Closing' state, which leads the following code to unexpectedly fail on Windows socket.write(...); socket.disconnectFromServer(); QVERIFY(socket.waitForDisconnected()); Removing the call to flush() makes the behavior consistent with the implementation on Unix. Change-Id: Ic31fbc999be979c1e5befa8f132d9fb367f472ca Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket: call abort() instead of close() on destructionAlex Trotsenko2021-07-243-13/+9
| | | | | | | | | | | | The QLocalSocket destructor should immediately close the connection and destroy the socket, clearing any pending data in the write buffer. The abort() call ensures that the pipe is destroyed on Windows, making the additional call to destroyPipeHandles() from the private destructor unnecessary. Change-Id: Ic7a0d8cf2779cd933cded864c8bab0d096469499 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket/Win: remove unnecessary call to setWriteChannelCount()Alex Trotsenko2021-07-241-1/+0
| | | | | | | | | | We no longer use the QIODevice's internal write buffer. This patch amends 5b78d7fdcf9b758f117eaa65dc5eeddd0d4557e0 . Change-Id: Ife5a6ba3c2216d5a3e0a8278da98e0a36886d765 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket/Win: remove dead code in disconnectFromServer()Alex Trotsenko2021-07-241-8/+0
| | | | | | | | | The _q_pipeClosed() slot unconditionally removes the pipeWriter just before closing the pipe. Thus, if we have an invalid handle here, the pipe writer has already been destroyed anyway. Change-Id: I57463d8464afe6141c21a63851a56ebddabd3f13 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket/Unix: fix aborting the socketAlex Trotsenko2021-07-242-0/+2
| | | | | | | | | | | | | | | | | | According to the documentation, calling abort() should immediately reset the socket to its initial state. This includes: - closing the file descriptor; - closing the QLocalSocket as an I/O device; - canceling a pending outgoing connection, if it exist; - reseting 'serverName' string. So, adding a call to close() resets the state entirely. Pick-to: 6.1 6.2 Change-Id: I9c604b5187c6300b437d7aa4c2d06db03edacf21 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Allow to set TCP network listen(2) backlogDaniel Nicoletti2021-07-1910-13/+44
| | | | | | | | | | | | | | | | | | | | Qt has a hardcoded backlog value of 50, this allows for applications to tune this value. Modern kernels have the SYN cookie feature that reduces pressure from an flood attack, the backlog setting however is then a queue for most likely real completed (SYN/ACK) connections hence, it's easy to get clients connections dropped with this very small limit. [ChangeLog][QtNetwork][QTcpServer] Added QTcpServer::setListenBacklog() to be able to have control over the listen backlog feature. Change-Id: I1c78af6d99e012591e214b7e09fa85c485880d48 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QLocalSocket/Win: destroy the pipe before emitting final signalsAlex Trotsenko2021-07-141-4/+5
| | | | | | | | | | | | | | | | Both readChannelFinished() and disconnected() signals should be emitted after closing the pipe. Otherwise, these signals do not correspond to the state of the socket and may even be resent, if a slot connected to one of these signals processes events. [ChangeLog][QtNetwork][Important Behavior Changes] QLocalSocket on Windows now emits both readChannelFinished() and disconnected() signals after closing the pipe and emitting stateChanged(UnconnectedState), which is consistent with the behavior on Unix. Pick-to: 6.2 Change-Id: I1cc551b7897fdba3cec1fd6705f5396790818c7d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QLocalServer/Unix: don't allocate QTemporaryDir just to make it optional<>Marc Mutz2021-07-121-2/+4
| | | | | | | Use std::optional<> instead. Change-Id: Ic33ae2dd71f2b6c4347dac7c4be4dc6227edf425 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix some documentation warningsAndreas Buhr2021-07-121-1/+1
| | | | | Change-Id: Icb6a689e4c4c8272df2f72fd99aaa8d258e4e7b2 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QLocalSocket/Win: reimplement skipData() functionAlex Trotsenko2021-07-081-1/+6
| | | | | | | | The base implementation discards the data by reading into a dummy buffer, which is slower than necessary. Change-Id: Iabf0c4a25746af6cac5b61d7bda66d89501c808c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket/Win: fix typo in function nameAlex Trotsenko2021-07-071-3/+3
| | | | | | | Amends b3fbfcd3738a0ff864439499390513b95ca671aa. Change-Id: If6557f851324cdbb89af6c89e7b792a777d2dedd Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket: reimplement readLineData() functionAlex Trotsenko2021-07-065-9/+51
| | | | | | | | The base implementation reads data using repeated calls to getChar(), which is quite slow. Change-Id: Ie46624df63791b2cdd3c8a28fe3327427d942505 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Consistent indentation for BINDABLE propertiesAndreas Buhr2021-06-242-2/+4
| | | | | | | | | Triggered by API review in Gerrit patch 355960. Task-number: QTBUG-94407 Pick-to: 6.2 Change-Id: I7cafc1cc9d4b929040b53c6bf92c91d73c3b39f2 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* SCTP: fix qsizetype missThiago Macieira2021-06-231-2/+2
| | | | | | | | | | Found by clang 12: qsctpsocket.cpp:172:56: error: result of comparison of constant 9223372036854775782 with expression of type 'int' is always true [-Werror,-Wtautological-constant-out-of-range-compare] Q_ASSERT((datagramSize + int(bytesToRead)) < MaxByteArraySize); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~ Change-Id: I7246c3e7bb894e0d9521fffd168af11764956d8f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QLocalSocket/Win: simplify flush()Alex Trotsenko2021-06-191-4/+2
| | | | | | | | | | Replacing a call to waitForWrite(0) with checkForWrite() changes nothing in logic, but saves one system call. As a result, unused functions in the QWindowsPipeWriter class have been removed. Change-Id: I34ec6310d9659f59a720056b9be54e31f2193116 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QNativeSocketEngine: Delete old win7 compat codeMårten Nordheim2021-06-141-31/+3
| | | | | | | | | It's no longer used today. And while we're at it: delete or fix typos in some nearby comments Change-Id: Ib52268eeb936e71d6c09aece2e0833b99309ef2d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QLocalSocket/Win: avoid double buffering on writeAlex Trotsenko2021-06-092-31/+11
| | | | | | | | | As QWindowsPipeWriter now maintains a chunk queue, there is no need to use the internal QIODevice buffer and wait for the previous operation to complete. Change-Id: Id4d54edfe920aeb4a534980cb0cc85a56c067a70 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QHttpSocketEngine: Fix memory leakMårten Nordheim2021-06-091-1/+1
| | | | | | | | The reply needs to be parented or it's not guaranteed to be deleted Pick-to: 6.2 6.1 5.15 Change-Id: I7cbc31682f80dbbd9fb240fff9e6781cb6ca7b36 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Consolidate debug string generationAlex Trotsenko2021-05-313-125/+20
| | | | | | | | | | | | | | Several QIODevice subclasses use the qt_prettyDebug() function to get a printable representation of the buffer data for debug output. Rather than having this feature statically implemented in each respective file, this patch introduces a generic function in the QtDebugUtils namespace. Accordingly, some inaccuracies in the use-cases have been corrected. Change-Id: I1a8465cab08c8acf5fdcdba5085182511b1cbb7b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QLocalSocket/Win: fix closed state detection in waitFor...() functionsAlex Trotsenko2021-05-183-17/+21
| | | | | | | | | | | A delayed close should only be completed in the _q_bytesWritten() slot as a confirmation of a successful write operation on the socket. Otherwise, a failed write operation may cause the socket to be closed unexpectedly within the waitFor...() function, which may result in a malfunction. Change-Id: I14cff26734f64a89090b6b5c13037466a6400597 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket/Win: implement duplex communication in blocking modeAlex Trotsenko2021-05-062-23/+117
| | | | | | | | | | | | | | | | [ChangeLog][QtNetwork][QLocalSocket] The waitFor*() functions on Windows now support duplex operation, as they already did on Unix. As a side effect, this restores the behavior that a single call to waitForReadyRead() won't emit both readyRead() and disconnected(), which also matches Unix behavior. The groundwork for that misbehavior was laid by incorrect refactoring in d1a671b69 already, but at this point it was harmless, as the pipe couldn't be newly closed after a successful read. That changed with f265c87e0, which made the queuing of signals async. Change-Id: I1eb80e8f147bb58825143e0fe1e4300c59ae0fbb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket: declare operators for the SocketOptions flagGiuseppe D'Angelo2021-05-021-0/+2
| | | | | | | The flag existed, without the operators. Change-Id: I386f76b358422fbfc3fbd7b227901803ec27202d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QLocalSocket: fix inclusions in namespaced buildsGiuseppe D'Angelo2021-05-021-1/+4
| | | | | | | | | An include statement appeared after opening the Qt namespace, thus injecting symbols in there. Move it outside. Change-Id: I8e95e821b36ad4e4ceed5b0645bf8ebf7e531e06 Pick-to: 5.15 6.0 6.1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add Solaris support in cmake buildNiclas Rosenvik2021-04-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add SOLARIS cmake platform definition. Add settings for QT_DEFAULT_MKSPEC so that qplatformdefs.h can be found. Solaris has its gssapi symbols in libgss. Solaris supports @ORIGIN. Solaris ld does not support --dynamic-list needed for reduce relocations. Make solaris fail the reduce relocation test. getauxval is specific to GNU libc and some other libc implementations on Linux but sys/auxv.h is not. The bootstrap uses sys/aux.h as the only indication for getauxval. This breaks builds on Solaris, so only make sys/auxv.h an indicator for getauxval on linux or glibc based systems. Solaris uses X11 so add it to the X11_SUPPORTED list. Solaris network libraries for sockets etc are in socket and nsl. ifreq does not have a member ifr_ifindex on Solaris, it uses ifr_index. Add test to check if ifr_index is a member of ifreq. The first struct in the in_addr union on solaris is defined as four uint8_t, therefore four arguments are needed for its initializer list. Change-Id: Ieed4c1bbac8559a7ae1db9c4e1e91f609f150270 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QWindowsPipe{Reader|Writer}: restructure signalsAlex Trotsenko2021-04-152-6/+33
| | | | | | | | | | | | | | | | | | | For QProcess, there is no point in suppressing recursive QWPR::readyRead() emission, as the former manages this logic itself. On top of that, the non-recursive nature of QWPR::readyRead() indirectly disallowed reading from the channels inside QProcess::waitForReadyRead(), if that is called from a slot connected to QProcess::readyRead(). QWPW had two signals, one allowing recursion and one not. This commit allows recursion of QWPR::readyRead() and QWPW::bytesWritten(), and moves recursion suppression to the higher- level classes. This makes the code more uniform and efficient, at the cost of a few duplicated lines. Change-Id: Ib20017fff4d92403d0bf2335f1622de4aa1ddcef Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Document QLocalSocket::socketOptions as a propertyVolker Hilsheimer2021-04-131-8/+5
| | | | | | Change-Id: Ifda55ac7afb3fb30d973a01104b012959ae285ab Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Linux: Add abstract address support for QLocal{Socket,Server}Piotr Mikolajczyk2021-04-017-46/+243
| | | | | | | | | | | | | Takes advantage of Linux's and Android's support for abstract namespace when binding sockets, which is independent of the filesystem (see man entry for unix domain sockets). To make QLocalServer and QLocalSocket use an abstract socket address, one needs to set the socket options to QLocalServer::AbstractNamespaceOption. Fixes: QTBUG-16090 Change-Id: Ia9f9c9cc1ac5c28f9d44b0a48d854a7cfbd39b11 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QLocalSocket/Win: fix possible UB in _q_pipeClosed()Alex Trotsenko2021-03-311-5/+2
| | | | | | | | | We must stop the pipe writer before closing the handle on which it operates. Pick-to: 5.15 6.0 6.1 Change-Id: I4765dd8393167fe2453653aba76a097b8ace8e3d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QLocalSocket: fix signal name in docsAlex Trotsenko2021-03-311-1/+1
| | | | | | | | It should be disconnected() instead of disconnectedFromServer(). Pick-to: 6.0 6.1 Change-Id: I2b816e9c92d675ea5a7a26b4752e831c30950ef2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* QHostAddress: prepare moving NetworkLayerProtocol from QAbstractSocketThiago Macieira2021-03-181-1/+14
| | | | | | | | | | This can only be completed in Qt 7, due to BC guarantees. I've only updated the source code for QHostAddress and its unit test and even then I did not touch the documentation. This needs to be completed in Qt 7.0 Change-Id: I26b8286f61534f88b649fffd166b695882f8f3b5 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QAbstractSocket: fake a bind(QHostAddress::SpecialAddress)Thiago Macieira2021-03-184-0/+38
| | | | | | | | | | | | | | | | | | | | | | Because this is misleading: socket.bind(QHostAddress::AnyIPv4); The conversion of enum to int has preference over the construction of QHostAddress from enum, so that ends up calling bind(6), which attempts to bind to privileged port 6 and just returns with error. Meanwhile, socket.bind(QHostAddress::AnyIPv4, 0); does construct the QHostAddress because that is preferred to converting the int to the BindMode enum. Ideally we'd simply add the overload to QAbstractSocket but we can't do that because QHostAddress depends on QAbstractSocket. So I've added a Qt7 task to invert that dependency. Change-Id: I26b8286f61534f88b649fffd166b683266597796 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Remove unreachable codeTang Peng2021-03-111-1/+0
| | | | | | | | Having a `break` after a `return` is pointless as it's never reached. Change-Id: I30877e926c006fac45681f547e97a55410f02e43 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Assert that we have a socketEngine before calling itVolker Hilsheimer2021-02-251-0/+1
| | | | | | | | | | | | If we are connected or bound, then we must have an engine. Otherwise in code we frequently test for the d->socketEngine pointer, including in waitForConnected. Fixes static anlyzer warning 3b37ce4102843c97ceef2b7bb68a409d. Pick-to: 6.1 Change-Id: Ib9818282ad2813db97859cbe1f184bcfb5ea4ab4 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Remove redundant invalid socket checkEdward Welbourne2021-02-182-10/+6
| | | | | | | | | It happens after the same socket check has lead to an early return. Prompted by a PVS-studio article. Change-Id: I63b42abed9102df73d29e6ff8a89a475751d4b91 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Shrink the memory footprint of QLocalSocketPrivatePiotr Mikolajczyk2021-02-011-3/+2
| | | | | | | | Member variables have been reordered to reduce the memory footprint by 8 bytes. Change-Id: Ib03f916c065861fa317f8802695363fd152e314a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Port QLocalServer to the new property systemTimur Pocheptsov2021-01-275-12/+23
| | | | | | Task-number: QTBUG-85520 Change-Id: Iee43a2e9e2d4847dad3b8be345d562af9aa3b690 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-071-84/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>