Fix: macOS use quality profile FPS/bitrate, add HW resolution downscaling
This commit is contained in:
@@ -821,6 +821,8 @@ BEGIN_MESSAGE_MAP(CMy2015RemoteDlg, CDialogEx)
|
||||
ON_MESSAGE(WM_UPXTASKRESULT, UPXProcResult)
|
||||
ON_MESSAGE(WM_PASSWORDCHECK, OnPasswordCheck)
|
||||
ON_MESSAGE(WM_SHOWMESSAGE, OnShowMessage)
|
||||
ON_MESSAGE(WM_ACTIVE_LICENSE_NUM, OnGetActiveLicenseCount)
|
||||
ON_MESSAGE(WM_ONLINE_HOSTNUM, OnGetOnlineHostNum)
|
||||
ON_MESSAGE(WM_SHOWNOTIFY, OnShowNotify)
|
||||
ON_MESSAGE(WM_SHOWERRORMSG, OnShowErrMessage)
|
||||
ON_MESSAGE(WM_TRIAL_RTT_ABUSE, OnTrialRttAbuse)
|
||||
@@ -1531,6 +1533,18 @@ LRESULT CMy2015RemoteDlg::OnShowNotify(WPARAM wParam, LPARAM lParam)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
LRESULT CMy2015RemoteDlg::OnGetActiveLicenseCount(WPARAM wParam, LPARAM lParam){
|
||||
int activeNum = 0;
|
||||
GetAllLicenses(&activeNum);
|
||||
return activeNum;
|
||||
}
|
||||
|
||||
LRESULT CMy2015RemoteDlg::OnGetOnlineHostNum(WPARAM wParam, LPARAM lParam) {
|
||||
CLock L(m_cs);
|
||||
int activeNum = m_HostList.size();
|
||||
return activeNum;
|
||||
}
|
||||
|
||||
LRESULT CMy2015RemoteDlg::OnShowMessage(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (wParam && !lParam) {
|
||||
@@ -5816,11 +5830,11 @@ VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject)
|
||||
const ConnAuthPacket* pkt = (const ConnAuthPacket*)szBuffer;
|
||||
int64_t skew = std::abs((int64_t)time(0) - (int64_t)pkt->timestamp);
|
||||
if (skew > CONN_AUTH_TIMESTAMP_TOLERANCE_SEC) {
|
||||
ack.status = CONN_AUTH_CLOCK_SKEW;
|
||||
Mprintf("[ConnAuth] %s: 时钟偏差 %lld 秒,拒绝\n",
|
||||
ContextObject->GetPeerName().c_str(), skew);
|
||||
PostMessageA(WM_SHOWMESSAGE, (WPARAM)new CharMsg("Connection AUTH failed. Please check the client's time."), NULL);
|
||||
} else {
|
||||
// ack.status = CONN_AUTH_CLOCK_SKEW;
|
||||
Mprintf("[ConnAuth] %s: 时钟偏差 %lld 秒,拒绝\n", ContextObject->GetPeerName().c_str(), skew);
|
||||
auto tip = "[" + ContextObject->GetPeerName() + "]" + "Please check the client's time";
|
||||
PostMessageA(WM_SHOWMESSAGE, (WPARAM)new CharMsg(tip.c_str()), NULL);
|
||||
} /*else*/ {
|
||||
BYTE sigInput[8 + 8 + 16];
|
||||
memcpy(sigInput, &pkt->clientID, 8);
|
||||
memcpy(sigInput + 8, &pkt->timestamp, 8);
|
||||
@@ -5832,12 +5846,10 @@ VOID CMy2015RemoteDlg::MessageHandle(CONTEXT_OBJECT* ContextObject)
|
||||
ContextObject->SetID(pkt->clientID);
|
||||
ContextObject->SetAuthenticated(true);
|
||||
ack.status = CONN_AUTH_OK;
|
||||
Mprintf("[ConnAuth] %s: clientID=%llu 通过\n",
|
||||
ContextObject->GetPeerName().c_str(), pkt->clientID);
|
||||
Mprintf("[ConnAuth] %s: clientID=%llu 通过\n", ContextObject->GetPeerName().c_str(), pkt->clientID);
|
||||
} else {
|
||||
ack.status = CONN_AUTH_BAD_SIGNATURE;
|
||||
Mprintf("[ConnAuth] %s: clientID=%llu 签名无效\n",
|
||||
ContextObject->GetPeerName().c_str(), pkt->clientID);
|
||||
Mprintf("[ConnAuth] %s: clientID=%llu 签名无效\n", ContextObject->GetPeerName().c_str(), pkt->clientID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -531,6 +531,8 @@ public:
|
||||
afx_msg void OnToolInputPassword();
|
||||
afx_msg LRESULT OnShowNotify(WPARAM wParam, LPARAM lParam);
|
||||
afx_msg LRESULT OnShowMessage(WPARAM wParam, LPARAM lParam);
|
||||
afx_msg LRESULT OnGetActiveLicenseCount(WPARAM wParam, LPARAM lParam);
|
||||
afx_msg LRESULT OnGetOnlineHostNum(WPARAM wParam, LPARAM lParam);
|
||||
afx_msg void OnToolGenShellcode();
|
||||
afx_msg void OnOnlineAssignTo();
|
||||
afx_msg void OnNMCustomdrawMessage(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
|
||||
@@ -53,8 +53,9 @@ static int ParseRemotePortFromFrpConfig(const std::string& frpConfig);
|
||||
static bool FreeFrpPortAllocation(int port, const std::string& expectedOwner);
|
||||
|
||||
// 获取所有授权信息
|
||||
std::vector<LicenseInfo> GetAllLicenses()
|
||||
std::vector<LicenseInfo> GetAllLicenses(int* activeNum)
|
||||
{
|
||||
if (activeNum) *activeNum = 0;
|
||||
std::lock_guard<std::recursive_mutex> _lock(LicensesIniMutex());
|
||||
std::vector<LicenseInfo> licenses;
|
||||
std::string iniPath = GetLicensesPath();
|
||||
@@ -98,6 +99,7 @@ std::vector<LicenseInfo> GetAllLicenses()
|
||||
it = kv.find("Status");
|
||||
if (it != kv.end()) info.Status = it->second;
|
||||
else info.Status = LICENSE_STATUS_ACTIVE; // 默认为有效
|
||||
if (activeNum && info.Status == LICENSE_STATUS_ACTIVE) (*activeNum)++;
|
||||
|
||||
it = kv.find("PendingExpireDate");
|
||||
if (it != kv.end()) info.PendingExpireDate = it->second;
|
||||
|
||||
@@ -102,7 +102,7 @@ public:
|
||||
};
|
||||
|
||||
// 获取所有授权信息
|
||||
std::vector<LicenseInfo> GetAllLicenses();
|
||||
std::vector<LicenseInfo> GetAllLicenses(int *activeNum=0);
|
||||
|
||||
// 更新授权状态
|
||||
bool SetLicenseStatus(const std::string& deviceID, const std::string& status);
|
||||
|
||||
@@ -105,6 +105,8 @@
|
||||
#define WM_PREVIEW_LOOP_CLOSED WM_USER+3035
|
||||
#define WM_TRIAL_RTT_ABUSE WM_USER+3036 // 试用版 RTT 反代理:服务端检测到滥用,通知主窗口弹框
|
||||
#define WM_TRIAL_WAN_IP_ABUSE WM_USER+3037 // 试用版 IP 段检测:OnAccept 发现入站为公网 IP,通知主窗口弹框
|
||||
#define WM_ACTIVE_LICENSE_NUM WM_USER+3038
|
||||
#define WM_ONLINE_HOSTNUM WM_USER+3039
|
||||
|
||||
#ifdef _UNICODE
|
||||
#if defined _M_IX86
|
||||
|
||||
Reference in New Issue
Block a user