iauth: add enums, fix struct member names

This commit is contained in:
Hay1tsme
2023-02-12 03:12:22 -05:00
parent 47784820b7
commit baecb9efbb
2 changed files with 248 additions and 105 deletions

View File

@ -16,7 +16,7 @@ void iauth_set_config(struct amcus_config *cfg)
static ULONG REF_COUNT = 0;
static bool is_init = true;
static int amauthd_state = 9;
static int amauthd_state = DAEMON_DL;
static HRESULT STDMETHODCALLTYPE IAuth_QueryInterface(IAuth FAR *This, REFIID riid, void **ppvObj)
{
@ -31,7 +31,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_QueryInterface(IAuth FAR *This, REFIID ri
*ppvObj = This;
return S_OK;
}
return E_NOINTERFACE;
}
@ -54,7 +54,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Initialize(IAuth FAR *This, int64_t p0)
return 1;
}
is_init = true;
amauthd_state = 5;
amauthd_state = DAEMON_INIT;
return 0;
}
@ -65,7 +65,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_Finalize(IAuth FAR *This)
return 1;
}
is_init = false;
amauthd_state = 0;
amauthd_state = DAEMON_UNKNOWN;
return 0;
}
@ -97,9 +97,9 @@ static HRESULT STDMETHODCALLTYPE IAuth_Func8(IAuth FAR *This)
}
// Likely has to do with mucha and the updater
static HRESULT STDMETHODCALLTYPE IAuth_GetUpdaterState(IAuth FAR *This, struct amcus_updater_state *arr)
static HRESULT STDMETHODCALLTYPE IAuth_GetUpdaterState(IAuth FAR *This, struct amcus_state *arr)
{
// dprintf("IAuth: %s hit!\n", __func__);
// dprintf("IAuth: %s hit!\n", __func__);
memset(arr, 0, sizeof(*arr));
char cacfg_ver[6];
@ -113,42 +113,41 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetUpdaterState(IAuth FAR *This, struct a
ver_btm %= (ver_top * 100);
}
arr->Member0.Member0 = 15;
arr->Member0.Member8 = 2;
arr->Member0.MemberC = 1;
arr->allnet_state.state = DAEMON_IDLE;
arr->allnet_state.auth_state = 2;
arr->allnet_state.auth_count = 1;
arr->Member18.Member0 = 9;
arr->Member18.Member8 = 2;
arr->Member18.MemberC = 1;
arr->Member18.Member10 = 27;
arr->Member18.Member14 = 32;
arr->Member18.Member18 = 43;
arr->Member18.Member1C = 52;
arr->Member18.Member20 = 59;
arr->Member18.cacfg_ver_whole = ver_top;
arr->Member18.cacfg_ver_decimal = ver_btm;
arr->Member18.app_ver_whole = ver_top;
arr->Member18.app_ver_decimal = ver_btm;
arr->Member18.Member60 = 1;
arr->mucha_state.state = DAEMON_DL;
arr->mucha_state.auth_state = 2;
arr->mucha_state.auth_count = 1;
arr->mucha_state.state_dlexec = DLEXEC_PROC;
arr->mucha_state.state_dlstep = DLSTEP_IDLE;
arr->mucha_state.state_dllan = DLLAN_DISABLE;
arr->mucha_state.state_dlwan = DLWAN_COMPLETE;
arr->mucha_state.state_io = DAEMON_IO_NONE;
arr->mucha_state.cacfg_ver_major = ver_top;
arr->mucha_state.cacfg_ver_minor = ver_btm;
arr->mucha_state.app_ver_major = ver_top;
arr->mucha_state.app_ver_minor = ver_btm;
arr->mucha_state.dl_check_complete = 1;
arr->clock_status = 1;
arr->network_mode = 1;
arr->cab_type = 3;
arr->amauth_init_state = amauthd_state;
arr->MemberC4 = 0;
arr->auth_type = AUTH_TYPE_ALLNET;
arr->cab_mode = DAEMON_MODE_STANDALONE;
arr->state = amauthd_state;
switch (amauthd_state) {
case 5: amauthd_state = 6; break;
case 6: amauthd_state = 15; break;
case 15: amauthd_state = 9; break;
case DAEMON_INIT: amauthd_state = DAEMON_AUTH_START; break;
case DAEMON_AUTH_START: amauthd_state = DAEMON_IDLE; break;
case DAEMON_IDLE: amauthd_state = DAEMON_DL; break;
default: break;
}
return S_OK;
}
// Valid valnues for mode are STANDALONE, CLIENT, SERVER
static HRESULT STDMETHODCALLTYPE IAuth_GetCabinetConfig(IAuth FAR *This, struct amcus_cab_config *arr)
static HRESULT STDMETHODCALLTYPE IAuth_GetCabinetConfig(IAuth FAR *This, struct amcus_network_state *arr)
{
// dprintf("IAuth: %s hit!\n", __func__);
@ -160,20 +159,21 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetCabinetConfig(IAuth FAR *This, struct
char dongle_serial[13];
wcstombs_s(NULL, am_serial, sizeof(am_serial), config.am_serial, sizeof(config.am_serial));
// TODO: read the serial off a real dongle if enabled is 0
wcstombs_s(NULL, dongle_serial, sizeof(dongle_serial), config.dongle.serial, sizeof(config.dongle.serial));
strcpy_s(arr->mode, sizeof(arr->mode), "STANDALONE");
strcpy_s(arr->pcbid, sizeof(arr->pcbid), am_serial);
strcpy_s(arr->dongle_serial, sizeof(arr->dongle_serial), dongle_serial);
strcpy_s(arr->shop_router_ip, sizeof(arr->shop_router_ip), "192.168.123.254");
strcpy_s(arr->auth_server_ip, sizeof(arr->auth_server_ip), "192.168.1.114");
strcpy_s(arr->local_ip, sizeof(arr->local_ip), "192.168.123.11");
strcpy_s(arr->subnet_mask, sizeof(arr->subnet_mask), "255.255.225.0");
strcpy_s(arr->gateway, sizeof(arr->gateway), "192.168.123.254");
strcpy_s(arr->primary_dns, sizeof(arr->primary_dns), "192.168.1.3");
// TODO: Load fake IP addresses from config
strcpy_s(arr->shop_router_ip, sizeof(arr->shop_router_ip), "192.168.123.254"); // router ip
strcpy_s(arr->auth_server_ip, sizeof(arr->auth_server_ip), "192.168.1.114"); // "default" in dnshook
strcpy_s(arr->local_ip, sizeof(arr->local_ip), "192.168.123.11"); // fake ip
strcpy_s(arr->subnet_mask, sizeof(arr->subnet_mask), "255.255.225.0"); // fake subnet
strcpy_s(arr->gateway, sizeof(arr->gateway), "192.168.123.254"); // router ip
strcpy_s(arr->primary_dns, sizeof(arr->primary_dns), "192.168.1.3"); // ??
arr->hop_count = 1;
arr->line_type = 1;
arr->line_type = TYPE_FFT;
return S_OK;
}
@ -286,7 +286,7 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetMuchaAuthResponse(IAuth FAR *This, str
if (!is_init) {
return E_ACCESSDENIED;
}
strcpy_s(arr->shop_name, sizeof(arr->shop_name), "Test Shop!");
strcpy_s(arr->shop_name_en, sizeof(arr->shop_name_en), "Test Shop!");
strcpy_s(arr->shop_nickname, sizeof(arr->shop_nickname), "Test Shop");
@ -320,14 +320,14 @@ static HRESULT STDMETHODCALLTYPE IAuth_GetMuchaAuthResponse(IAuth FAR *This, str
}
// Another struct
static HRESULT STDMETHODCALLTYPE IAuth_Func19(IAuth FAR *This, struct amcus_arr19 *arr)
static HRESULT STDMETHODCALLTYPE IAuth_Func19(IAuth FAR *This, struct mucha_updater_state *arr)
{
// dprintf("IAuth: %s hit!\n", __func__);
memset(arr, 0, sizeof(*arr));
if (!is_init) {
return E_ACCESSDENIED;
}
arr->Member0 = 1; // if this isn't 1 taiko thinks it isn't auth'd
arr->state = 1; // if this isn't 1 taiko thinks it isn't auth'd
return 1;
}
@ -486,4 +486,4 @@ IAuth iauth_stub_object = {
.lpVtbl = &iauth_vtbl,
};
IAuth *iauth_stub = &iauth_stub_object;
IAuth *iauth_stub = &iauth_stub_object;