[X2Go-Commits] [x2goclient] 01/01: support for recent cygwin binaries and nxproxy 3.5.99.x all cygwin binaries and DLLs should be moved into the INSTDIR/bin directory by Windows installer.

git-admin at x2go.org git-admin at x2go.org
Thu Jul 28 18:27:51 CEST 2022


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goclient.

commit 5f5b49cfd6537fe27708e53113add0a142bd745a
Author: Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
Date:   Thu Jul 28 11:27:37 2022 -0500

    support for recent cygwin binaries and nxproxy 3.5.99.x all cygwin binaries and DLLs should be moved into the INSTDIR/bin directory by Windows installer.
---
 debian/changelog     |  3 +++
 src/onmainwindow.cpp | 21 +++++++++++----------
 src/wapi.cpp         | 18 ++++++++++++++++--
 src/wapi.h           |  2 +-
 4 files changed, 31 insertions(+), 13 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 83a50ed..b00a51d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -45,6 +45,9 @@ x2goclient (4.1.2.3-0x2go1) UNRELEASED; urgency=medium
     - create default export directory if not exists.
     - send to broker xdmcpserver in command option when starting xdmcp session.
     - improve processing stderr from nxproxy.
+    - support for recent cygwin binaries and nxproxy 3.5.99.x
+      all cygwin binaries and DLLs should be moved into the
+      INSTDIR/bin directory by Windows installer.
 
   [ Ryan Schmidt ]
   * New upstream version (4.1.2.3):
diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp
index 7b1df5b..666b042 100644
--- a/src/onmainwindow.cpp
+++ b/src/onmainwindow.cpp
@@ -6297,10 +6297,11 @@ void ONMainWindow::slotTunnelOk(int)
               SLOT ( slotProxyStderr() ) );
     connect ( nxproxy,SIGNAL ( readyReadStandardOutput() ),this,
               SLOT ( slotProxyStdout() ) );
-
     QString proxyCmd="nxproxy -S nx/nx,options="+dirpath+"/options:"+
                      resumingSession.display;
-
+#ifdef Q_OS_WIN
+    proxyCmd="bin\\"+proxyCmd;
+#endif
 #ifdef Q_OS_DARWIN
     //run nxproxy from bundle
     QDir dir ( appDir );
@@ -11147,15 +11148,11 @@ void ONMainWindow::generateEtcFiles()
 #endif /* defined (Q_OS_WIN) */
     QTextStream out ( &file );
     out<<"StrictModes no\n"<<
-#ifdef Q_OS_WIN
-         "StrictKeyModes no\n" <<
-#endif
-         "UsePrivilegeSeparation no\n"<<
          "PidFile \"" + varDir + "/sshd.pid\"\n" <<
          "AuthorizedKeysFile \"" << authKeyPath << "\"\n";
 #ifdef Q_OS_WIN
-    out << "Subsystem shell "<< wapiShortFileName ( appDir) +"/sh"+"\n"<<
-           "Subsystem sftp "<< wapiShortFileName ( appDir) +"/sftp-server"+"\n";
+    out << "Subsystem shell "<< wapiShortFileName ( appDir) +"/bin/bash"+"\n"<<
+           "Subsystem sftp "<< wapiShortFileName ( appDir) +"/bin/sftp-server"+"\n";
 #else
     /*
      * We need to find the sftp-server binary.
@@ -11403,7 +11400,11 @@ QString ONMainWindow::generateKey (ONMainWindow::key_types key_type, bool host_k
          << "-f"
          << private_key_file;
 
+#ifdef Q_OS_WIN
+    const int keygen_ret = QProcess::execute ("bin\\ssh-keygen", args);
+#else
     const int keygen_ret = QProcess::execute ("ssh-keygen", args);
+#endif
 
     if (-2 == keygen_ret) {
       QMessageBox::critical (this, tr ("ssh-keygen launching error"),
@@ -11585,7 +11586,7 @@ bool ONMainWindow::startSshd(ONMainWindow::key_types key_type)
         x2goDebug<<"Logging cygwin sshd to: "<<sshLog;
     }
 
-    strm<<clientdir<<"\\sshd.exe -D -p "<<clientSshPort.toInt()<<" -f "<< config <<" -h "<<key;
+    strm<<clientdir<<"\\bin\\sshd.exe -D -p "<<clientSshPort.toInt()<<" -f "<< config <<" -h "<<key;
     if (debugging){
         strm<<" -E "<<"\""<<sshLog.toStdString()<<"\"";
     }
@@ -13619,7 +13620,7 @@ long ONMainWindow::findWindow ( QString text )
     return X11FindWindow ( text );
 #endif
 #ifdef Q_OS_WIN
-    return ( long ) wapiFindWindow ( 0,text.utf16() );
+    return ( long ) wapiFindWindow (text);
 #endif
     return 0;
 }
diff --git a/src/wapi.cpp b/src/wapi.cpp
index c610b19..e7ded94 100644
--- a/src/wapi.cpp
+++ b/src/wapi.cpp
@@ -206,9 +206,23 @@ bool wapiMoveWindow ( HWND wnd, int x, int y, int width, int height,
     return MoveWindow ( wnd, x, y, width, height, repaint );
 }
 
-HWND wapiFindWindow ( const ushort * className, const ushort * text )
+HWND wapiFindWindow (const QString& text )
 {
-    return FindWindowEx ( 0,0, ( LPCTSTR ) className, ( LPCTSTR ) text );
+    HWND w=GetTopWindow(NULL);
+    char caption[512];
+    while (w)
+    {
+        if(GetWindowTextA(w, caption, 512))
+        {
+            QString c(caption);
+            if(c.indexOf(text)!=-1)
+            {
+                return w;
+            }
+        }
+        w=GetNextWindow(w,GW_HWNDNEXT);
+    }
+    return 0;
 }
 
 bool wapiSetWindowText( HWND wnd, const QString& text)
diff --git a/src/wapi.h b/src/wapi.h
index bd15a1c..588b58d 100644
--- a/src/wapi.h
+++ b/src/wapi.h
@@ -61,7 +61,7 @@ bool wapiMoveWindow ( HWND wnd, int x, int y, int width, int height,
 bool wapiGetBorders ( HWND wnd, int& vBorder, int& hBorder, int& barHeight );
 void wapiSetCallBackProc ( void ( *prc ) ( wapiBtnEvent, QPoint ) );
 void wapiHideFromTaskBar ( HWND wnd );
-HWND wapiFindWindow ( const ushort * className, const ushort * text );
+HWND wapiFindWindow ( const QString& text);
 QString wapiShortFileName ( const QString& longName );
 bool wapiAccountInfo ( QString* retSid, QString* retUname,
                        QString* primaryGroupSID, QString* primaryGroupName,

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git


More information about the x2go-commits mailing list