From 1109a88447e1c5cefe6ed93eccc8dcf8cd595d0e Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Thu, 20 May 2021 02:49:09 +0200 Subject: implemented rest of checker functionality --- service/src/main.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'service/src/main.c') diff --git a/service/src/main.c b/service/src/main.c index 959ef58..e79e04e 100644 --- a/service/src/main.c +++ b/service/src/main.c @@ -171,9 +171,9 @@ void search_cmd(const char *arg) { char *end, *scandir = NULL, *infopath = NULL, *modelpath = NULL; - const char *hash; + int i, which, dirstart, ishidden; + const char *hash, *name; struct dirent *de; - int i, which, dirstart; DIR *d = NULL; FILE *f = NULL; size_t size; @@ -190,9 +190,13 @@ search_cmd(const char *arg) if (!(d = opendir(resultdir))) return; + printf("%s %s\n", resultdir, hash); + dirstart = telldir(d); for (i = 0; (de = readdir(d));) { - if (!strpfcmp(hash, de->d_name) && *de->d_name != '.') { + name = de->d_name; + if (loggedin && *name == '.' && !strpfcmp(hash, name + 1) + || !loggedin && *name != '.' && !strpfcmp(hash, name)) { printf("%i : %s\n", i, de->d_name); i++; } @@ -211,7 +215,9 @@ search_cmd(const char *arg) seekdir(d, dirstart); for (i = 0; (de = readdir(d));) { - if (!strpfcmp(hash, de->d_name) && *de->d_name != '.') { + name = de->d_name; + if (loggedin && *name == '.' && !strpfcmp(hash, name + 1) + || !loggedin && *name != '.' && !strpfcmp(hash, name)) { if (i == which) { scandir = aprintf("%s/%s", resultdir, de->d_name); break; -- cgit v1.2.3-71-gd317