Esempio n. 1
0
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);
}
Esempio n. 2
0
void action_404(http_request *request, http_response *response) {
  render_file(response, "404.html");

  response->code = 404;
  response->header_summary = "Not Found";
}
Esempio n. 3
0
void action_static_file(http_request *request, http_response *response) {
  render_file(response, request->url->path);
}