Compare commits

..

No commits in common. "ae0a2c04303be29b02c2eaf35de73970c06cbab9" and "049405989b684ebf5c4c5ae4324b6de5488039c5" have entirely different histories.

3 changed files with 20 additions and 71 deletions

View File

@ -14,9 +14,9 @@
/* CLI config section */ /* CLI config section */
#define CLI_MAX_LINE_LENGTH 1024 #define CLI_MAX_LINE_LENGTH 256
#define CLI_MAX_ACCEPTED_ARGS 4 #define CLI_MAX_ACCEPTED_ARGS 4
#define CLI_MAX_TOKEN_LENGTH 256 #define CLI_MAX_TOKEN_LENGTH 64
/* FS config section */ /* FS config section */

View File

@ -9,7 +9,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h>
static const struct CliCommandEntry cmd[] = { static const struct CliCommandEntry cmd[] = {
@ -209,11 +208,11 @@ abandon_struct:
unsigned int cli_poll_process_next(void) unsigned int cli_poll_process_next(void)
{ {
int echo_commands = !isatty(STDIN_FILENO);
for ( ;; ) { for ( ;; ) {
fputs(fs_get_cwd(), stdout);
if (fs_get_cwd()[0]) { if (fs_get_cwd()[0]) {
printf("%s $ ", fs_get_cwd()); printf(" $ ");
} else { } else {
printf("$ "); printf("$ ");
} }
@ -222,13 +221,8 @@ unsigned int cli_poll_process_next(void)
char *line = NULL; char *line = NULL;
ssize_t result = getline(&line, &buf_size, stdin); ssize_t result = getline(&line, &buf_size, stdin);
if (result == -1) { if (result == -1)
printf("\n");
return 0x1; return 0x1;
}
if (echo_commands)
printf(line);
char **tokenized_line = tokenize_line(line, result); char **tokenized_line = tokenize_line(line, result);
free(line); free(line);

View File

@ -998,8 +998,6 @@ static void resolve_path(struct resolved_path * const rp, const char * const ori
break; break;
} }
pr("Found symlink '%s', following (-> '%s')\n", next_fname, symlink_path);
if (symlink_path[0] == '/') { if (symlink_path[0] == '/') {
memmove(&(path[symlink_path_len]), &(path[i+1]), path_len-i-1); memmove(&(path[symlink_path_len]), &(path[i+1]), path_len-i-1);
strcpy(path, &(symlink_path[1])); strcpy(path, &(symlink_path[1]));
@ -1023,7 +1021,6 @@ static void resolve_path(struct resolved_path * const rp, const char * const ori
} }
} else { } else {
if (!(params & FOLLOW_LAST_SYMLINK)) { if (!(params & FOLLOW_LAST_SYMLINK)) {
pr("Stopping at symlink '%s', not following\n", next_fname);
rp->target_inode_ptr = res; rp->target_inode_ptr = res;
strcpy(rp->parent_fname, current_fname); strcpy(rp->parent_fname, current_fname);
strcpy(rp->target_fname, next_fname); strcpy(rp->target_fname, next_fname);
@ -1048,8 +1045,6 @@ static void resolve_path(struct resolved_path * const rp, const char * const ori
break; break;
} }
pr("Found symlink '%s' at last position, following (-> '%s')\n", next_fname, symlink_path);
if (!strcmp(symlink_path, "/")) { if (!strcmp(symlink_path, "/")) {
rp->parent_inode_ptr = 0; rp->parent_inode_ptr = 0;
rp->target_inode_ptr = 0; rp->target_inode_ptr = 0;
@ -1083,7 +1078,6 @@ static void resolve_path(struct resolved_path * const rp, const char * const ori
rp->target_inode_ptr = -1; rp->target_inode_ptr = -1;
break; break;
} else { } else {
pr("Stopping at regular file '%s'\n", next_fname);
rp->target_inode_ptr = res; rp->target_inode_ptr = res;
strcpy(rp->parent_fname, current_fname); strcpy(rp->parent_fname, current_fname);
strcpy(rp->target_fname, next_fname); strcpy(rp->target_fname, next_fname);
@ -1098,7 +1092,6 @@ static void resolve_path(struct resolved_path * const rp, const char * const ori
strcpy(current_fname, next_fname); strcpy(current_fname, next_fname);
memset(next_fname, 0, FS_MAX_FNAME_LEN); memset(next_fname, 0, FS_MAX_FNAME_LEN);
} else { } else {
pr("Stopping at directory '%s'\n", next_fname);
rp->target_inode_ptr = res; rp->target_inode_ptr = res;
strcpy(rp->parent_fname, current_fname); strcpy(rp->parent_fname, current_fname);
strcpy(rp->target_fname, next_fname); strcpy(rp->target_fname, next_fname);
@ -2426,29 +2419,15 @@ int fs_la(void *d)
struct fs_inode f_inode; struct fs_inode f_inode;
read_block(read_inode_ptr(recs[k].inode_no), (void *) &f_inode); read_block(read_inode_ptr(recs[k].inode_no), (void *) &f_inode);
if (f_inode.ftype == REGULAR) { if (f_inode.ftype == DIRECTORY) {
pr_stdout("%s (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=reg)\n",
recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size);
} else if (f_inode.ftype == DIRECTORY) {
pr_stdout(COLOR_BLUE "%s" COLOR_RESET pr_stdout(COLOR_BLUE "%s" COLOR_RESET
" (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=dir)\n", " (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=dir)\n",
recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no), recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size); f_inode.ref_count, f_inode.size);
} else if (f_inode.ftype == SYMLINK) { } else {
char l_path[FS_MAX_PATH_LEN+1]; pr_stdout("%s (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=reg)\n",
int l_path_len = read_symlink(recs[k].inode_no, l_path); recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size);
if (l_path_len > 0)
pr_stdout(COLOR_CYAN "%s" COLOR_RESET
" (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=lnk, -> '%s')\n",
recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size, l_path);
else
pr_stdout(COLOR_RED "%s" COLOR_RESET
" (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=lnk)\n",
recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size);
} }
} }
} }
@ -2475,29 +2454,15 @@ int fs_la(void *d)
struct fs_inode f_inode; struct fs_inode f_inode;
read_block(read_inode_ptr(recs[k].inode_no), (void *) &f_inode); read_block(read_inode_ptr(recs[k].inode_no), (void *) &f_inode);
if (f_inode.ftype == REGULAR) { if (f_inode.ftype == DIRECTORY) {
pr_stdout("%s (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=reg)\n",
recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size);
} else if (f_inode.ftype == DIRECTORY) {
pr_stdout(COLOR_BLUE "%s" COLOR_RESET pr_stdout(COLOR_BLUE "%s" COLOR_RESET
" (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=dir)\n", " (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=dir)\n",
recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no), recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size); f_inode.ref_count, f_inode.size);
} else if (f_inode.ftype == SYMLINK) { } else {
char l_path[FS_MAX_PATH_LEN+1]; pr_stdout("%s (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=reg)\n",
int l_path_len = read_symlink(recs[k].inode_no, l_path); recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size);
if (l_path_len > 0)
pr_stdout(COLOR_CYAN "%s" COLOR_RESET
" (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=lnk, -> '%s')\n",
recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size, l_path);
else
pr_stdout(COLOR_RED "%s" COLOR_RESET
" (inode_ptr=%d -> inode=%d, ref_count=%d, size=%d, type=lnk)\n",
recs[k].fname, recs[k].inode_no, read_inode_ptr(recs[k].inode_no),
f_inode.ref_count, f_inode.size);
} }
} }
} }
@ -2521,22 +2486,12 @@ int fs_stat(void *d)
struct fs_inode i; struct fs_inode i;
read_block(read_inode_ptr(rp.target_inode_ptr), &i); read_block(read_inode_ptr(rp.target_inode_ptr), &i);
if (i.ftype == REGULAR) { if (i.ftype == DIRECTORY) {
pr_stdout("inode_ptr=%d -> inode=%d\nref_count=%d\nsize=%d\ntype=regular\n", pr_stdout("inode_ptr=%d -> inode=%d\nref_count=%d\nsize=%d\ntype=dir\n",
rp.target_inode_ptr, read_inode_ptr(rp.target_inode_ptr), i.ref_count, i.size); rp.target_inode_ptr, read_inode_ptr(rp.target_inode_ptr), i.ref_count, i.size);
} else if (i.ftype == DIRECTORY) { } else {
pr_stdout("inode_ptr=%d -> inode=%d\nref_count=%d\nsize=%d\ntype=directory\n", pr_stdout("inode_ptr=%d -> inode=%d\nref_count=%d\nsize=%d\ntype=reg\n",
rp.target_inode_ptr, read_inode_ptr(rp.target_inode_ptr), i.ref_count, i.size); rp.target_inode_ptr, read_inode_ptr(rp.target_inode_ptr), i.ref_count, i.size);
} else if (i.ftype == SYMLINK) {
char l_path[FS_MAX_PATH_LEN+1];
int l_path_len = read_symlink(rp.target_inode_ptr, l_path);
if (l_path_len > 0) {
pr_stdout("inode_ptr=%d -> inode=%d\nref_count=%d\nsize=%d\ntype=symlink\npoints to: %s\n",
rp.target_inode_ptr, read_inode_ptr(rp.target_inode_ptr), i.ref_count, i.size, l_path);
} else {
pr_stdout("inode_ptr=%d -> inode=%d\nref_count=%d\nsize=%d\ntype=symlink\n<broken>\n",
rp.target_inode_ptr, read_inode_ptr(rp.target_inode_ptr), i.ref_count, i.size);
}
} }
return 0; return 0;