void ft_ls(t_node *dir, int flags) { DIR *directory; struct dirent *file; t_node *dirs; t_node *files; dirs = new_elem(FORBIDDEN_FILE, FORBIDDEN_FILE, 0); files = new_elem(FORBIDDEN_FILE, FORBIDDEN_FILE, 0); if ((!is_dir(dir->path, flags))) { render_file(dir, flags, NULL); return ; } if ((directory = opendir(dir->path)) == NULL) { perror("Error"); return ; } while ((file = readdir(directory)) > 0 && (PUSH(files, file)) != NULL) if (ISADIR(file) && !IS(file->d_name, ".") && !IS(file->d_name, "..") && RR_ON) PUSH(dirs, file); files = files->next; dirs = dirs->next; if ((ISHIDDEN(dir) && A_ON) || !ISHIDDEN(dir) || dir->first == TRUE) render_list(files, flags); free(files); closedir(directory); if (RR_ON) ft_ls_relaunch(dirs, flags); free(dirs); }
void action_404(http_request *request, http_response *response) { render_file(response, "404.html"); response->code = 404; response->header_summary = "Not Found"; }
void action_static_file(http_request *request, http_response *response) { render_file(response, request->url->path); }