Manageability Developer Tool Kit 7.0.12102.2 с исправленной ошибкой IMR_RES_SOCKET_ERROR при работе через MPS
Нашлась (давно имеющаяся) ошибка Manageability Commander v.7.x (7.0.11161.2 и 7.0.12102.2 как минимум) при работе оного через MPS - получением ошибки IMR_RES_SOCKET_ERROR при попытке сделать Take Control (см.картинку).
Проблема обнаружилась в структуре:
private static byte[] CreateTCPSessionParamsEx(string username, string password, string domain, SOCKSProxy proxy)
{
//typedef struct {
// int version; //must be 3
// char user_name[MAX_WIN_UN_LEN];
// char user_pswd[MAX_PSWD_LEN];
// char user_domain[MAX_WIN_DN_LEN];
// ProxySettings proxy_settings
//} TCPSessionParamsEx;
//
// typedef struct {
// PROXY_TYPE type; // enum PROXY_NO_PROXY, PROXY_SOCKS_V5
// char server[MAX_IP_LEN]; // MAX_IP_LEN = 128
// int port;
// char user[MAX_NAME_LEN]; // MAX_NAME_LEN = 128
// char password[MAX_PSWD_LEN]; // MAZ_PSWD_LEN = 128
// } ProxyType;
Где прописана версия 3 с дополнительным полем user_domain, хотя реально используется (должна использоваться) версия 2, где оного нет. В результате получаем сплошные нули в следующей за ней структуре параметров MPS, в то время, как "начало совпадает" и работа внутри локальной сети не страдает. Потому разработчки, явно тестирующие (лишь) на локалке такого банально не видели.
Итого, исправленный (правильный) вид должен быть:
private static byte[] CreateTCPSessionParamsEx(string username, string password, SOCKSProxy proxy)
{
// typedef struct {
// int version; // must be 2
// char user_name[MAX_NAME_LEN]; // MAX_NAME_LEN = 128
// char user_pswd[MAX_PSWD_LEN]; // MAZ_PSWD_LEN = 128
// ProxySettings proxy_settings
// } TCPSessionParamsEx;
//
// typedef struct {
// PROXY_TYPE type; // enum PROXY_NO_PROXY, PROXY_SOCKS_V5
// char server[MAX_IP_LEN]; // MAX_IP_LEN = 128
// int port;
// char user[MAX_NAME_LEN]; // MAX_NAME_LEN = 128
// char password[MAX_PSWD_LEN]; // MAZ_PSWD_LEN = 128
// } ProxyType;
В результате получим:
Пересобранный вышеприведенным образом Commander прилагается, либо сразу весь в виде папки:
- Manageability Commander 7.0.12102.2.fixed (1 file only, 5.64Mb)
- Manageability Developer ToolKit 7.0.12102.2 fixed IMR_RES_SOCKET_ERROR for MPS (all files + readme, 13.5Mb)
Добавить комментарий