diff --git a/Makefile b/Makefile index 96821d1..cdd7421 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ SOURCES := source INCLUDES := source # Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer -VERSION := 3.1.1 +VERSION := 3.1.2 APP_TITLE := MBMNET APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk diff --git a/source/admin.c b/source/admin.c index c8bb55d..5ca3288 100644 --- a/source/admin.c +++ b/source/admin.c @@ -28,13 +28,16 @@ static Result read_token(u8 slot, AccountAccessToken *at) return ACT_GetAccountInfo(at, sizeof(*at), slot, INFO_TYPE_ACCOUNT_ACCESS_TOKEN); } +// Leeres Passwort-Feld: libctru kopiert das Passwort immer - NULL ließ die App abstürzen (Luma-Dump, far=0) +static AccountPassword noPassword; + // Konto bei act einloggen (wie Spiele vor dem Online-Gehen): mit dem gespeicherten Passwort, Ergebnis per Ereignis static Result login(u8 slot) { Handle done; Result rc = svcCreateEvent(&done, RESET_ONESHOT); if (R_FAILED(rc)) return rc; - rc = ACTA_AcquireAccountTokenEx(slot, NULL, true, done); // true = gespeichertes Passwort benutzen + rc = ACTA_AcquireAccountTokenEx(slot, &noPassword, true, done); // true = gespeichertes Passwort benutzen if (R_SUCCEEDED(rc)) rc = svcWaitSynchronization(done, 15ULL * 1000 * 1000 * 1000); if (rc == 0) rc = ACT_GetLastResponseResult(); svcCloseHandle(done); @@ -54,7 +57,7 @@ static void check_once(void) Result r1 = read_token(slot, &at), r2 = 0, r3 = 0, r4 = 0; if (R_FAILED(r1) || !at.refreshToken[0]) { snprintf(why, sizeof(why), "Werkzeuge: Schritt 2/4 - Konto laden ...\n(Lesen: %08lX)", (unsigned long)r1); - r2 = ACTA_LoadConsoleAccount(slot, false, NULL, false, false); + r2 = ACTA_LoadConsoleAccount(slot, false, &noPassword, false, false); snprintf(why, sizeof(why), "Werkzeuge: Schritt 3/4 - Konto einloggen ...\n(Lesen %08lX, Laden %08lX)", (unsigned long)r1, (unsigned long)r2); r3 = login(slot); r4 = read_token(slot, &at);