summaryrefslogtreecommitdiff
path: root/src/libs/ssh/sshremoteprocess.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of SshRemoteProcessJarek Kobus2022-05-091-116/+0
| | | | | | | | It's being replaced by QtcProcess with path on device. Change-Id: I29eb038d1b17151683f86855eb547e47f7f7dea5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: hjk <hjk@qt.io>
* Move setupSshEnvironment() into SshConnectionParametersJarek Kobus2022-05-091-20/+2
| | | | | | | | As we are going to remove SshRemoteProcess. Change-Id: I07cf246791f1adb6cfc454935d7e330c2f1d4dc7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: hjk <hjk@qt.io>
* ProcessInterface: Get rid of state() methodJarek Kobus2022-04-141-2/+2
| | | | | | | | | This is fully controlled by QtcProcess itself, so provide general implementation of state() inside QtcProcess. Task-number: QTCREATORBUG-27358 Change-Id: Id6f0b771ed933f870b80d6856c6d94896f946516 Reviewed-by: hjk <hjk@qt.io>
* Introduce ProcessResultDataJarek Kobus2022-04-111-3/+5
| | | | | | | | | It should be useful when reimplementing ProcessInterface. It replaces 4 virtual methods with just 1. Task-number: QTCREATORBUG-27358 Change-Id: I2dafbfbc25f8f016ff2aa19c1a176335a4a7498c Reviewed-by: hjk <hjk@qt.io>
* QtcProcess: Introduce done() signalJarek Kobus2022-04-041-8/+1
| | | | | | | | | | | | | | | | Introduce QtcProcess::done() signal. It's similar to QtcProcess::finished() signal, but also emitted when process failed to start (so after QProcess::FailedToStart error occurred). SshRemoteProcess::finished() signal was already behaving like this. So, we remove special handling of FailedToStart error in this class and connect all clients of SshRemoteProcess to done() signal, instead of finished(). Task-number: QTCREATORBUG-27232 Change-Id: If4240e2172f3f706e812bca669a1d5b24bdc3285 Reviewed-by: hjk <hjk@qt.io>
* QtcProcess: Get rid of setErrorString() methodJarek Kobus2022-04-041-1/+9
| | | | | | | | | | | | It's internal method, not meant to be used outside. It's only used in case of FailedToStart error. Remove it also from ProcessInterface. Leave it inside DefaultImpl and its subclasses only. Remove m_errorString field from ProcessSetupData. Change-Id: Ie605b95c2ff605ab1259045f1a5b16049207c1d3 Reviewed-by: hjk <hjk@qt.io>
* SshRemoteProcess: Rename done() -> finished()Jarek Kobus2022-02-281-9/+13
| | | | | | Change-Id: I9c22d075f50b0a2a171cbda11c7579e4735f3f4e Reviewed-by: hjk <hjk@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* SshRemoteProcess: Get rid of error arg from done() signalJarek Kobus2022-02-281-4/+3
| | | | | | | Prepare for signal rename done() -> finished(). Change-Id: I81a7bd0a4826ce6200f4af47ba5868ceedb42206 Reviewed-by: hjk <hjk@qt.io>
* Get rid of SshProcess (one process class less)Jarek Kobus2022-02-211-5/+26
| | | | | | | | | Introduce static SshRemoteProcess::setupSshEnvironment() method instead. Change-Id: I9a49bc68bd96ddf0f58234d28b92a721f7d4bb56 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Ssh: Drop ProcessMode from c'tors and creator methodsJarek Kobus2022-02-181-3/+2
| | | | | | Change-Id: I2db51f26d9a841f60d5ab3722fa82b3a89d57146 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: hjk <hjk@qt.io>
* Fix crash reporting in output pane when remote run in terminalJarek Kobus2022-02-091-2/+0
| | | | | | | Fixes: QTCREATORBUG-27007 Change-Id: I6e409eb6489530dc6c48c90d20e28ff019eff187 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* QtcProcess: Get rid of useTerminalJarek Kobus2022-01-281-2/+2
| | | | | | | | | | | | | | | Remove SshRemoteProcessRunner::runInTerminal() method, it wasn't used anywhere (just in test). Remove QtcProcess::useTerminal, as process should be created in TerminalOn mode when there is a need for terminal. Add a parameter to SshRemoteProcess::fullLocalCommandLine(bool inTerminal) as this may still be needed when running application through ssh from terminal (ssh -tt option). Change-Id: I71911082fcca190b82a1106a2ca1ca48dc5d4c79 Reviewed-by: hjk <hjk@qt.io> (cherry picked from commit 95a9b22f6fe07f8417ad94722d456d4a5730f068)
* Ssh: Simplify SshRemoteProcess interface a bithjk2022-01-031-33/+12
| | | | | | Change-Id: I6871b16c05172d6b705f666c7962dd82320c6e8f Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Ssh: Use base QtcProcess' useTerminal for SshRemoteProcesshjk2021-12-061-7/+1
| | | | | | | | | Still trying to ramp down non-QtcProcess interfaces. Change-Id: I6b4ae6788f5021959ff3eb35bbade2157a6d67fa Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Utils/Ssh: Move SshRemoteProces::isRunning() to QtcProcess basehjk2021-12-061-5/+0
| | | | | | | ... and use it on a few places. Change-Id: Id2cea709e355a46821a720e593740ac032888ced Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Ssh: Re-base SshProcess on top of QtcProcessJarek Kobus2021-09-131-9/+12
| | | | | Change-Id: I266820e0e2ea12d6e4a5a83a679a7279fab9cd83 Reviewed-by: hjk <hjk@qt.io>
* Move CommandLine out of fileutils.hEike Ziller2021-05-111-1/+1
| | | | | | | | | to ProcessArgs and rename the files to commandline.*. fileutils was a strange place for CommandLine, and this reduces the dependencies needed for sdktool. Change-Id: I9d7e8ffe8a3560f5d12934457b086f9446976883 Reviewed-by: hjk <hjk@qt.io>
* Ssh: Use Utils::CommandLine in SshRemoteProcesshjk2019-07-231-12/+16
| | | | | Change-Id: I074ca3e1e8ec8ce990d6b314a4a87de2f656566c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* SSH: Pass remote command as QStringChristian Kandeler2019-05-241-3/+3
| | | | | | | | | | The old implementation sent the command over the wire as-is, so we declared it as a QByteArray and let the caller choose the encoding. This doesn't make sense anymore, as the command is now passed to an external process as a QString anyway. Change-Id: Ib84bc0f871db2b45b93f71d924c4177cc28d3bb0 Reviewed-by: hjk <hjk@qt.io>
* Merge remote-tracking branch 'origin/4.9'Eike Ziller2019-03-141-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qbs/modules/qtc/qtc.qbs qtcreator.pri src/plugins/debugger/debuggerkitinformation.cpp src/plugins/languageclient/languageclientmanager.cpp src/plugins/plugins.pro src/plugins/projectexplorer/kit.cpp src/plugins/projectexplorer/kitmanager.cpp Change-Id: I66fb941202991f35f7d7761430b21e42dfc678a8
| * SSH: Fix error messageRobert Loehning2019-03-071-1/+1
| | | | | | | | | | | | | | | | A binary cannot crash. When executing the binary, a process is created which can crash. Change-Id: I0dc3d41c84b55fefda7e98353390b49bb51a288f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | Replace static_casts by QOverload where possiblehjk2019-02-261-3/+1
|/ | | | | | | | | Mainly to get rid of the QProcess::finished deprecation warning. Also adjust coding style in the surrounding connects when needed. Change-Id: I12f9b248c7974b892c4a069356e578e80f8c59e9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* RemoteLinux: Support terminal aspectChristian Kandeler2019-01-111-8/+17
| | | | | | | | | | This is possible now that the remote process is started via a local tool. [ChangeLog] Remote Linux applications can be run in a terminal now. Change-Id: I9f7df87563a18880d85c6d16ad18fb10a4d9f0e0 Reviewed-by: hjk <hjk@qt.io>
* SSH: Fix exit status/exit code interpretationChristian Kandeler2018-12-141-1/+6
| | | | | | | | A "regular" exit of the ssh binary with exit code 255 means that the remote process has crashed. Change-Id: I82e6e44079041459e78e4f8f7e7b6e5cbcaa6c44 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* SSH: Use OpenSSH toolsChristian Kandeler2018-12-131-335/+50
| | | | | | | | | | | | | | | | | | | | | | | | ... instead of our own SSH library. Advantages: - Full compatibility with OpenSSH behavior guaranteed. - Minimal maintenance effort. - Less code to build. - Big chunk of 3rd party sources can be removed from our repository. One the downside, Windows users now need to install OpenSSH for RemoteLinux support. Hoewever, people doing embedded development probably have it installed anyway. [ChangeLog] Switched SSH backend to OpenSSH Fixes: QTCREATORBUG-15744 Fixes: QTCREATORBUG-15807 Fixes: QTCREATORBUG-19306 Fixes: QTCREATORBUG-20210 Change-Id: Ifcfefdd39401e45ba1f4aca35d2c5bf7046c7aab Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* SSH: Implement X11 forwardingChristian Kandeler2018-11-191-14/+44
| | | | | | Change-Id: Ia7b15e784cb098bc7c6c6be2748d772192187e97 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* SSH: Use Botan2Christian Kandeler2018-08-101-2/+0
| | | | | | | | | | | | | | | | Botan 1.10 will be completely unsupported by the end of this year, so we now target API version 2 instead. Also upgrade our bundled Botan to the latest version 2.7. We no longer check in pre-processed files, but use the upstream sources directly (with unneeded parts removed), employing Botan's own configure script for building. This will make future upgrades much simpler. A script to automate this process is also provided. Task-number: QTCREATORBUG-18802 Task-number: QTCREATORBUG-8107 Change-Id: I5a5ea62cfd30d720b556217142e8b7e06bf49f7e Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* SSH: Catch std::exception rather than Botan-specific onesChristian Kandeler2017-05-051-1/+1
| | | | | | | | | | In particular, the existence of Botan::Exception wrongly suggests that it is the parent class of all Botan-specific exceptions. This assumption, combined with a different bug that will be fixed in a follow-up commit, caused a crash in the key generator. Change-Id: I0aafb761052d185051df217c9914010235a7c77b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove spaces in initializer listsTim Jenssen2017-02-221-7/+7
| | | | | | | Format initializer lists code style like. Change-Id: Ib82c235e4ba7dc75ee96a7abc0c47eff7b0a9013 Reviewed-by: hjk <hjk@qt.io>
* Update License according to agreement with Free Qt FoundationTobias Hunger2016-01-191-17/+12
| | | | | | | * Update remaining files in src Change-Id: I1896f17fcf34f71c3310c87899fb5171b8e4afb1 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* SSH: Use categorized logging.Christian Kandeler2016-01-181-13/+6
| | | | | | Change-Id: I9890c7d4a86320c835e70e66c523c5a2f7b41421 Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Merge commit '3c85058694ee2e41658d17f524fb48f0b187d2fe'Eike Ziller2015-02-121-6/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/libs/utils/tooltip/tipcontents.cpp src/libs/utils/tooltip/tipcontents.h src/plugins/android/androiddeployqtstep.cpp src/plugins/baremetal/baremetalconstants.h src/plugins/baremetal/baremetaldevice.cpp src/plugins/baremetal/baremetaldevice.h src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp src/plugins/baremetal/baremetaldeviceconfigurationwidget.h src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.h src/plugins/baremetal/baremetalplugin.cpp src/plugins/baremetal/baremetalplugin.h src/plugins/baremetal/baremetalruncontrolfactory.cpp src/plugins/baremetal/baremetalruncontrolfactory.h src/plugins/cppeditor/cppcodemodelinspectordialog.cpp src/plugins/cppeditor/cppdoxygen_test.cpp src/plugins/cppeditor/cppdoxygen_test.h src/plugins/debugger/breakpointmarker.cpp src/plugins/debugger/debuggeritemmodel.cpp src/plugins/debugger/debuggeritemmodel.h src/plugins/debugger/loadcoredialog.cpp src/plugins/genericprojectmanager/cppmodelmanagerhelper.cpp src/plugins/projectexplorer/addnewmodel.cpp src/plugins/projectexplorer/addnewmodel.h src/plugins/projectexplorer/jsonwizard/jsonfieldpage.cpp src/plugins/qmlprofiler/abstracttimelinemodel.cpp src/plugins/qmlprofiler/abstracttimelinemodel.h src/plugins/qmlprofiler/notesmodel.cpp src/plugins/qmlprofiler/qml/CategoryLabel.qml src/plugins/qmlprofiler/qml/MainView.qml src/plugins/qmlprofiler/qml/Overview.js src/plugins/qmlprofiler/qml/Overview.qml src/plugins/qmlprofiler/qml/TimeDisplay.qml src/plugins/qmlprofiler/qml/TimeMarks.qml src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp src/plugins/qmlprofiler/sortedtimelinemodel.cpp src/plugins/qmlprofiler/sortedtimelinemodel.h src/plugins/qmlprofiler/timelinemodelaggregator.cpp src/plugins/qmlprofiler/timelinemodelaggregator.h src/plugins/qmlprofiler/timelinerenderer.cpp src/plugins/qmlprofiler/timelinerenderer.h src/plugins/qmlprojectmanager/QmlProjectManager.json.in src/plugins/texteditor/findinfiles.cpp src/plugins/vcsbase/vcsconfigurationpage.cpp src/shared/qbs src/shared/scriptwrapper/interface_wrap_helpers.h src/shared/scriptwrapper/wrap_helpers.h tests/auto/qmlprofiler/abstracttimelinemodel/tst_abstracttimelinemodel.cpp tests/system/suite_debugger/tst_debug_empty_main/test.py tests/system/suite_debugger/tst_qml_js_console/test.py tests/system/suite_debugger/tst_qml_locals/test.py Change-Id: I67540b648f8b162496f4aa606b04d50c7c9125c6
| * Update LicenseEike Ziller2015-01-161-6/+6
| | | | | | | | | | Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | Port to new connect apiMontel Laurent2015-02-041-9/+12
| | | | | | | | | | | | Change-Id: I84834f37dd15108ed8c5fbf5353bcabc4e564f70 Reviewed-by: hjk <hjk@theqtcompany.com> Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* | Merge remote-tracking branch 'origin/3.3'Eike Ziller2014-12-011-0/+2
|\ \ | |/
| * SSH: Delay channel close request to server in SessionRequested state.Christian Kandeler2014-11-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If closeChannel() is called in between our channel open request to the server and the corresponding reply, we cannot forward the close request to the server, as we don't have its channel id yet. So wait until we do. Our failure to correctly handle this sequence of events was the root cause for the following user-visible errors: - A (since-removed) Q_ASSERT in ~SshRemoteProcess() was hit. - The server closed the connection because we referred to an invalid channel ("Received ieof for nonexistent channel -1"). Commits 26920307f0 and 3027bcc952 are also related to this issue. Change-Id: I4994d85f5b21a72682f75389cdf8769738bd6768 Reviewed-by: hjk <hjk121@nokiamail.com>
* | Catch exceptions by const reference.Christian Kandeler2014-11-281-1/+1
| | | | | | | | | | Change-Id: Ic537fd123478a4f8fe4e54736d444fa64fd62d9c Reviewed-by: hjk <hjk121@nokiamail.com>
* | Ssh: Remove indirection in AbstractSshChannel::m_timeoutTimerhjk2014-11-271-3/+3
|/ | | | | | | ... and connect it using Qt5-style connects. Change-Id: Ic7f36949b38d4773f5ac0f04853abf93bebcf467 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* Ssh: Remove wrong Q_ASSERT in SshRemoteProcess destructorhjk2014-11-251-3/+1
| | | | | | | | | This can be triggered rather quickly by clicking "Run" for a short- lived application on a QNX device. The state in this situation is QSsh::Internal::AbstractSshChannel::SessionRequested. Change-Id: I4447b85a4e8d6ba63e30f3783d29bb0c816e0dff Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
* License updateEike Ziller2014-10-091-7/+8
| | | | | Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* Use double quotes instead of single quotes as per our guidelines.Christian Kandeler2014-04-221-1/+1
| | | | | Change-Id: Ib608bb49e26781aef1914085a5d801fcdcd5eb56 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* Incremented year in copyright infoRobert Loehning2014-01-081-1/+1
| | | | | | Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Introduce the concept of a "device process".Christian Kandeler2013-08-191-0/+5
| | | | | | | | | | | | | | | | | | | Provide a QProcess-like abstraction that can be used to implement processes running locally or on a remote device. Objects of a concrete class implementing the functionality are created by IDevice objects. Current implementations are: - Local execution (QProcess-based), provided via the DesktopDevice. - Remote execution via SSH. - A specialized case of the former for remote Linux systems (provided by LinuxDevice). The latter is already being used in a number of places. As a result, lots of code dealing with details such as setting the remote environment could be moved to a central location. These things are no longer the concern of whoever is wishing to run a remote process. Change-Id: I919260ee6e77a020ca47226a4a534e7b8398106f Reviewed-by: hjk <hjk121@nokiamail.com>
* Doc: use standard wording in \brief commandsLeena Miettinen2013-06-201-1/+2
| | | | | | | | | QDoc does some magic with the \class and \namespaces and \brief commands, so the following wording must be used: "The xxx class yyy ..." Change-Id: Id231f30e8464898b776888d5423523de404aae34 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* Merge remote-tracking branch 'origin/2.6'Oswald Buddenhagen2013-01-311-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in src/plugins/debugger/qtmessageloghandler.cpp src/plugins/debugger/qtmessagelogwindow.cpp src/plugins/madde/maemodeployconfigurationwidget.cpp src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp src/plugins/qmldesigner/designercore/include/widgetqueryview.h src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp src/plugins/qnx/bardescriptormagicmatcher.h src/plugins/qt4projectmanager/profilekeywords.cpp src/plugins/remotelinux/deployablefilesperprofile.cpp src/plugins/remotelinux/deployablefilesperprofile.h src/plugins/remotelinux/deploymentinfo.cpp src/plugins/remotelinux/deploymentsettingsassistant.cpp src/plugins/remotelinux/profilesupdatedialog.cpp tests/auto/icheckbuild/ichecklib.cpp tests/auto/icheckbuild/parsemanager.cpp tests/auto/icheckbuild/parsemanager.h Change-Id: Ie465a578446a089e1c502d1cb1096e84ca058104
| * Incremented year in copyright infov2.6.2Robert Loehning2013-01-291-1/+1
| | | | | | | | | | Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | Merge remote-tracking branch 'origin/2.6'Eike Ziller2012-10-051-21/+20
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: share/qtcreator/qml/qmlpuppet/commands/endpuppetcommand.cpp share/qtcreator/qml/qmlpuppet/commands/endpuppetcommand.h src/plugins/debugger/qtmessageloghandler.cpp src/plugins/debugger/qtmessageloghandler.h src/plugins/debugger/qtmessagelogwindow.cpp src/plugins/madde/maemodeployconfigurationwidget.cpp src/plugins/madde/maemodeployconfigurationwidget.h src/plugins/remotelinux/deployablefilesperprofile.cpp src/plugins/remotelinux/deployablefilesperprofile.h src/plugins/remotelinux/deploymentinfo.cpp src/plugins/remotelinux/deploymentinfo.h src/plugins/remotelinux/deploymentsettingsassistant.cpp src/plugins/remotelinux/profilesupdatedialog.cpp src/plugins/remotelinux/remotelinuxdeploymentdatamodel.h tests/auto/icheckbuild/ichecklib.cpp tests/auto/icheckbuild/ichecklib_global.h tests/auto/icheckbuild/parsemanager.cpp tests/auto/icheckbuild/parsemanager.h tests/manual/ssh/tunnel/tunnel.h Change-Id: I04d7761df6bd936ad00e0547974284c967d39580
| * Adjust license headershjk2012-10-051-21/+20
| | | | | | | | | | Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* | Do not use the fromAscii() and toAscii() functions.Christian Kandeler2012-09-211-1/+1
| | | | | | | | | | | | | | | | | | | | They are deprecated in Qt 5. Use fromLatin1() and toLatin1() instead. In Qt 5, these always do the same thing as their "Ascii" counterparts. The same goes for Qt 4, provided QTextCodec::setCodecForCStrings has not been set, which it hasn't. Change-Id: I04edeb376762b6671eff8156094f0d5e2cb8e1ea Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | SSH: Implement tunneling.Christian Kandeler2012-08-281-0/+1
|/ | | | | | | | | This is the "direct-tcpip" port forwarding specified in RFC 4254. Change-Id: I1ffa2e923b4479c7211b1b4304e66895b565fb64 Reviewed-by: hjk <qthjk@ovi.com> Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>