v3.1.7: Log-Passwort per HTTPS-Kopfzeile (POST-Inhalt kam nicht an)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
7d49f1f342
commit
e9a7bfb712
@@ -17,7 +17,7 @@ SOURCES := source
|
||||
INCLUDES := source
|
||||
|
||||
# Bei jedem Release erhöhen - das Auto-Update vergleicht diese Nummer
|
||||
VERSION := 3.1.6
|
||||
VERSION := 3.1.7
|
||||
|
||||
APP_TITLE := MBMNET
|
||||
APP_DESCRIPTION := Dein eigenes 3DS-Netzwerk
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ u32 https_request(const char *server, const char *path, const char *form, const
|
||||
httpcSetKeepAlive(&ctx, HTTPC_KEEPALIVE_DISABLED);
|
||||
httpcAddTrustedRootCA(&ctx, caDer, caLen); // nur der MBMNET-CA vertrauen wir zusätzlich
|
||||
if (header && value) httpcAddRequestHeaderField(&ctx, header, value);
|
||||
if (form) {
|
||||
if (form && form[0]) { // leerer Text: POST ohne Inhalt
|
||||
u32 n = strlen(form);
|
||||
if (n >= sizeof(formBuf)) n = sizeof(formBuf) - 1;
|
||||
memcpy(formBuf, form, n);
|
||||
|
||||
+2
-1
@@ -5,7 +5,8 @@
|
||||
|
||||
// HTTPS zum MBMNET-Server mit der eigenen MBMNET-CA (dieselbe wie für Miiverse, siehe olvpatch.c).
|
||||
// Für alles mit Geheimnissen (Log-Passwort, Anmelde-Nachweis): nie im Klartext übers Netz.
|
||||
// form: POST-Daten (application/x-www-form-urlencoded), NULL = GET
|
||||
// form: POST-Daten (application/x-www-form-urlencoded), "" = POST ohne Inhalt, NULL = GET
|
||||
// Achtung: Der HTTP-Dienst des 3DS schickte POST-Inhalt bei uns nicht mit - Geheimnisse in Kopfzeilen.
|
||||
// header: zusätzliche Kopfzeile "Name" mit Wert value (NULL = keine)
|
||||
// date: bekommt die Date-Kopfzeile der Antwort (NULL = egal)
|
||||
// Gibt den HTTP-Status zurück, 0 bei Netzwerkfehler (*rcOut = Code). out wird mit 0 abgeschlossen.
|
||||
|
||||
+9
-3
@@ -261,13 +261,19 @@ static void worker(void *arg)
|
||||
if (j == JOB_NONE || !buf) continue;
|
||||
busy = true;
|
||||
if (j == JOB_LOGIN) {
|
||||
char form[160], enc[140];
|
||||
// Passwort in der Kopfzeile X-Logs-Password (URL-kodiert, nur HTTPS). Als POST-Inhalt kam es nicht an:
|
||||
// Der HTTP-Dienst des 3DS schickte 0 Bytes.
|
||||
char enc[200];
|
||||
url_encode(enc, sizeof(enc), password);
|
||||
snprintf(form, sizeof(form), "password=%s", enc);
|
||||
memset(password, 0, sizeof(password));
|
||||
token[0] = 0;
|
||||
u32 len;
|
||||
u32 code = request("/mbmnet/logs/login", form, buf, 256, &len);
|
||||
char date[64];
|
||||
Result hrc = 0;
|
||||
u32 code = https_request(server, "/mbmnet/logs/login", "", "X-Logs-Password", enc, buf, 256, &len, date, sizeof(date), &hrc);
|
||||
memset(enc, 0, sizeof(enc));
|
||||
if (date[0]) sync_clock(date);
|
||||
if (!code) snprintf(status, sizeof(status), "Keine Verbindung (%08lX)", (unsigned long)hrc);
|
||||
if (code == 200 && len == 64) {
|
||||
memcpy(token, buf, 64);
|
||||
token[64] = 0;
|
||||
|
||||
Reference in New Issue
Block a user