+ bugfix of "Bad file descriptor" due to empty operator=() in Client + added a condition in _determine_location_COOP_FIX() + udpate memo.txt + need fix for index/autoindex (location "/list" dont work)
33 lines
1.8 KiB
Plaintext
33 lines
1.8 KiB
Plaintext
IN 42 SUBJECT AND/OR PRIORITY :
|
|
- CGI
|
|
- chunked request (response not mandatory it seems)
|
|
- fix need for index and autoindex config
|
|
- Ecrire des tests !
|
|
- "root" need to replace "location->path" part of "client.path"
|
|
replace up to the last "/" of the "location->path" part
|
|
(if its a folder this will be in fact the entire path)
|
|
- handle redirection (Work, but weird behavior need deeper test)
|
|
- upload files with config "upload_dir"
|
|
- _determine_location() review (New version to complete and test)
|
|
- replace atoi() with a better function to avoid overflow
|
|
like strtol : https://www32.cplusplus.com/reference/cstdlib/strtol/
|
|
-----------------------------
|
|
- 408 Request Timeout
|
|
- gerer le champ "Accept" du client
|
|
- gerer les ".." dans un URL (verifier que l'on ne sort pas du dossier "root")
|
|
- do correct handling of special character in url (/rfc2119_files/errata.js.t%C3%A9l%C3%A9chargement -> /rfc2119_files/errata.js.téléchargement)
|
|
- maybe add a "last_action_time" in Client for timeout handling
|
|
little global timeout on epoll, like 100ms, then find client that actualy need to timeout
|
|
if (actual_time - client.last_action_time > 10000ms){timeout(client)}
|
|
- add headers "Date" and "Last-Modified" to response
|
|
- change "std::string" to reference "std::string &" in most functions
|
|
and add "const" if apropriate.
|
|
- Il faut vérifier le path de la requête, voir si le serveur est bien censé délivrer cette ressource et si le client y a accès, avant d'appeler le CGI.
|
|
|
|
|
|
__________________________
|
|
--------------------------
|
|
|
|
----Discord 42------------
|
|
Un truc cool et surtout bien utile ici c'est d'utiliser un proxy entre ton navigateur et ton serveur pour vérifier ce qui est envoyé en raw. Les navigateurs peuvent avoir des comportements différents.
|
|
Vous avez des modules sur vos navigateur ou des logiciels externe. C'est assez rapide et gratuit. |