{"id":21340750,"url":"https://github.com/artainmo/examrank06","last_synced_at":"2025-03-16T02:42:51.153Z","repository":{"id":93053035,"uuid":"395423506","full_name":"artainmo/examrank06","owner":"artainmo","description":"42 school exam. Sixth exam, write in C a web-server with limited external libraries.","archived":false,"fork":false,"pushed_at":"2023-03-01T01:03:39.000Z","size":32,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-22T15:32:18.346Z","etag":null,"topics":["42school","c","exam","web"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artainmo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-12T19:26:09.000Z","updated_at":"2023-11-14T21:54:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"66d9ac23-30c7-4498-9675-85bd6f2479db","html_url":"https://github.com/artainmo/examrank06","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artainmo%2Fexamrank06","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artainmo%2Fexamrank06/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artainmo%2Fexamrank06/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artainmo%2Fexamrank06/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artainmo","download_url":"https://codeload.github.com/artainmo/examrank06/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243817873,"owners_count":20352625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["42school","c","exam","web"],"created_at":"2024-11-22T00:52:53.431Z","updated_at":"2025-03-16T02:42:51.144Z","avatar_url":"https://github.com/artainmo.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# examrank06\n\n42 school exam. Sixth exam, write in C a web-server with limited external libraries.\n\n### Notes, trying to understand what is missing\n#### Negative additions\n* complete message at once -\u003e WORSE\n* reorder ids after disconnections -\u003e WORSE\n* \"Warning our tester is expecting that you send the messages as fast as you can. Don't do un-necessary buffer.\n\" -\u003e Unnecessary buffers? Buffers of 1000000 is too much? -\u003e WORSE\n* After client disconnection reset the max_fd? -\u003e WORSE\n#### Positive additions\n* \"If a System Calls returns an error before the program start accepting connection, it should write in stderr \"Fatal error\" followed by a \\n and exit with status 1 -\u003e if accept, send, recv creates an error do not terminate the program? -\u003e POTENTIALLY GOOD\n* \"Your program must be non-blocking\" -\u003e Use of MSG_DONTWAIT flag in recv and send functions to enable non-block -\u003e POTENTIALLY GOOD\n* Only send messages that end with \\n not also if it ends with \\0, if it does not end with \\n keep it and add it to the next recv message of that client (imagine a situation whereby a client sends its message in multiple times), only send back to other clients once the message is complete (contains \\n) -\u003e SUCCESS\n* In test 9 I constantly have client 1 this is because I restart client ids at zero after they all quit and come back, maybe always increment and do not restart at zero? Also if one quits and directly comes back it should not have the same id, the id should be incremeneted again -\u003e \"the client will be given an id. the first client will receive the id 0 and each new client will receive the last client id + 1\" -\u003e SUCCESS\n#### Solution\nAccept long messages in multiple times.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartainmo%2Fexamrank06","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartainmo%2Fexamrank06","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartainmo%2Fexamrank06/lists"}