diff options
| author | Zach DeCook <zachdecook@gmail.com> | 2020-12-22 23:23:15 -0500 |
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2020-12-24 09:05:28 -0500 |
| commit | eac874b92531daffe1209bd100ce0b8b58625715 (patch) | |
| tree | 6b81b0eee7585f234fd0205d04c86dd8ea880c94 /src/serve.c | |
| parent | 61bf4c53aa1522c4f0e8d1f912b6ab19154ed538 (diff) | |
| download | gmnisrv-eac874b92531daffe1209bd100ce0b8b58625715.tar.gz gmnisrv-eac874b92531daffe1209bd100ce0b8b58625715.tar.xz gmnisrv-eac874b92531daffe1209bd100ce0b8b58625715.zip | |
autoindex: end directories with trailing slash
Diffstat (limited to 'src/serve.c')
| -rw-r--r-- | src/serve.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/serve.c b/src/serve.c index 01a0869..4bb2973 100644 --- a/src/serve.c +++ b/src/serve.c @@ -77,8 +77,15 @@ serve_autoindex(struct gmnisrv_client *client, const char *path) namesz *= 2; names = new; } - names[nameln++] = strdup(ent->d_name); - bufsz += snprintf(NULL, 0, "=> %s\n", ent->d_name); + if (S_ISDIR(st.st_mode)){ + // +1 for trailing slash, +1 for \0 + names[nameln] = malloc(strlen(ent->d_name)+1+1); + sprintf(names[nameln], "%s/", ent->d_name); + } else { + names[nameln] = strdup(ent->d_name); + } + bufsz += snprintf(NULL, 0, "=> %s\n", names[nameln]); + nameln++; } errno = 0; |
