This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goclient. commit 9609888276207da5cbdf62df29aeaf7b9cd19753 Author: Mihai Moldovan <ionic@ionic.de> Date: Sat Feb 25 05:03:45 2017 +0100 src/pulsemanager.cpp: check server_binary_ before using it and jump over code that assumes the PA server binary to be available. --- debian/changelog | 2 ++ src/pulsemanager.cpp | 52 +++++++++++++++++++++++++++++----------------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/debian/changelog b/debian/changelog index 321e641..2685967 100644 --- a/debian/changelog +++ b/debian/changelog @@ -108,6 +108,8 @@ x2goclient (4.1.0.1-0x2go1) UNRELEASED; urgency=medium is unknown. Or just continue without PA support as such. - src/pulsemanager.{cpp,h}: add show_startup_warning () for both PA server and (debug) startup sound playback. + - src/pulsemanager.cpp: check server_binary_ before using it and jump over + code that assumes the PA server binary to be available. [ Oleksandr Shneyder ] * New upstream version (4.1.0.1): diff --git a/src/pulsemanager.cpp b/src/pulsemanager.cpp index 67d78b4..29bf439 100644 --- a/src/pulsemanager.cpp +++ b/src/pulsemanager.cpp @@ -135,11 +135,13 @@ PulseManager::PulseManager () : app_dir_ (QApplication::applicationDirPath ()), abort (); } - QFileInfo tmp_file_info = QFileInfo (server_binary_); - server_working_dir_ = tmp_file_info.canonicalPath (); + if (!(server_binary_.isEmpty ())) { + QFileInfo tmp_file_info = QFileInfo (server_binary_); + server_working_dir_ = tmp_file_info.canonicalPath (); - x2goDebug << "Found PA binary as " << server_binary_; - x2goDebug << "Corresponding working dir: " << server_working_dir_; + x2goDebug << "Found PA binary as " << server_binary_; + x2goDebug << "Corresponding working dir: " << server_working_dir_; + } #elif defined (Q_OS_WIN) server_working_dir_ = QString (app_dir_ + "/pulse/"); @@ -182,7 +184,9 @@ PulseManager::PulseManager () : app_dir_ (QApplication::applicationDirPath ()), buf = ptr = NULL; #endif // defined (Q_OS_DARWIN) - fetch_pulseaudio_version (); + if (!(server_binary_.isEmpty ())) { + fetch_pulseaudio_version (); + } } PulseManager::~PulseManager () { @@ -223,35 +227,37 @@ void PulseManager::start_generic () { pulse_server_->setProcessEnvironment (env_); pulse_server_->setWorkingDirectory (server_working_dir_); - pulse_server_->start (server_binary_, server_args_); + if (!(server_binary_.isEmpty ())) { + pulse_server_->start (server_binary_, server_args_); - /* - * We may wait here, because PulseManager runs in a separate thread. - * Otherwise, we'd better use signals and slots to not block the main thread. - */ - if (pulse_server_->waitForStarted (-1)) { - x2goDebug << "pulse started with arguments " << server_args_ << "- waiting for it to finish..."; - state_ = QProcess::Running; + /* + * We may wait here, because PulseManager runs in a separate thread. + * Otherwise, we'd better use signals and slots to not block the main thread. + */ + if (pulse_server_->waitForStarted (-1)) { + x2goDebug << "pulse started with arguments " << server_args_ << "- waiting for it to finish..."; + state_ = QProcess::Running; - connect (pulse_server_, SIGNAL (finished (int)), - this, SLOT (slot_on_pulse_finished (int))); + connect (pulse_server_, SIGNAL (finished (int)), + this, SLOT (slot_on_pulse_finished (int))); - env_.insert ("PULSE_SERVER", "127.0.0.1:" + QString::number (pulse_port_)); + env_.insert ("PULSE_SERVER", "127.0.0.1:" + QString::number (pulse_port_)); - QString clean_pulse_dir = pulse_dir_.absolutePath (); + QString clean_pulse_dir = pulse_dir_.absolutePath (); #ifdef Q_OS_WIN - clean_pulse_dir = wapiShortFileName (clean_pulse_dir); + clean_pulse_dir = wapiShortFileName (clean_pulse_dir); #endif /* defined (Q_OS_WIN) */ - QString tmp_auth_cookie = QDir::toNativeSeparators (clean_pulse_dir + "/.pulse-cookie"); + QString tmp_auth_cookie = QDir::toNativeSeparators (clean_pulse_dir + "/.pulse-cookie"); - env_.insert ("PULSE_COOKIE", tmp_auth_cookie); + env_.insert ("PULSE_COOKIE", tmp_auth_cookie); - if (debug_) { - // Give PA a little time to come up. - QTimer::singleShot (3000, this, SLOT (slot_play_startup_sound ())); + if (debug_) { + // Give PA a little time to come up. + QTimer::singleShot (3000, this, SLOT (slot_play_startup_sound ())); + } } } else { -- Alioth's /srv/git/code.x2go.org/x2goclient.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient.git