Feature: Add Shine/HELL protocol selection to share/transfer host
Add a dedicated ShareHostDlg with a "Use Shine protocol" checkbox (default checked) so the operator can choose Shine (0) or HELL (1) when sharing or transferring a host. The chosen protocol is appended to the wire payload as a trailing colon field: "IP:PORT:0/1" for share and "IP:PORT:days:0/1" for transfer. The client parses the trailing field from COMMAND_SHARE and COMMAND_ASSIGN_MASTER, applies it to new connections, and persists it so auto-share/auto-transfer on restart keeps the same protocol. Old clients ignore the extra field, and old/missing payloads fall back to -1 (baked-in HELL), preserving compatibility with existing servers and share_list entries. Co-Authored-By: deepseek-v4-pro
This commit is contained in:
1 parent
42df128f62
commit
e9d60e6e23
12 files changed
+223
-17
No files matched your search
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
#include "resource.h"
|
||||
#include "LangManager.h"
|
||||
|
||||
// 分享主机 / 转移主机 专用对话框(带 Shine/HELL 协议勾选)
|
||||
|
||||
class CShareHostDlg : public CDialogLangEx
|
||||
{
|
||||
public:
|
||||
CShareHostDlg(CWnd* pParent = nullptr, BOOL bNeedDays = FALSE);
|
||||
virtual ~CShareHostDlg();
|
||||
|
||||
enum { IDD = IDD_DIALOG_SHARE_HOST };
|
||||
|
||||
void Init(LPCTSTR caption, LPCTSTR prompt);
|
||||
void InitDays(LPCTSTR name, LPCTSTR defaultValue); // 仅转移主机显示
|
||||
void SetHistoryKey(LPCTSTR historyKey);
|
||||
|
||||
// 结果
|
||||
CString m_str; // 地址 IP:PORT
|
||||
CString m_sDays; // 天数(转移主机)
|
||||
BOOL m_bShine; // TRUE=Shine(0), FALSE=HELL(1)
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX);
|
||||
virtual BOOL OnInitDialog();
|
||||
virtual void OnOK();
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
CString m_sCaption;
|
||||
CString m_sPrompt;
|
||||
CString m_sDaysName;
|
||||
CString m_sHistoryKey;
|
||||
BOOL m_bNeedDays;
|
||||
|
||||
CComboBox m_ComboInput;
|
||||
CStatic m_StaticDays;
|
||||
CEdit m_EditDays;
|
||||
CButton m_CheckShine;
|
||||
|
||||
void LoadHistory();
|
||||
void SaveHistory();
|
||||
};
|
||||
Reference in new issue
Block a user