This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goclient. commit ed895e030c52025c7e1ebce6e1d6b6e7c524f8d3 Author: Mike DePaulo <mikedep333@gmail.com> Date: Tue Mar 18 19:52:23 2014 -0400 Windows: Fix cookie handling when PulseAudio is downgraded after cookie is created. --- onmainwindow.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++----------- onmainwindow.h | 4 ++++ 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/onmainwindow.cpp b/onmainwindow.cpp index 638f826..fbae475 100644 --- a/onmainwindow.cpp +++ b/onmainwindow.cpp @@ -158,6 +158,7 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) homeDir=QDir::homePath(); #ifdef Q_OS_WIN + pulseVersionTest=0l; pulseServer=0l; xorg=0l; xDisplay=0; @@ -400,6 +401,7 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) #ifdef Q_OS_WIN winServersReady=false; saveCygnusSettings(); + pulseVersionIsLegacy=false; #endif initPassDlg(); initSelectSessDlg(); @@ -5147,20 +5149,26 @@ void ONMainWindow::slotRetResumeSess ( bool result, "/.pulse-cookie", this, SLOT ( slotPCookieReady ( bool, QString,int ))); } #else - QString cooFile; + // The only cookie file path used by PulseAudio 2.1 and earlier. + // These PulseAudio versions do not support overriding the cookie file path. + if (pulseVersionIsLegacy) + cooFile = wapiShortFileName ( homeDir ) + "/.x2go/pulse/.pulse-cookie"; // Default cookie file path used by PulseAudio 3.0 and later. // Cannot be overriden due to PulseAudio bug 75006. - if ( QFile::exists - (wapiShortFileName ( homeDir ) + "/.x2go/pulse/.config/pulse/cookie") ) + else { - cooFile = - (wapiShortFileName ( homeDir ) + "/.x2go/pulse/.config/pulse/cookie"); - } - else - { - /* The only cookie file path used by PulseAudio 2.1 and earlier. - PulseAudio 3.0 and later will still use it if the primary path DNE */ - cooFile = wapiShortFileName ( homeDir ) + "/.x2go/pulse/.pulse-cookie"; + if ( QFile::exists + (wapiShortFileName ( homeDir ) + "/.x2go/pulse/.config/pulse/cookie") ) + { + cooFile = + (wapiShortFileName ( homeDir ) + "/.x2go/pulse/.config/pulse/cookie"); + } + else + { + // PulseAudio 3.0 and later will still use this path if it exists + // but the defaultt path DNE */ + cooFile = wapiShortFileName ( homeDir ) + "/.x2go/pulse/.pulse-cookie"; + } } QString destFile="$HOME/.x2go/C-"+ @@ -9648,6 +9656,31 @@ void ONMainWindow::removeCygwinEntry() void ONMainWindow::startPulsed() { +#ifdef Q_OS_WIN + pulseVersionTest=new QProcess ( 0 ); + pulseVersionTest->start ( "pulse\\pulseaudio.exe --version" ); + + pulseVersionTest->waitForFinished(); + QString pulseVersionLine= + pulseVersionTest->readAllStandardOutput().replace("\n"," ").simplified(); + + x2goDebug <<"PulseAudio Version Line: "<<pulseVersionLine; + if (pulseVersionLine.contains("pulseaudio 0.", Qt::CaseInsensitive)) + pulseVersionIsLegacy = true; + if (pulseVersionLine.contains("pulseaudio 1.", Qt::CaseInsensitive)) + pulseVersionIsLegacy = true; + if (pulseVersionLine.contains("pulseaudio 2.", Qt::CaseInsensitive)) + pulseVersionIsLegacy = true; + + if (pulseVersionIsLegacy) + { + x2goDebug <<"PulseAudio <= 2.1 Detected. Using .pulse-cookie"; + } + else + { + x2goDebug <<"PulseAudio >= 3.0 Detected. Using .config/pulse/cookie or .pulse-cookie in that order."; + } +#endif while ( isServerRunning ( pulsePort ) ) ++pulsePort; esdPort=pulsePort+1; diff --git a/onmainwindow.h b/onmainwindow.h index afe63a7..faa2f97 100644 --- a/onmainwindow.h +++ b/onmainwindow.h @@ -773,6 +773,10 @@ private: bool winSshdStarted; static QString u3Device; + QString cooFile; + QString pulseVersionTestOutput; + QProcess* pulseVersionTest; + bool pulseVersionIsLegacy; QProcess* pulseServer; QStringList pulseArgs; QTimer* pulseTimer; -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient.git