diff --git a/.gitignore b/.gitignore index def96ff..ecaaf7e 100644 --- a/.gitignore +++ b/.gitignore @@ -35,7 +35,6 @@ __pycache__ **/.idea/inspectionProfiles **/.idea/codeStyles **/.idea/dataSources -**/.idea/inspectionProfiles **/.idea/vcs.xml **/.idea/modules.xml **/.idea/deployment.xml @@ -88,6 +87,7 @@ __pycache__ /server/tp_core/protocol/rdp /client/tools/tprdp /client/build-tp-player-* +/server/tools/tpr2mp4 # for MacOS. .DS_Store diff --git a/CMakeCfg.txt b/CMakeCfg.txt index 0bc9a03..e0febbf 100644 --- a/CMakeCfg.txt +++ b/CMakeCfg.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.18) MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}") MESSAGE(STATUS "root source directory is ${PROJECT_SOURCE_DIR}") diff --git a/CMakeLists.txt b/CMakeLists.txt index 09ec489..d439ad3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.18) project(teleport) include(CMakeCfg.txt) @@ -15,3 +15,7 @@ add_subdirectory(server/tp_core/testssh) if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/server/tp_core/protocol/rdp") add_subdirectory(server/tp_core/protocol/rdp) endif () + +if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/server/tools/tpr2mp4") + add_subdirectory(server/tools/tpr2mp4) +endif () diff --git a/build.bat.in b/build.bat.in deleted file mode 100644 index 6738eb4..0000000 --- a/build.bat.in +++ /dev/null @@ -1,13 +0,0 @@ -@echo off - -rem ============================================ -rem 请调整以下路径,以适配您自己的的系统环境。 -rem 注意:必须使用Pyhont 3.7,32位版本!! -rem 可以从这里下载: -rem https://www.python.org/ftp/python/3.7.0/python-3.7.0.exe -rem ============================================ - -SET PYEXEC=C:\Program Files\Python\python.exe - - -"%PYEXEC%" -B build/build.py %1 %2 %3 %4 %5 diff --git a/build.sh.in b/build.sh.in deleted file mode 100755 index 6c7a4d3..0000000 --- a/build.sh.in +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash - -PATH_ROOT=$(cd "$(dirname "$0")"; pwd) - -function on_error() -{ - echo -e "\033[01m\033[31m" - echo "==================[ !! ERROR !! ]==================" - echo "" - echo -e $1 - echo "" - echo "===================================================" - echo -e "\033[0m" - exit 1 -} - -function build_linux -{ - if [ `id -u` -eq 0 ]; then - on_error "Do not build as root." - fi - - if [ ! -f "/etc/centos-release" ] ; then - on_error "Sorry, build script works on CentOS 7 only." - fi - - X=$(yum list installed | grep "libffi-devel") - if [ "$X-x" = "-x" ] ; then - on_error "Need libffi-devel to build Python, try:\r\n sudo yum install libffi-devel" - fi - - X=$(yum list installed | grep "zlib-devel") - if [ "$X-x" = "-x" ] ; then - on_error "Need zlib-devel to build Python, try:\r\n sudo yum install zlib-devel" - fi - - PYEXEC=${PATH_ROOT}/external/linux/release/bin/python3.7 - PYSTATIC=${PATH_ROOT}/external/linux/release/lib/libpython3.7m.a - - if [ ! -f "${PYSTATIC}" ] ; then - echo "python static not found, now build it..." - "${PATH_ROOT}/build/build-py-static.sh" - - if [ ! -f "${PYSTATIC}" ] ; then - on_error "can not build python static." - fi - fi - - ${PYEXEC} -B "${PATH_ROOT}/build/build.py" $@ -} - -function build_macos -{ - python3 -B "${PATH_ROOT}/build/build.py" $@ -} - -SYSTEM=`uname -s` -if [ $SYSTEM = "Linux" ] ; then - build_linux $@ -elif [ $SYSTEM = "Darwin" ] ; then - build_macos $@ -else - echo "Unsupported platform." -fi - diff --git a/client/cfg/cacert.cer b/client/cfg/cacert.cer index d8f5d0c..7be85a8 100644 --- a/client/cfg/cacert.cer +++ b/client/cfg/cacert.cer @@ -1,23 +1,21 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff --git a/client/cfg/localhost.key b/client/cfg/localhost.key index 33108af..5c93a5a 100644 --- a/client/cfg/localhost.key +++ b/client/cfg/localhost.key @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+xdLVfN5IErS1 -UplYesMvkFZVBWlH2AojfJ8pSnaqfE6XeVWc/hoCpiqTSkGdoX4NLgy8cjAcvI9Z -1E4Xdcuch161F4HH68V0CZsSK7LHHjXI9SLbjSyoUL0BvDIEGG9D2Zyqy8xTiVc6 -gBZBvR1pGRsh59KiRMNCPN67lT6PGTt+OxMJmh2laYBWh28Lbqx4R1nBl8/m1wZa -QFhTTz0WBrBm4/3j95bQXIUjP0kW8uFcaIg0oA3/1EM5DrVQqJfp7ePEWevToP3H -4Ny1/Wg/gWTpSiB/dgN8c3vXokWxabGJG/Oq5CWjtw9gWFyR0I/OmFh8cnWPf2vf -QFVYQnv1AgMBAAECggEAeGs2ojuns6bbGnmBAjC7dBKP7Cr2QbtE6xGHBfFS5lqA -4WxddjOPB40L4t1EfdOqVXdz4p/RbtI3SmSQxo48cBmi1nx4F1Hj2VMW52ld+AJB -wQ+7aQq73aLZK3c3uw4Rbaq3EbiCyVgwD2U6p1RQdD68ubIzauostmrlzVJvorMZ -1J0hz1gsJuH87WpkgRdp910hEYiM7eUBrOKG+K0trohVeStsjjJyV47LKxXDtf2F -yUQvpbbIgHh2mXe29+d42hio2VrB5y1/+dc7wMiPlwBPG5xpv4eW1aaIGNTsHYCO -1dy8KQirOsrGLIp0GzEej2XL/wTlHJfv3nSpYR2gIQKBgQD4I3lySzFqFUlrvZoX -F9gYKbbH81gQakoAyk68qy4ENve5g+cChHTI6cO4fW8zIeEtLs/kDdpGuV20NmaD -Pb8lcd7nONGhQ1l75aNAy978e2WuAYQ4xfMLR+8jKdTDG9ttIqhGFSNXetMGINLJ -GkCl5fWAJ4p6oKBsUy2FgESECwKBgQDE0RWNQofR0UmxMPeHtD6i3pX2j3bb0GdM -1yh8vqE1IqXJesVM//gIgSZ4n3hd93AXDQIvJ6xkdtNKbnGi5wJLf1OiYW3iSkfC -l+Lgup10CVHJpOrBLxUGYZWjY4LsEX3z3MBNW4DQ6SNmIJN7xJAAewzq0UMMGk6P -IIQ7rvT//wKBgQCqiDa+xc6ACYEb+oIbvNdWQ9TKNgMfxOx2/pJ+N2a4ns5BQNVS -dZWNPpq0AACcM3x9gN5+7MZGNL6hS4HIUHc9VLTMU9A98/tbmsZHkdT90BBhNcmY -+vG9nwJKOEVwkYSLzHW5NG3FgTPl0kkKzHABk7jVClexTxLxX3i5dx2fYQKBgCla -bRbTJcp2GO+8BCZlPsvlzMiTeDvTXAEPLBiZzTFm6EKfIxl8ptbSnAy4JQhJVyng -t9bElTo+pUJ8VjAOLbNDO4Vgxz/Gr7E5TJg/XZnl42Nk3VZd2CMRGenMnNOREU/N -0DHwye4bLi7lJVfaAw+2yw4DjfzbAiqcgGwx5JRtAoGBAPFqMyLgZGtCBLrrJVxD -kswm0gABU7l/UXS7OfLTWmfr0vDzoZEcVeBcabwmpRnsTaj1+EHcpl8kZogO4mcg -0RiT+lc2E8TfZL5c4HEr4wSLbz8FEeKwhFa6ScNUOj5vVSnsFzW1xkVEBIM8akMR -UI4+yvEjUIpuQt35cyE9K/nx +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDf3tDR3kM5solf +OA9AKlM+DzFgG9G0RzR8b91KdIwWzIk+WyyqOHEkyXX3QmykKWqE74ZTB1/iWpWk +5Z73LonGgdc9alfkP/esAUPbF1030Z7AO9Kswt9ZRFv4qEMCFkPdz5bJ5EFble2z +OVmkLcJJpvDvuB82Sja4gfVaG+Lt++om9CxSL93bvn9cWs8EMC9ClbgPqu3N5Gnb +mulQDFwsnJDTkMhn8QvkXWkoQrI43vSqdQpGzqGCKcdpDhYbLzd/Vmf9bZTIvYZb +n1TYT8o+zGcpwQyT0HDhT9LlwRgh0jbYy63wSil0pLnA1DruZyZIgp8sQXKh6IU6 +h9g4tC2jAgMBAAECggEAL1hMCVZcGUOs0bplX0iUOje0VYMMone8neR6hFiJl/jB +vbJCi+1L4F/K1vPxTfaEVIDjg4O3v4MwyqLVL6lj8dtbzd1DoT31/yZ1V0xlpnxq +enUsZOUBnztZyAitwy86Qxq35RKkz92xW4nxb0tOH41yvv/NegnP8M1rOhdTssiC +nX8KQgdZLuVI3Q5PeJpycKTthXIsxqQufZJZAyYrXZsR6gkGaNlOV/7eNFrh6PPS +pStHHQYWPyjyUZREHzo371ZKawXaC5pJZY7b4s76mCPOxpL8VjFuXKAdW61po6XV +Ff4wAd/eutyaur6ZgriY8oRX+10FnyYiwRo3QUv+4QKBgQD9PNGvN6BqKxhWM3Su +HGpcp/fyNMidoKdP1maFEtisMUIhNm+i1CSsn1dn006bv/6igSmVNI4FdyCU8dP/ +tbWUWl0r3fTRnlduJxkvZmoVXqW78BXx4ejnKDZfTNtUNWT/4h1nKTYQh42O/WXC +Wzl/LB154dDMMUIp+KEnOFQhdwKBgQDiT/yqcoYVYCV2nk/q2BML8/NvhHK1+Hgv +oqGKe2zmNxQcCH/H70TjWJRojxQJZe4311MP2Qu5RvgHfmtotb3Fi2gGYv6dwS9n +VdcFILjoiQAMe8KLfZBGAmsN3bQ9g2BrbD1sFjVCUsOT1c2zI4ESQXW5Dz4F5Fpe +9zBYR1DANQKBgF15mLDDqLvnwmj3P2eRZ5ViDvzhjPfaOEgZDOisBzywRge6b0S8 +Z/ksK/hQIGEPYq+bW70OlCniSi2Qgj+OVEM5g9DQcjD58K3hUsOTWy8eK7EOsxsA +15aT2lYdKYyQ1QI69b2BkcpSLueME4bFY5jUsOCvgQIOYKzbcKjoeu2LAoGAFl3L +XdkVsVUgPrnkshQKxdqlS3cukxdsYWDUUEhkedglr6OTZWIbT9C4UiEZ3NfrFC++ +sMlFpFkEOFFhMicMC1L8w+zStyqZkb/lEUernqezjohIsNqHALRKekNYBeBPDi7T +XzROrTBazeiKfNLcdb5scQ61lYV8/Pe3GnJp46UCgYEAmI8xIBGBNWcXY1V4ismY +FM/8anrOFSPrgmyp9NcUu7mXxIWTPg+3vIykwV+uqkWh0BgSnGitQ9BKIHgJU3sz +K8ft7edhwgKq3x8y0Gs8+1JOm2TvKhavZoKcSOi6/2xeGunMbEpL/zsOcEMOmp+V +a/PsyIEsETicUZJmFZxAiGs= -----END PRIVATE KEY----- diff --git a/client/cfg/localhost.pem b/client/cfg/localhost.pem index 5b52a2a..412d551 100644 --- a/client/cfg/localhost.pem +++ b/client/cfg/localhost.pem @@ -1,25 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIEHzCCAwegAwIBAgIEASUKQDANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJD -TjENMAsGA1UECgwEVFA0QTEZMBcGA1UECwwQVFA0QSBUZWxlcG9ydCBDQTEZMBcG -A1UEAwwQVFA0QSBUZWxlcG9ydCBDQTAgFw0xOTAxMjUxMDM0MTVaGA8yMTE5MDEw -MTEwMzQxNVowXzELMAkGA1UEBhMCQ04xCzAJBgNVBAgMAkJKMQswCQYDVQQHDAJ0 -cDERMA8GA1UECgwIVGVsZXBvcnQxDzANBgNVBAsMBkFzc2lzdDESMBAGA1UEAwwJ -MTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvsXS1Xze -SBK0tVKZWHrDL5BWVQVpR9gKI3yfKUp2qnxOl3lVnP4aAqYqk0pBnaF+DS4MvHIw -HLyPWdROF3XLnIdetReBx+vFdAmbEiuyxx41yPUi240sqFC9AbwyBBhvQ9mcqsvM -U4lXOoAWQb0daRkbIefSokTDQjzeu5U+jxk7fjsTCZodpWmAVodvC26seEdZwZfP -5tcGWkBYU089FgawZuP94/eW0FyFIz9JFvLhXGiINKAN/9RDOQ61UKiX6e3jxFnr -06D9x+Dctf1oP4Fk6Uogf3YDfHN716JFsWmxiRvzquQlo7cPYFhckdCPzphYfHJ1 -j39r30BVWEJ79QIDAQABo4HtMIHqMB0GA1UdDgQWBBQHRB+sP9RolTsf34gPFAJw -6UKn2zB6BgNVHSMEczBxgBSh6jvPH2KfGq3ekij4vF+Bqa/roqFWpFQwUjELMAkG -A1UEBhMCQ04xDTALBgNVBAoMBFRQNEExGTAXBgNVBAsMEFRQNEEgVGVsZXBvcnQg -Q0ExGTAXBgNVBAMMEFRQNEEgVGVsZXBvcnQgQ0GCAQAwDAYDVR0TAQH/BAIwADAO -BgNVHQ8BAf8EBAMCA4gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGgYDVR0RBBMwEYIJ -bG9jYWxob3N0hwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQCagioxwrTdc9N5IVSH -qbOXTGpUE4R7dvfCKatNJrGen7lAGdfqgomwM+fjRO5Jt0Kc15q8gxvQ3kePwaBY -11f1FJ8iDMqxX7Hmb3KT0FeWKmUPgH3YtlitSAD7DrqMxBh5sr/28zN8XIjWWhY1 -huv7APQbuicxl/YZumPKa3r8FI1ca4pn4TKsm+YMN6Buy6k9CQV6POtNmawLNgNP -axErEeTzNsis1JalHFAdr6mPWY0xaZsdrMeJHMx/7lvM7Qo+odEyswguoCS8Bc1Y -6ZlEYZUev7lN0amqnoh25KrrGqpyHCXtXAEEwVyTmdpYDtqsetDYv7aCrfeITPBm -GAyD +MIIDkzCCAnugAwIBAgIGAhNQQY0BMA0GCSqGSIb3DQEBCwUAMDMxCzAJBgNVBAYT +AkNOMQ0wCwYDVQQKEwR0cDRhMRUwEwYDVQQDEwxUUDRBIFJvb3QgQ0EwHhcNMjEw +NzAzMDU1MDU0WhcNMjIwNzAzMDU1MDU0WjAUMRIwEAYDVQQDEwlsb2NhbGhvc3Qw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDf3tDR3kM5solfOA9AKlM+ +DzFgG9G0RzR8b91KdIwWzIk+WyyqOHEkyXX3QmykKWqE74ZTB1/iWpWk5Z73LonG +gdc9alfkP/esAUPbF1030Z7AO9Kswt9ZRFv4qEMCFkPdz5bJ5EFble2zOVmkLcJJ +pvDvuB82Sja4gfVaG+Lt++om9CxSL93bvn9cWs8EMC9ClbgPqu3N5GnbmulQDFws +nJDTkMhn8QvkXWkoQrI43vSqdQpGzqGCKcdpDhYbLzd/Vmf9bZTIvYZbn1TYT8o+ +zGcpwQyT0HDhT9LlwRgh0jbYy63wSil0pLnA1DruZyZIgp8sQXKh6IU6h9g4tC2j +AgMBAAGjgcswgcgwHQYDVR0OBBYEFBKWKx7CKoM7m5kaK5uN5woCrFFCMFsGA1Ud +IwRUMFKAFHvC5d4JNsH7eZ8sVzCbdqdnYLhQoTekNTAzMQswCQYDVQQGEwJDTjEN +MAsGA1UEChMEdHA0YTEVMBMGA1UEAxMMVFA0QSBSb290IENBggEAMAwGA1UdEwEB +/wQCMAAwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMBoGA1UdEQQT +MBGCCWxvY2FsaG9zdIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEAeM48uhEnkmdw +viwmdErYx/aYjl4Cs1woFAalkrhX42Ogld3B/LhIuBePiuKrPmrCOtM03qUXFKq4 +Fg0A4eZnUiPHxTUzToa4yipY2xlxTh5oxy/MmXRyKfCO10mq7gTqtU7iUYy3fPvE +eDfL5ZIaCT+G8a/UI/EQjfhu00C37zRIvfhYkqCho+NoM087oADVQ9CGStWy4aHs +hh2fkKBZEYgOFSm6jPotEiqGJr2KHZ7pLi9f8zGsW2Srdpc7IC1aYD2QzHMqptzt +YEAFsMw2OvK+7zJGkJkNnejlcr9gc6j2JWkYYTuCI2D+rh0nFDkmMnDchzyYJyOQ +6U4OOh97yg== -----END CERTIFICATE----- diff --git a/client/tp-player/bar.cpp b/client/tp-player/bar.cpp index 5ff3f28..dcdf150 100644 --- a/client/tp-player/bar.cpp +++ b/client/tp-player/bar.cpp @@ -103,7 +103,8 @@ bool Bar::init(MainWindow* owner) { int i = 0; for(i = 0; i < res__max; ++i) { QString name; - name.sprintf(":/tp-player/res/bar/%s.png", img_res[i].name); + QTextStream(&name) << ":/tp-player/res/bar/" << img_res[i].name << ".png"; + // name.asprintf(":/tp-player/res/bar/%s.png", img_res[i].name); if(!m_res[i].load(name)) return false; } @@ -223,7 +224,8 @@ void Bar::_init_imgages() { int h = fm.height(); if(h < m_res[res_chkbox_normal].height()) h = m_res[res_chkbox_normal].height(); - m_rc_skip = QRect(0, 0, fm.width(LOCAL8BIT("鏃犳搷浣滃垯璺宠繃")) + CHKBOX_RIGHT_PADDING + m_res[res_chkbox_normal].width(), h); + // m_rc_skip = QRect(0, 0, fm.width(LOCAL8BIT("鏃犳搷浣滃垯璺宠繃")) + CHKBOX_RIGHT_PADDING + m_res[res_chkbox_normal].width(), h); + m_rc_skip = QRect(0, 0, fm.horizontalAdvance(LOCAL8BIT("鏃犳搷浣滃垯璺宠繃")) + CHKBOX_RIGHT_PADDING + m_res[res_chkbox_normal].width(), h); } int w = m_rc_skip.width(); @@ -272,7 +274,8 @@ void Bar::_init_imgages() { pp.setFont(font); { QFontMetrics fm = pp.fontMetrics(); - m_rc_time_passed = QRect(0, 0, fm.width("00:00:00"), fm.height()); + // m_rc_time_passed = QRect(0, 0, fm.width("00:00:00"), fm.height()); + m_rc_time_passed = QRect(0, 0, fm.horizontalAdvance("00:00:00"), fm.height()); m_rc_time_total = m_rc_time_passed; } @@ -330,9 +333,11 @@ void Bar::_ms_to_str(uint32_t ms, QString& str) { s = s % 60; if(h > 0) - str.sprintf("%02d:%02d:%02d", h, m, s); + // str.sprintf("%02d:%02d:%02d", h, m, s); + str = QString("%1:%2:%3").arg(h, 2, 10, QLatin1Char('0')).arg(m, 2, 10, QLatin1Char('0')).arg(s, 2, 10, QLatin1Char('0')); else - str.sprintf("%02d:%02d", m, s); + // str.sprintf("%02d:%02d", m, s); + str = QString("%1:%2").arg(m, 2, 10, QLatin1Char('0')).arg(s, 2, 10, QLatin1Char('0')); } void Bar::update_passed_time(uint32_t ms) { @@ -714,5 +719,3 @@ void Bar::draw(QPainter& painter, const QRect& rc_draw){ } } } - - diff --git a/client/tp-player/mainwindow.cpp b/client/tp-player/mainwindow.cpp index fca70e2..1345bee 100644 --- a/client/tp-player/mainwindow.cpp +++ b/client/tp-player/mainwindow.cpp @@ -338,7 +338,8 @@ void MainWindow::_do_update_data(UpdateData* dat) { } else { QString _port; - _port.sprintf("%d", m_rec_hdr.basic.conn_port); + QTextStream(&_port) << m_rec_hdr.basic.conn_port; + // _port.sprintf("%d", m_rec_hdr.basic.conn_port); title = QString(LOCAL8BIT("鐢ㄦ埛 %1 璁块棶 %2:%3 鐨 %4 璐﹀彿").arg(m_rec_hdr.basic.user_username, m_rec_hdr.basic.conn_ip, _port, m_rec_hdr.basic.acc_username)); } diff --git a/client/tp-player/thr_data.cpp b/client/tp-player/thr_data.cpp index 71da262..de9561a 100644 --- a/client/tp-player/thr_data.cpp +++ b/client/tp-player/thr_data.cpp @@ -278,8 +278,10 @@ void ThrData::_run() { // 濡傛灉鏁版嵁鏂囦欢灏氭湭鎵撳紑锛屽垯鎵撳紑瀹 if(fdata == nullptr) { - str_fidx.sprintf("%d", m_file_idx+1); - QString tpd_fname = QString("%1/tp-rdp-%2.tpd").arg(m_data_path, str_fidx); + //str_fidx.sprintf("%d", m_file_idx+1); + //QString tpd_fname = QString("%1/tp-rdp-%2.tpd").arg(m_data_path, str_fidx); + QString tpd_fname; + QTextStream(&tpd_fname) << m_data_path << "/tp-rdp-" << (m_file_idx+1) << ".tpd"; tpd_fname = QDir::toNativeSeparators(tpd_fname); QFileInfo fi_tpd(tpd_fname); diff --git a/client/tp-player/thr_download.cpp b/client/tp-player/thr_download.cpp index cbfe0f7..b8f4eaa 100644 --- a/client/tp-player/thr_download.cpp +++ b/client/tp-player/thr_download.cpp @@ -98,7 +98,8 @@ void ThrDownload::_run() { if(m_need_stop) break; QString str_fidx; - str_fidx.sprintf("%d", file_idx+1); + QTextStream(&str_fidx) << (file_idx+1); + // str_fidx.asprintf("%d", file_idx+1); QString tpd_fname = QString("%1/tp-rdp-%2.tpd").arg(m_data_path, str_fidx); tpd_fname = QDir::toNativeSeparators(tpd_fname); diff --git a/client/tp-player/util.h b/client/tp-player/util.h index 8ff938b..ffab6e1 100644 --- a/client/tp-player/util.h +++ b/client/tp-player/util.h @@ -1,7 +1,7 @@ 锘#ifndef TP_PLAYER_UTIL_H #define TP_PLAYER_UTIL_H -#include +#include class TimeUseTest { public: @@ -23,7 +23,7 @@ public: uint32_t count() const {return m_count;} private: - QTime m_time; + QElapsedTimer m_time; uint32_t m_used_ms; uint32_t m_count; }; diff --git a/common/libex/include/ex/ex_thread.h b/common/libex/include/ex/ex_thread.h index 376b80d..a030406 100644 --- a/common/libex/include/ex/ex_thread.h +++ b/common/libex/include/ex/ex_thread.h @@ -168,12 +168,12 @@ public: #else // timeval.tv_usec ==== ms // timespec.tv_nsec === nano-second - struct timeval now = { 0 }; - struct timespec out_time = { 0 }; + struct timeval now = {0}; + struct timespec out_time = {0}; gettimeofday(&now, nullptr); uint64_t abs_time_ms = now.tv_sec * 1000ll + now.tv_usec + timeout_ms; - out_time.tv_sec = abs_time_ms / 1000ll; + out_time.tv_sec = abs_time_ms / 1000ll; out_time.tv_nsec = (long)((abs_time_ms % 1000ll) * 1000ll); pthread_cond_timedwait(&m_cond, &m_mutex, &out_time); @@ -192,7 +192,7 @@ private: #ifdef EX_OS_WIN32 #else pthread_mutex_t m_mutex; - pthread_cond_t m_cond; + pthread_cond_t m_cond; #endif }; @@ -200,7 +200,7 @@ class ExEventHelper { public: explicit ExEventHelper(ExEvent& event) : - m_event(event) + m_event(event) { #ifdef EX_OS_WIN32 #else @@ -222,7 +222,9 @@ private: // 鍘熷瓙鎿嶄綔 int ex_atomic_add(volatile int* pt, int t); + int ex_atomic_inc(volatile int* pt); + int ex_atomic_dec(volatile int* pt); // 绾跨▼鐩稿叧鎿嶄綔 diff --git a/config.ini.in b/config.ini.in deleted file mode 100644 index bb963ae..0000000 --- a/config.ini.in +++ /dev/null @@ -1,40 +0,0 @@ -[toolchain] -#============================================ -# for Windows -#============================================ - -# Need wget to download necessary dependency files. -wget = C:\Program Files (x86)\wget\wget.exe - -# Need 7z to unzip downloaded files. -7z = C:\Program Files (x86)\7zip\7z.exe - -# need perl to build openssl on Windows, if not set, default to get it from register. -# suggest install ActivePerl. -#perl = C:\Perl\bin\perl.exe - -# need nasm to build openssl on Windows, if not set, default to locate it from register. -#nasm = C:\Users\username\AppData\Local\NASM\nasm.exe - -# if not set nsis path, default to get it by register. -#nsis = C:\Program Files (x86)\NSIS\Unicode\makensis.exe - -# if not set msbuild path, default to get it by register. -#msbuild = C:\Program Files (x86)\MSBuild\14.0\bin\MSBuild.exe - -# need Qt >= 5.12 to build recorder player. -qt = C:\Qt\Qt5.12.0\5.12.0\msvc2017 - -# ============================================ -# for Linux -# ============================================ - -# if not set cmake path, default to '/usr/bin/cmake' -cmake = /opt/cmake/bin/cmake - -# ============================================ -# for MacOS -# ============================================ - -# need Qt >= 5.12 to build recorder player. -qt = /Users/apex/apps/qt5.13.1/5.13.1/clang_64/bin diff --git a/config.json.in b/config.json.in index b765354..4cb44c5 100644 --- a/config.json.in +++ b/config.json.in @@ -1,9 +1,27 @@ { - "toolchain": { - "pyexec": "C:\\Program Files(x86)\\python-3.7\\python.exe", - "qt_path": "C:\\Qt\\Qt5.12.0\\5.12.0\\msvc2017", - "cmake": "C:\\Program Files(x86)\\CMake\\bin\\cmake.exe" + "#.comment": { + "#.0": "This is configure file for build teleport project. You should copy this file to", + "#.1": "config.PLATFORM.json and modify it to fit your development environment.", + "#.3": "PLATFORM should be one of windows/linux/macos." }, + + "#.toolchain": "path of toolchain, if not set, default to find them from register(win), /usr/bin or /usr/local/bin (linux/macos).", + "#.toolchain.example.macos": { + "qt_path": "/opt/Qt/5.15.2/clang_64/bin", + "cmake": "/usr/local/bin/cmake" + }, + "#.toolchain.example.linux": { + "qt_path": "", + "cmake": "/opt/cmake/bin/cmake" + }, + "#.toolchain.example.windows": { + "qt_path": "C:\\Qt\\Qt5.15.2\\5.15.2\\msvc2017", + "cmake": "C:\\Program Files(x86)\\CMake\\bin\\cmake.exe", + "wget": "", + "7z": "", + }, + + "remote": { "short-name-1": { "type": "linux", diff --git a/make.sh.in b/make.sh.in new file mode 100644 index 0000000..521834e --- /dev/null +++ b/make.sh.in @@ -0,0 +1,160 @@ +#!/bin/bash + +PATH_ROOT=$(cd "$(dirname "$0")"; pwd) + +# ================================================================= +# Please change the following 2 lines to fit your development +# environment if you want to build teleport components for such +# platforms. +# ================================================================= +PY_EXEC_WINDOWS="C:\\Program Files(x86)\\python-3.7\\python.exe" +PY_EXEC_MACOS="/usr/local/bin/python3" + +set -e + +function check_cfg_file +{ + if [ ! -f "./${CFG_FILE}" ] ; then + on_error_begin "\`${CFG_FILE}\` does not exists." + echo "please copy \`config.json.in\` into \`${CFG_FILE}\`" + echo "and modify it to fit your condition, then try again." + on_error_end + fi +} + +function build_win +{ + check_cfg_file + + # find pyexec from json file + # pyexec=$(grep -P '"pyexec":' ./${CFG_FILE} | grep -Po '(?<="pyexec":)([[:space:]]*)"(.*)"') + # remove left " + #pyexec=${pyexec#*\"} + # remove right " + #pyexec=${pyexec%\"*} + + pyexec=${PY_EXEC_WINDOWS} + + # make sure configuration item exists. + if [ "${pyexec}-x" = "-x" ] ; then + on_error "\`pyexec\` not set, please check your \`${CFG_FILE}\`" + fi + + pyexec=$(cygpath -u ${pyexec}) + + if [ ! -f "${pyexec}" ] ; then + pyexec=$(cygpath -m ${pyexec}) + on_error "Sorry, need Python 3.7 or above (x86 version) to\nbuild Teleport on Windows Platform.\n\nPython interpreter not exists: ${pyexec}" + fi + + # check version and architecture of python. + # version should >= 3.7 + $("${pyexec}" -c "import platform;import sys;pyv=platform.python_version_tuple();ret=0 if int(pyv[0])>=3 and int(pyv[1])>=7 else 1;sys.exit(ret)") + if [ $? -ne 0 ]; then + on_error "Sorry, need x86 version of Python 3.7 or above." + fi + # and must be x86 version. + $("${pyexec}" -c "import platform;import sys;ret=0 if platform.architecture()[0]=='32bit' else 1;sys.exit(ret)") + if [ $? -ne 0 ]; then + on_error "Sorry, need x86 version of Python 3.7 or above." + fi + + ${pyexec} -B "${PATH_ROOT}/build/build.py" $@ +} + +function build_linux +{ + check_cfg_file + + if [ `id -u` -eq 0 ]; then + on_error "Do not build as root." + fi + + if [ ! -f "/etc/centos-release" ] ; then + on_error "Sorry, build script works on CentOS 7 only." + fi + + PYEXEC=${PATH_ROOT}/external/linux/release/bin/python3.7 + PYSTATIC=${PATH_ROOT}/external/linux/release/lib/libpython3.7m.a + + if [ ! -f "${PYSTATIC}" ] ; then + + X=$(yum list installed | grep "libffi-devel") + if [ "$X-x" = "-x" ] ; then + on_error "Need libffi-devel to build Python, try:\r\n sudo yum install libffi-devel" + fi + + X=$(yum list installed | grep "zlib-devel") + if [ "$X-x" = "-x" ] ; then + on_error "Need zlib-devel to build Python, try:\r\n sudo yum install zlib-devel" + fi + + echo "python static not found, now build it..." + "${PATH_ROOT}/build/build-py-static.sh" + + if [ ! -f "${PYSTATIC}" ] ; then + on_error "can not build python static." + fi + fi + + + ${PYEXEC} -B "${PATH_ROOT}/build/build.py" $@ +} + +function build_macos +{ + check_cfg_file + + ${PY_EXEC_MACOS} -B "${PATH_ROOT}/build/build.py" $@ +} + +function on_error() +{ + echo -e "\033[01m\033[31m" + echo "==================[ !! ERROR !! ]==================" + echo "" + echo -e $1 + echo "" + echo "===================================================" + echo -e "\033[0m" + exit 1 +} + +function on_error_begin() +{ + echo "" + echo -e "\033[01m\033[31mERROR: ${1}\033[0m" + echo "" +} +function on_error_end() +{ + exit 1 +} + + +############################################## +# main +############################################## + +export TP_BUILD_SYSTEM="start" + +SYS_NAME=`uname -s` +SYS_NAME=${SYS_NAME:0:4} # cut first 4 char. +# echo ${SYS_NAME} +# SYSTEM=${SYSTEM^^} # upper case + +if [ ${SYS_NAME} = "Linu" ] ; then + export CFG_FILE=config.linux.json + build_linux $@ +elif [ ${SYS_NAME} = "Darw" ] ; then + export CFG_FILE=config.macos.json + build_macos $@ +elif [ ${SYS_NAME} == "MSYS" ] ; then + export CFG_FILE=config.windows.json + build_win $@ +else + on_error_begin "Unsupported platform." + echo "To build teleport on Windows, please read document at:" + echo " https://docs.tp4a.com/develop/windows" + on_error_end +fi diff --git a/server/share/etc/rdp-ca.pem b/server/share/etc/rdp-ca.pem deleted file mode 100644 index ccf4e02..0000000 --- a/server/share/etc/rdp-ca.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID/TCCAuWgAwIBAgIBADANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJDTjEQ -MA4GA1UECgwHRU9NU29mdDEcMBoGA1UECwwTRU9NU29mdCBUZWxlcG9ydCBDQTEc -MBoGA1UEAwwTRU9NU29mdCBUZWxlcG9ydCBDQTAgFw0xNjA4MDEwNjE5MThaGA8y -MTE2MDcwODA2MTkxOFowWzELMAkGA1UEBhMCQ04xEDAOBgNVBAoMB0VPTVNvZnQx -HDAaBgNVBAsME0VPTVNvZnQgVGVsZXBvcnQgQ0ExHDAaBgNVBAMME0VPTVNvZnQg -VGVsZXBvcnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDnWxeM -jqsyXnZqs8fxXGyrcXJZh5sVYcRBrZsjmll9jzqPzKj5cIs51EXQJQeM8b+soevL -p1pbXIv+fA1ut+bwanh7eHH43K6YHJpLklqCT2KIQlDuI3UUG0oeJFAIWzmUQjoH -BFRzfBLewkE2EcQCGyOCynVW0uo0FiB8DydzCX7z4QF/iZDcp2uYzaNRIzSA9ccB -Y93lb/BVOdNUrm61fqbZCFfXb0zbGrq5I5wo16RpNvsBnrlYOdjBca6YBHKUlFbh -xP1aOSAjDAWwxDpRRbh5rFdpSN3pW3BqepUNnYGaeEJWWj41gnr5dubGsQ1cTT9P -IJPoMmwmYeuJEGs1AgMBAAGjgckwgcYwHQYDVR0OBBYEFE//VRPN8ZMito7K2fnr -1JnYgwx9MIGDBgNVHSMEfDB6gBRP/1UTzfGTIraOytn569SZ2IMMfaFfpF0wWzEL -MAkGA1UEBhMCQ04xEDAOBgNVBAoMB0VPTVNvZnQxHDAaBgNVBAsME0VPTVNvZnQg -VGVsZXBvcnQgQ0ExHDAaBgNVBAMME0VPTVNvZnQgVGVsZXBvcnQgQ0GCAQAwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEB -ADaRgGigRpDQE7jLAVtd7iivYn1pQqWW27ZpxdFl/tUG4MJ6sV1k3hY1mD306Qd+ -jfQeaPCOXDfp+kx+EEGiuUy2XC1YJqBjV+zf7oaN1umLvCrnqooFqbwU5qYvc/2N -p0r8gbRZCmHzZmUrz3wvSqvCcmVeSC0Ya/VUSjgYu3l8ZgoQNk3YgLY79oHyePRn -7RVNotpw6s3HJgq4yExmUBLsPoZqtBasFkMV+rLkccQpr5Wr+v0fMcwqwIfEMxc9 -JvTnrMNlxz9+XJKeFZJUOO2JkVbL3vaTZqh46BEkx/oJUw6Oy3oP9el+ZNbf4ccF -LoLgkdBcgnboXkvkYBajD/U= ------END CERTIFICATE----- \ No newline at end of file diff --git a/server/share/etc/rdp-server-cert.pem b/server/share/etc/rdp-server-cert.pem deleted file mode 100644 index ac068e2..0000000 --- a/server/share/etc/rdp-server-cert.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEDjCCAvagAwIBAgIEASUKPDANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJD -TjEQMA4GA1UECgwHRU9NU29mdDEcMBoGA1UECwwTRU9NU29mdCBUZWxlcG9ydCBD -QTEcMBoGA1UEAwwTRU9NU29mdCBUZWxlcG9ydCBDQTAeFw0xNjA4MDEwNjE5MjJa -Fw0yNjA3MzAwNjE5MjJaMFwxCzAJBgNVBAYTAkNOMRAwDgYDVQQKDAdFT01Tb2Z0 -MRwwGgYDVQQLDBNFT01Tb2Z0IFRlbGVwb3J0IENBMR0wGwYDVQQDDBR0ZWxlcG9y -dC5lb21zb2Z0Lm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMYx -I2TwQOY7rUpkKaLpqGPlwevpICucp8TrE79visx54WlMJ/dQTx8+zTfUi61W/UhX -yrZcl4FoUhkI72bNYLROU+NUQdUTQqlwknqDG/IThEoEKv5xz5DKgEXY57MFrzaR -Fn5gz8SFDlVzFQrvx8z9sSI/4P419Y6Nsyp9FuINsIZCMnPAfdOWR5BIT7b1wU2Q -7+xQC6ULDxG9uxBQveM1SbkOpAPlPmER4mHXfLvCbAMDOwSAGO3Ip0M/7VJrvV1c -GU5VHXR35lZmymDQ+TTN2aFdS1RlwEcAdd14XKNgvSYnr//Opy7Krb30UTRQDWo4 -XZYUsZSgbsnsCsj67PcCAwEAAaOB2DCB1TAdBgNVHQ4EFgQUcDe6t/VElznpzqfN -kJc98FigjbQwgYMGA1UdIwR8MHqAFE//VRPN8ZMito7K2fnr1JnYgwx9oV+kXTBb -MQswCQYDVQQGEwJDTjEQMA4GA1UECgwHRU9NU29mdDEcMBoGA1UECwwTRU9NU29m -dCBUZWxlcG9ydCBDQTEcMBoGA1UEAwwTRU9NU29mdCBUZWxlcG9ydCBDQYIBADAM -BgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIF4DATBgNVHSUEDDAKBggrBgEFBQcDATAN -BgkqhkiG9w0BAQsFAAOCAQEALjjdSvb1rt4QKTh7Bnyc4eP7912Vt+aZz8+0BS4E -KF9ZOS7cjO0GAffKiFfo/OGrbS8rc3tfg3Q/2ktb9dmjAV2QNfCBX5bH0UYSBvlT -IoTHVOvo4v8TEh7OCT3OiwxYzp3jAZy0dVY4UkQ1ZB9UscVMtH5POJGeGRLnHwDv -UK+u9HXvV5B27hVYpDhZwiOroOG90CCYJEgA59JDPojSWd35OjPN2A9yMd0WoWBm -zEk7nYAoJmP1a4DNRdOYGKZHZBe+JxfDKuMRJEwWqJZy7aqcnPH0umjIIsSNnjeT -oJFJdygVAU5oalPAxr9gZuTnWytDiTs6a912RoDS0XsrIw== ------END CERTIFICATE----- \ No newline at end of file diff --git a/server/share/etc/rdp-server-key.pem b/server/share/etc/rdp-server-key.pem deleted file mode 100644 index 985cfc5..0000000 --- a/server/share/etc/rdp-server-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDGMSNk8EDmO61K -ZCmi6ahj5cHr6SArnKfE6xO/b4rMeeFpTCf3UE8fPs031IutVv1IV8q2XJeBaFIZ -CO9mzWC0TlPjVEHVE0KpcJJ6gxvyE4RKBCr+cc+QyoBF2OezBa82kRZ+YM/EhQ5V -cxUK78fM/bEiP+D+NfWOjbMqfRbiDbCGQjJzwH3TlkeQSE+29cFNkO/sUAulCw8R -vbsQUL3jNUm5DqQD5T5hEeJh13y7wmwDAzsEgBjtyKdDP+1Sa71dXBlOVR10d+ZW -Zspg0Pk0zdmhXUtUZcBHAHXdeFyjYL0mJ6//zqcuyq299FE0UA1qOF2WFLGUoG7J -7ArI+uz3AgMBAAECggEBALJKShjnuLplPQMLEBmqMP2NFuJuma4iAxq2jtFMOoSv -sAPVqq5k5IirKlnrLqwE8V0+/PEIYpLbkd9LlnHYmAIb5INArOhNp05eIqdrgpxG -yl77WOIE6EDMqpArDGST3IcuBhoyZTXYrIhaOrfX9NmH7u1soa6ORBS1jFPQq+E1 -8VmJnZaCJ3n0hopUWNg6ZxvysrJSetGNAlP20VKSHwbCAcRRsZU8h7sfAleW7uN5 -N9lE89kRxJPxz2SPAtLlFNzhhYcJzPTSASIuCXkjwh5+uDsr1Sx9GPcx4NqtvgCt -RMZxdtR5o6nnTVSaOTne24xCXpb1Vgowh5pz6iMtyOECgYEA8ClIEiHKi41oNMsP -veP0Z+HyFjDvuNNdQHAEek4MSfWvumiRN7p8mjlf88fBxsWxg7EVMuTSyhTjRDyh -XAhsf2+raqeztvCa6FGKl0DKSMUDBAOmhGkJ/4wKEOVaUsgOGtEwYtIkG0ygnAel -CAU1hyBcHqzcrZjBKKt3+6VRRmsCgYEA00NGjZrKIijg75p2rzFJbtxaphb99WRF -6DHLJ5pJYPCXbhzEilJ7xwz4RQkZ5z5fS9U8L9Zs5aLwGzZs7hC7c8N0v8YxUa2s -tzSKlbbnf3bJ0LFFZDXpxZwV6zGLgvoRoijSa/t8Rm1hZHU6/bc9lhA0ZdimMw48 -vtZOGwYIHqUCgYBFHNwsu6S6PFt8teM11mADdTZhxHt4SPtRC+t99u/6aMXFc0o3 -K2eoSlKeqSHOvh2ztEZReyBeH1y3ymr1PUdb9RrzeodxYhRyPuUPWgncnzWa9iH5 -gPDrpbVP33D62a+VcBXommjhok+mF10azcT1ug5IlZ58JrWPqqjAtnaJOQKBgBh/ -xL7HJImxk+Q1VW4bmRhyFVENeYXriu/SVmzRR5EmVWk/jMs9pXz/1Aqtc4ONiB+T -KtehVh+LNazyMs+owRQ7pl5W7YE7UrwsK6YQ/+eYLu80n4dveRyhbSlJJZSay1Cy -yzQahd7k8FZmAeFKTqoIVws4hI2HKSQ4VfZsTKTBAoGBAN7btCRS5BCiF9U2sT4l -9e3wHDxFbOcY62hMtSnWjiN+3SdujQVFzFvpN0eNO5PPHU71hcM27bcCq8yPHROy -zb3Esbh87HjLjdLXmxvLlBGqQ95czLEF2t69k1pXtX1zYVMka1nEu0H4a17A9JCC -I9E7p6GtflkuY/XW9pij0Akm ------END PRIVATE KEY----- \ No newline at end of file diff --git a/server/share/etc/tp_rdp_ca.crt b/server/share/etc/tp_rdp_ca.crt new file mode 100644 index 0000000..7be85a8 --- /dev/null +++ b/server/share/etc/tp_rdp_ca.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDhDCCAmygAwIBAgIBADANBgkqhkiG9w0BAQsFADAzMQswCQYDVQQGEwJDTjEN +MAsGA1UEChMEdHA0YTEVMBMGA1UEAxMMVFA0QSBSb290IENBMCAXDTIxMDcwMzA1 +NTA0N1oYDzIxMjEwNjA5MDU1MDQ3WjAzMQswCQYDVQQGEwJDTjENMAsGA1UEChME +dHA0YTEVMBMGA1UEAxMMVFA0QSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEArk1q4RZGBRJwJPYjEVUskFiFadz6trJC5430DFxwLVCEvMHh +KlgTb/a1jC53DmGsbJHlNs9yd7ja08AUITsbcUnST976LFpOe+ck6E2x1rhlWrXP +rN1B+xzfFy1AMNubr97MHoCfrdErWxKzaRUX55GRXbWMsugcfsvr7t8JQh3xbo91 +0Xcq0QvC7t5PoDQ6VX6Uc0Utx7lbW4OoA7wU4d2JjUcvBlQHQsu/qZLojzXyEl2Q +AwfILypiapl01iBM2XPpaPpXC58//Etx/ul3oHsLsPEUzxbiCptx8xjE9IWaKqf6 +GlnjhpZzw8W24h2CvWyy9EYw3QdUI4EBQhVZtwIDAQABo4GgMIGdMB0GA1UdDgQW +BBR7wuXeCTbB+3mfLFcwm3anZ2C4UDBbBgNVHSMEVDBSgBR7wuXeCTbB+3mfLFcw +m3anZ2C4UKE3pDUwMzELMAkGA1UEBhMCQ04xDTALBgNVBAoTBHRwNGExFTATBgNV +BAMTDFRQNEEgUm9vdCBDQYIBADAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAfd12+QaYrtM/KfZnSqDLwvGksuOZ1OOX +8xApJo35GPpFLlFTdkwQ9Z3unWXIfJGFYGAiRpy83ghraOaxqGDngqJdr1hT0RTQ +KqVlBZufbB010Dhl/6TcetZTeXLa3Xjw9d9jc79Prmc/485pa6lh2QSodHJwfz7J +zzUe5g09hzLdqrurIGdsMzFRMRwo2KpXMhx4jEqk4IMTD9rQnzCxBWS8rPbsnDTm +f0/kW3R70JbUFN5Dnd669g6t1L923+ICysR6q+Ep7cGhY1b9iMCn4Ia8r4VwgYuH +PAvw0ajzvj7RRW0M9Szo2jaWXHz6XeKmK3t8TW2x4gOn+irOenItEg== +-----END CERTIFICATE----- diff --git a/server/share/etc/tp_rdp_server.crt b/server/share/etc/tp_rdp_server.crt new file mode 100644 index 0000000..760087e --- /dev/null +++ b/server/share/etc/tp_rdp_server.crt @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDkzCCAnugAwIBAgIGAhNQQY0DMA0GCSqGSIb3DQEBCwUAMDMxCzAJBgNVBAYT +AkNOMQ0wCwYDVQQKEwR0cDRhMRUwEwYDVQQDEwxUUDRBIFJvb3QgQ0EwHhcNMjEw +NzAzMDU1MTE5WhcNMjIwNzAzMDU1MTE5WjAXMRUwEwYDVQQDEwxyZHAudHA0YS5j +b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuEYYjr5xkYOMV4Lr8 +y4iQh+twJXQpsVs6j9we/gwCe+isASIorgkeZUKuQ9b4/geeYg+o3jYIaJiW0/Q0 +Gbtg98oPYBS5ck5127lYpKnWQpSHZSvqTW2QlQ33GOZCwSVXMG+nAm1yfMCi1hcX +qh/qZ6HJuJCeseIY8rX9+dGUPlfaUwUepSiU0y5FKrVRUBV4iFXVopyQWm1kSCKS +ymHpvI3pRvRGTM4bWk4XI8ucmZihPTVzecyLta+iV5TyHMvUlnss6ix9TmArFU2f +elSOwSfRkemy9ukjsTaY/MI6Z0tq9wcTzFKwqoKXQL72ThoOOYDc6+Ne570X8OmU +AngjAgMBAAGjgcgwgcUwHQYDVR0OBBYEFGs2OpTmmURVN5bUr/Emhqf6jcPfMFsG +A1UdIwRUMFKAFHvC5d4JNsH7eZ8sVzCbdqdnYLhQoTekNTAzMQswCQYDVQQGEwJD +TjENMAsGA1UEChMEdHA0YTEVMBMGA1UEAxMMVFA0QSBSb290IENBggEAMAwGA1Ud +EwEB/wQCMAAwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMBcGA1Ud +EQQQMA6CDHJkcC50cDRhLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAOmd9QaJ3ItJo +npdK9p6sGDB9RTN/761Z6j1gcZoWrF36CeO7k/wQVxjoFbjPAJ/TK7ek8dgB/Qkr +VQLII13b1N7z0Gc5sXAmOg0HVmgE9BbDvqKYmdlcvN32TaLhUUMe08izCePEoV8K +iWegTGSLxzGUzBkSeUQy0XIAyn7r6EOnvhDwdORuwRXCx06Q9vHyanFCwb27fQb/ +eI5eZCoDJND2IjOXT2m8XibBXLO/aR0opCKI/PQ/iDAMGcUyO2Fz5CbG5BSDhi9C +TpxUXll6Z1IXih1/WHsvistLnXBEMFiOrwog/f0yT3eeGSz3TZxQouhsLjxBhmda +Us6pyQt91Q== +-----END CERTIFICATE----- diff --git a/server/share/etc/tp_rdp_server.key b/server/share/etc/tp_rdp_server.key new file mode 100644 index 0000000..d9426c3 --- /dev/null +++ b/server/share/etc/tp_rdp_server.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDuEYYjr5xkYOMV +4Lr8y4iQh+twJXQpsVs6j9we/gwCe+isASIorgkeZUKuQ9b4/geeYg+o3jYIaJiW +0/Q0Gbtg98oPYBS5ck5127lYpKnWQpSHZSvqTW2QlQ33GOZCwSVXMG+nAm1yfMCi +1hcXqh/qZ6HJuJCeseIY8rX9+dGUPlfaUwUepSiU0y5FKrVRUBV4iFXVopyQWm1k +SCKSymHpvI3pRvRGTM4bWk4XI8ucmZihPTVzecyLta+iV5TyHMvUlnss6ix9TmAr +FU2felSOwSfRkemy9ukjsTaY/MI6Z0tq9wcTzFKwqoKXQL72ThoOOYDc6+Ne570X +8OmUAngjAgMBAAECggEBAIdkv/0bqr4LvBp9LNsIhipsoqGtK1tq2o97sZyOrxXa +koEARAUOtXDr9fhV7LS/BGY3LuDDP8eYdO+Sq5fV6pNDWU9VPXQaZjTxOYAIZe7M +/tvh1g/y6RUJMGAPcSUV476qdVVuNACgoo35ZDi5MF2HgqPOq7EVSZkWsBo5MdA0 +a8EPf/YktcThEjdqxmAfsM96OIxSLV4HSsnjoi12YgeGMPXjJ08o+kTcKdK66g3y +wlSzHijsd33L8ppKZVGxo9LgyMIF+mNqb+5eJaeDCZxIGO1XkOaYEHmPjybVRznF +do7/kon3eDhwzHt3C2/kOu9x/iJ71DQa8YinXb85s8ECgYEA+U2336pVtKYOWczf +CTYgFnWVB0uKEJsLeksQV/zPOvZmu7oTgpIQ2LO2vUkEI738RTInTSJdIzWdkEeP +JIai+tYta/tje7cqGL7i/NakLHYZbsQ4WaCIgM54qjSBgExt3nz0iIqeOIzTFjxx +rzmQ/39fL5Ft/hf8679SlxdgrU0CgYEA9HaMvjlt+gxku69tsyysjjXPlz6wdveH +fCEWFKW/Q1FZR4YnijHXj1PQTUhLTlq1K9IQOm961qcCFfiArjUj1zoNN52Puf7e +hxnmBVuYqaq/pOduyNhmclJ5KWNoNEET2lq1ZHrvVk7buvSHCG/CeBu0QXB1ORKA +1yVYqO3Fwy8CgYEA0oGnYzsHB3S35WeyZKrJSW2bmv9T41WnyWmcsU8NBLKOaLFk +S/peMzz8brQ6xJtlamBBA0ai8loRY4So/6SX9cnnrKgmho5RA3gbXnc3RTurmfYh +xrxgxrKQ/Nc9CkJ++0Dzkl/J3eI7UylSrSyknLjGfPoFsGo87Csu59mbjnkCgYEA +yYwz3WFb2pv9MQAhYWejnFuhGwEEXBEYEq70lXFRjx6yjNV+I+GT5wci5ZSFAcSn +Ocmmt4bRr8dhYNvQu8/0DK4/12p/5MjMjnY7vo8V/kxYVIy6ObywOfDlE8pxTyOY +Sp4ejwkL6gx5/Fk+OyZpHr04j/s3qiYnMzoHLr9aHOECgYEAxbqnw4OkmlvN+KG3 +UPVZHujhVkfIwhvvXLzKm92g5ZeJfsbh5GWwlduNDeediosmEZp8ogdHzRTaL761 +Uc7F9+dcyxnfxQnpS0wXllyVBYPnn6Zme0b1VZYJdz3ly/caT0IhwYTkEIp24lop +Y00jxcR5DCdCr5WJ4vhsIbK3m/g= +-----END PRIVATE KEY----- diff --git a/server/tp_core/core/CMakeLists.txt b/server/tp_core/core/CMakeLists.txt index 5b9f238..fd2f3d6 100644 --- a/server/tp_core/core/CMakeLists.txt +++ b/server/tp_core/core/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.18) MESSAGE(STATUS "=======================================================") MESSAGE(STATUS " tp_core") diff --git a/server/tp_core/core/ts_env.h b/server/tp_core/core/ts_env.h index 44775b9..2936dcc 100644 --- a/server/tp_core/core/ts_env.h +++ b/server/tp_core/core/ts_env.h @@ -11,7 +11,7 @@ public: bool init(bool load_config); - ExIniFile& get_ini(void) { return m_ini; } + ExIniFile& get_ini() { return m_ini; } public: ex_wstr m_exec_file; diff --git a/server/tp_core/protocol/ssh/CMakeLists.txt b/server/tp_core/protocol/ssh/CMakeLists.txt index 91934b4..9cdef4f 100644 --- a/server/tp_core/protocol/ssh/CMakeLists.txt +++ b/server/tp_core/protocol/ssh/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.18) MESSAGE(STATUS "=======================================================") MESSAGE(STATUS " libtpssh") diff --git a/server/tp_core/protocol/telnet/CMakeLists.txt b/server/tp_core/protocol/telnet/CMakeLists.txt index 9ac0d66..8a52968 100644 --- a/server/tp_core/protocol/telnet/CMakeLists.txt +++ b/server/tp_core/protocol/telnet/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.18) MESSAGE(STATUS "=======================================================") MESSAGE(STATUS " libtptelnet") diff --git a/server/tp_core/testssh/CMakeLists.txt b/server/tp_core/testssh/CMakeLists.txt index f78a3a3..d9914b3 100644 --- a/server/tp_core/testssh/CMakeLists.txt +++ b/server/tp_core/testssh/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.18) MESSAGE(STATUS "=======================================================") MESSAGE(STATUS " testssh") diff --git a/server/www/teleport/webroot/app/app_env.py b/server/www/teleport/webroot/app/app_env.py index 9c3f35b..2c06f91 100644 --- a/server/www/teleport/webroot/app/app_env.py +++ b/server/www/teleport/webroot/app/app_env.py @@ -16,24 +16,25 @@ import sys __all__ = ['PATH_APP_ROOT', 'PATH_DATA'] -PATH_DATA = '' - -# 灏哖ython瀹夎鐨勬墿灞曞簱绉婚櫎锛岄伩鍏嶅紑鍙戣皟璇曚笌姝e紡鍙戝竷鎵渚濊禆鐨勫簱鏂囦欢涓嶄竴鑷村鑷村彂甯冪殑鐗堟湰鏃犳硶杩愯 -x = [] -for p in sys.path: - if p.find('site-packages') != -1 or p.find('dist-packages') != -1: - x.append(p) -for p in x: - sys.path.remove(p) - -PATH_APP_ROOT = os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', '..')) - # 妫鏌ユ搷浣滅郴缁燂紝鐩墠鏀寔Win/Linux/MacOS PLATFORM = platform.system().lower() if PLATFORM not in ['windows', 'linux', 'darwin']: print('web server does not support `{}` platform yet.'.format(PLATFORM)) sys.exit(1) +PATH_DATA = '' + +# 灏哖ython瀹夎鐨勬墿灞曞簱绉婚櫎锛岄伩鍏嶅紑鍙戣皟璇曚笌姝e紡鍙戝竷鎵渚濊禆鐨勫簱鏂囦欢涓嶄竴鑷村鑷村彂甯冪殑鐗堟湰鏃犳硶杩愯 +if PLATFORM != 'darwin': + x = [] + for p in sys.path: + if p.find('site-packages') != -1 or p.find('dist-packages') != -1: + x.append(p) + for p in x: + sys.path.remove(p) + +PATH_APP_ROOT = os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', '..')) + BITS = 'x64' if '32bit' == platform.architecture()[0]: BITS = 'x86' @@ -44,9 +45,12 @@ if _ext_path not in sys.path: sys.path.append(_ext_path) # 纭畾涓浜涜矾寰 -if os.path.exists(os.path.join(os.path.dirname(sys.executable), 'dev_mode')): - # 寮鍙戣皟璇曟ā寮 - PATH_DATA = os.path.abspath(os.path.join(PATH_APP_ROOT, '..', '..', 'share')) - -else: +PATH_DATA = os.path.abspath(os.path.join(PATH_APP_ROOT, '..', '..', 'share')) +# if os.path.exists(os.path.join(os.path.dirname(sys.executable), 'dev_mode')): +# # 寮鍙戣皟璇曟ā寮 +# PATH_DATA = os.path.abspath(os.path.join(PATH_APP_ROOT, '..', '..', 'share')) +# +# else: +# PATH_DATA = os.path.abspath(os.path.join(PATH_APP_ROOT, '..', '..', 'data')) +if not os.path.exists(PATH_DATA): PATH_DATA = os.path.abspath(os.path.join(PATH_APP_ROOT, '..', '..', 'data')) diff --git a/server/www/teleport/webroot/app/controller/index.py b/server/www/teleport/webroot/app/controller/index.py index f1b1cb3..b237315 100644 --- a/server/www/teleport/webroot/app/controller/index.py +++ b/server/www/teleport/webroot/app/controller/index.py @@ -31,10 +31,12 @@ class CatchAllHandler(TPBaseHandler): self.write('EXIT') return + self.set_status(404) log.w('catch all, GET: {}\n'.format(self.request.uri)) self.show_error_page(TPE_HTTP_404_NOT_FOUND) def post(self): + self.set_status(404) log.w('catch all, POST: {}\n'.format(self.request.uri)) _ret = {'code': TPE_HTTP_404_NOT_FOUND, 'message': '閿欒鐨刄RI', 'data': {}} self.set_header("Content-Type", "application/json")