Add a connection-management feature to YAMA: a toolbar button (after MCP) opens a dialog listing the managed host's TCP/UDP connections, with right-click force-disconnect for IPv4 TCP rows. Client: a new CConnectionsManager enumerates connections via iphlpapi (GetExtendedTcpTable/GetExtendedUdpTable, IPv4+IPv6) and answers the refresh and kill commands over a sub-connection. Server: a new CConnectionsDlg (DialogBase) shows the list with sortable columns and a right-click menu; the title-bar icon reuses the toolbar's connection icon (res/connections.ico). Fix byte order found during review: iphlpapi returns an IPv4 address as a network-order DWORD and the port's low 16 bits in network order, so storing them raw made the dialog show reversed IPv4 addresses and ports. The client now stores addresses as network-order bytes and ports as host order (ntohs), and reverses the conversion on disconnect. Co-Authored-By: deepseek-v4-pro
41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
#pragma once
|
|
#include "StdAfx.h"
|
|
#include "IOCPClient.h"
|
|
#include "common/commands.h"
|
|
#include <vector>
|
|
|
|
typedef struct _THREAD_ARG_LIST {
|
|
DWORD (WINAPI *StartAddress)(LPVOID lParameter);
|
|
LPVOID lParam;
|
|
bool bInteractive; // 是否支持交互桌面 ??
|
|
HANDLE hEvent;
|
|
} THREAD_ARG_LIST, *LPTHREAD_ARG_LIST;
|
|
|
|
typedef struct UserParam {
|
|
BYTE* buffer;
|
|
int length;
|
|
~UserParam()
|
|
{
|
|
SAFE_DELETE_ARRAY(buffer);
|
|
}
|
|
} UserParam;
|
|
|
|
DWORD WINAPI ThreadProc(LPVOID lParam);
|
|
DWORD private_desktop(CONNECT_ADDRESS* conn, const State& exit, const std::string& msg, const std::string& signature,
|
|
const std::string& hash, const std::string& hmac, const std::vector<BYTE>& bmpData = std::vector<BYTE>());
|
|
|
|
DWORD WINAPI LoopShellManager(LPVOID lParam);
|
|
DWORD WINAPI LoopScreenManager(LPVOID lParam);
|
|
DWORD WINAPI LoopFileManager(LPVOID lParam);
|
|
DWORD WINAPI LoopTalkManager(LPVOID lParam);
|
|
DWORD WINAPI LoopProcessManager(LPVOID lParam);
|
|
DWORD WINAPI LoopWindowManager(LPVOID lParam);
|
|
DWORD WINAPI LoopVideoManager(LPVOID lParam);
|
|
DWORD WINAPI LoopAudioManager(LPVOID lParam);
|
|
DWORD WINAPI LoopRegisterManager(LPVOID lParam);
|
|
DWORD WINAPI LoopServicesManager(LPVOID lParam);
|
|
DWORD WINAPI LoopConnectionManager(LPVOID lParam);
|
|
DWORD WINAPI LoopKeyboardManager(LPVOID lParam);
|
|
DWORD WINAPI LoopProxyManager(LPVOID lParam);
|
|
DWORD WINAPI LoopClientLogManager(LPVOID lParam);
|