mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
feat: add language selection to system settings
Add a language selector to the System Settings page supporting English, Japanese, and Chinese. The i18n dictionary already contained zh translations but lacked the UI to switch languages. Changes: - html/i18n.js: add sys_language key to en/ja/zh - html/system.html: add language selector dropdown - html/system.js: add changeLang() and selector initialization - tools/httpd_sim.c: fix cookie parsing for multi-cookie headers; fix Set-Cookie response (missing Path=/, missing \r\n\r\n); add SO_REUSEADDR for faster port reuse
This commit is contained in:
+12
-3
@@ -500,6 +500,10 @@ struct Server serverConstructor(int port, void (*launch)(struct Server *server))
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
int reuse = 1;
|
||||
if (setsockopt(server.socket, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)) < 0)
|
||||
perror("setsockopt(SO_REUSEADDR) failed");
|
||||
|
||||
if (bind(server.socket, (struct sockaddr*)&server.address, sizeof(server.address)) < 0) {
|
||||
perror("Failed to bind socket...\n");
|
||||
exit(EXIT_FAILURE);
|
||||
@@ -554,8 +558,12 @@ char *scan_header(char *p)
|
||||
break;
|
||||
if (is_word(p, "\nContent-Type:"))
|
||||
content_type = p + 15;
|
||||
else if (is_word(p, "\nCookie:"))
|
||||
session = p + 17;
|
||||
else if (is_word(p, "\nCookie:")) {
|
||||
session = p + 9;
|
||||
while (*session == ' ') session++;
|
||||
char *s = strstr(session, "session=");
|
||||
if (s) session = s + 8;
|
||||
}
|
||||
}
|
||||
if (content_type && is_word(content_type, "multipart/form-data; boundary")) {
|
||||
printf("Found multiplart\n");
|
||||
@@ -799,7 +807,8 @@ void launch(struct Server *server)
|
||||
printf("Password accepted!\n");
|
||||
response = "HTTP/1.1 302 Found\r\n"
|
||||
"Location: index.html\r\n"
|
||||
"Set-Cookie: session=" SESSION_ID "; SameSite=Strict\r\n";
|
||||
"Set-Cookie: session=" SESSION_ID "; Path=/; SameSite=Strict\r\n"
|
||||
"\r\n";
|
||||
} else {
|
||||
response = "HTTP/1.1 302 Found\r\n"
|
||||
"Location: login.html\r\n\r\n";
|
||||
|
||||
Reference in New Issue
Block a user