From e4c8ec9621dcd002d98372831491107e5ec25819 Mon Sep 17 00:00:00 2001 From: bartfaik04 Date: Mon, 26 May 2025 12:30:20 +0200 Subject: [PATCH] Receive and scan requests --- src/main.cpp | 31 +++++++++++++++++++++++-------- src/pipedata.h | 12 ------------ 2 files changed, 23 insertions(+), 20 deletions(-) delete mode 100644 src/pipedata.h diff --git a/src/main.cpp b/src/main.cpp index 78e1563..706016f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -12,12 +12,12 @@ #include #include #include -#include "pipedata.h" #include "locations.h" #include "usermanager.h" #define MAXNAMESIZE 255 #define SCAN_DONE_SIG SIGRTMIN +#define SCAN_CMD_USR "docker exec -ti --user www-data nextcloud /var/www/html/occ files:scan --path=" void initRunningFlag(int shmid) { @@ -72,9 +72,8 @@ int main() std::string line(buffer.data()); if (line.find('|') == std::string::npos) - { continue; - } + std::vector x = splitLogFile(line, '|'); std::string user(x.at(USER_LOG_LOCATION)); @@ -83,9 +82,11 @@ int main() std::vector users = manager.getFlaggedUsers(); - for (auto it = users.begin(); it != users.end(); ++it) + for (std::vector::iterator it = users.begin(); it != users.end(); ++it) { - write(p1[1], it->data(), it->size()); + int size = it->size(); + write(p1[1], &size, sizeof(int)); + write(p1[1], it->data(), size * sizeof(char)); } } @@ -96,11 +97,25 @@ int main() { close(p1[1]); // write - std::array received; + int size; + char *buffer = nullptr; - while (read(p1[0], received.data(), sizeof(char) * MAXNAMESIZE)) + while (read(p1[0], &size, sizeof(int))) { - + if (buffer == nullptr) + buffer = new char[size]; + + read(p1[0], buffer, size * sizeof(char)); + std::string name(buffer); + + system((std::string(SCAN_CMD_USR) + name).data()); + + if (buffer != nullptr) + { + delete[] buffer; + buffer = nullptr; + } + } close(p1[0]); // read diff --git a/src/pipedata.h b/src/pipedata.h deleted file mode 100644 index 34355d4..0000000 --- a/src/pipedata.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _PIPDATA_H -#define _PIPDATA_H - -#include - -struct pipestruct -{ - std::string user; - -}; - -#endif // _PIPDATA_H \ No newline at end of file