From a56cbcbf2ed7e5236d0ad0de14079b490a4dc3fc Mon Sep 17 00:00:00 2001 From: Wisdurm Date: Wed, 26 Nov 2025 14:30:12 +0200 Subject: [PATCH] fixes --- compile_commands.json | 572 ------------------------- src/main.cpp | 50 ++- static/images/zinyprzbmla8pkx5f0lx.jpg | Bin 0 -> 21314 bytes 3 files changed, 40 insertions(+), 582 deletions(-) delete mode 100644 compile_commands.json create mode 100644 static/images/zinyprzbmla8pkx5f0lx.jpg diff --git a/compile_commands.json b/compile_commands.json deleted file mode 100644 index b1f6938..0000000 --- a/compile_commands.json +++ /dev/null @@ -1,572 +0,0 @@ -[ - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "cmake_object_order_depends_target_pqxx", - "output": "cmake_object_order_depends_target_koivuhaka" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -DASIO_STANDALONE -I/home/wisdurm/repos/koivuhaka/build/_deps/crow-src/include -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /home/wisdurm/repos/koivuhaka/build/vcpkg_installed/x64-linux/include -std=gnu++23 -MD -MT CMakeFiles/koivuhaka.dir/src/main.cpp.o -MF CMakeFiles/koivuhaka.dir/src/main.cpp.o.d -o CMakeFiles/koivuhaka.dir/src/main.cpp.o -c /home/wisdurm/repos/koivuhaka/src/main.cpp", - "file": "/home/wisdurm/repos/koivuhaka/src/main.cpp", - "output": "CMakeFiles/koivuhaka.dir/src/main.cpp.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": ": && /usr/bin/c++ -Wl,--dependency-file=CMakeFiles/koivuhaka.dir/link.d CMakeFiles/koivuhaka.dir/src/main.cpp.o -o koivuhaka build-pqxx/src/libpqxx-7.10.a /usr/lib/x86_64-linux-gnu/libpq.so && :", - "file": "CMakeFiles/koivuhaka.dir/src/main.cpp.o", - "output": "koivuhaka" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build && /usr/bin/cpack --config ./CPackConfig.cmake", - "file": "all", - "output": "CMakeFiles/package.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "CMakeFiles/package.util", - "output": "package" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "CMakeFiles/package_source.util", - "output": "package_source" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "CMakeFiles/edit_cache.util", - "output": "edit_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "CMakeFiles/rebuild_cache.util", - "output": "rebuild_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build && /usr/bin/cmake -P cmake_install.cmake", - "file": "all", - "output": "CMakeFiles/install.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "CMakeFiles/install.util", - "output": "install" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build && /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake", - "file": "all", - "output": "CMakeFiles/install/local.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "CMakeFiles/install/local.util", - "output": "install/local" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build && /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake", - "file": "all", - "output": "CMakeFiles/install/strip.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "CMakeFiles/install/strip.util", - "output": "install/strip" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/CMakeFiles/uninstall", - "output": "_deps/crow-build/uninstall" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build && /usr/bin/cpack --config ./CPackConfig.cmake", - "file": "_deps/crow-build/all", - "output": "_deps/crow-build/CMakeFiles/package.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/CMakeFiles/package.util", - "output": "_deps/crow-build/package" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/CMakeFiles/package_source.util", - "output": "_deps/crow-build/package_source" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/CMakeFiles/edit_cache.util", - "output": "_deps/crow-build/edit_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/CMakeFiles/rebuild_cache.util", - "output": "_deps/crow-build/rebuild_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/_deps/crow-build && /usr/bin/cmake -P cmake_install.cmake", - "file": "_deps/crow-build/all", - "output": "_deps/crow-build/CMakeFiles/install.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/CMakeFiles/install.util", - "output": "_deps/crow-build/install" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/_deps/crow-build && /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake", - "file": "_deps/crow-build/all", - "output": "_deps/crow-build/CMakeFiles/install/local.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/CMakeFiles/install/local.util", - "output": "_deps/crow-build/install/local" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/_deps/crow-build && /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake", - "file": "_deps/crow-build/all", - "output": "_deps/crow-build/CMakeFiles/install/strip.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/CMakeFiles/install/strip.util", - "output": "_deps/crow-build/install/strip" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build && /usr/bin/cpack --config ./CPackConfig.cmake", - "file": "build-pqxx/all", - "output": "build-pqxx/CMakeFiles/package.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/CMakeFiles/package.util", - "output": "build-pqxx/package" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/CMakeFiles/package_source.util", - "output": "build-pqxx/package_source" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/CMakeFiles/edit_cache.util", - "output": "build-pqxx/edit_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/CMakeFiles/rebuild_cache.util", - "output": "build-pqxx/rebuild_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx && /usr/bin/cmake -P cmake_install.cmake", - "file": "build-pqxx/all", - "output": "build-pqxx/CMakeFiles/install.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/CMakeFiles/install.util", - "output": "build-pqxx/install" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx && /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake", - "file": "build-pqxx/all", - "output": "build-pqxx/CMakeFiles/install/local.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/CMakeFiles/install/local.util", - "output": "build-pqxx/install/local" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx && /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake", - "file": "build-pqxx/all", - "output": "build-pqxx/CMakeFiles/install/strip.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/CMakeFiles/install/strip.util", - "output": "build-pqxx/install/strip" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": ".", - "output": "cmake_object_order_depends_target_pqxx" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/array.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/array.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/array.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/array.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/array.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/array.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/binarystring.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/binarystring.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/binarystring.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/binarystring.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/binarystring.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/binarystring.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/blob.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/blob.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/blob.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/blob.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/blob.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/blob.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/connection.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/connection.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/connection.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/connection.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/connection.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/connection.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/cursor.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/cursor.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/cursor.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/cursor.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/cursor.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/cursor.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/encodings.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/encodings.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/encodings.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/encodings.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/encodings.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/encodings.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/errorhandler.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/errorhandler.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/errorhandler.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/errorhandler.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/errorhandler.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/errorhandler.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/except.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/except.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/except.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/except.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/except.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/except.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/field.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/field.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/field.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/field.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/field.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/field.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/largeobject.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/largeobject.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/largeobject.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/largeobject.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/largeobject.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/largeobject.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/notification.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/notification.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/notification.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/notification.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/notification.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/notification.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/params.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/params.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/params.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/params.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/params.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/params.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/pipeline.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/pipeline.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/pipeline.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/pipeline.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/pipeline.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/pipeline.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/result.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/result.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/result.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/result.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/result.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/result.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/robusttransaction.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/robusttransaction.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/robusttransaction.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/robusttransaction.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/robusttransaction.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/robusttransaction.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/row.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/row.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/row.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/row.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/row.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/row.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/sql_cursor.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/sql_cursor.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/sql_cursor.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/sql_cursor.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/sql_cursor.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/sql_cursor.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/strconv.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/strconv.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/strconv.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/strconv.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/strconv.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/strconv.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/stream_from.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/stream_from.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/stream_from.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/stream_from.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/stream_from.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/stream_from.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/stream_to.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/stream_to.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/stream_to.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/stream_to.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/stream_to.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/stream_to.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/subtransaction.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/subtransaction.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/subtransaction.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/subtransaction.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/subtransaction.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/subtransaction.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/time.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/time.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/time.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/time.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/time.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/time.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/transaction.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/transaction.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/transaction.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/transaction.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/transaction.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/transaction.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/transaction_base.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/transaction_base.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/transaction_base.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/transaction_base.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/transaction_base.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/transaction_base.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/util.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/util.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/util.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/util.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/util.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/util.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/version.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/version.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/version.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/version.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/version.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/version.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/c++ -I/home/wisdurm/repos/koivuhaka/build/build-pqxx/include -I/home/wisdurm/repos/koivuhaka/deps/libpqxx/include -isystem /usr/include/postgresql -std=c++23 -MD -MT build-pqxx/src/CMakeFiles/pqxx.dir/wait.cxx.o -MF build-pqxx/src/CMakeFiles/pqxx.dir/wait.cxx.o.d -o build-pqxx/src/CMakeFiles/pqxx.dir/wait.cxx.o -c /home/wisdurm/repos/koivuhaka/deps/libpqxx/src/wait.cxx", - "file": "/home/wisdurm/repos/koivuhaka/deps/libpqxx/src/wait.cxx", - "output": "build-pqxx/src/CMakeFiles/pqxx.dir/wait.cxx.o" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": ": && /usr/bin/cmake -E rm -f build-pqxx/src/libpqxx-7.10.a && /usr/bin/ar qc build-pqxx/src/libpqxx-7.10.a build-pqxx/src/CMakeFiles/pqxx.dir/array.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/binarystring.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/blob.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/connection.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/cursor.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/encodings.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/errorhandler.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/except.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/field.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/largeobject.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/notification.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/params.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/pipeline.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/result.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/robusttransaction.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/row.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/sql_cursor.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/strconv.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/stream_from.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/stream_to.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/subtransaction.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/time.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/transaction.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/transaction_base.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/util.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/version.cxx.o build-pqxx/src/CMakeFiles/pqxx.dir/wait.cxx.o && /usr/bin/ranlib build-pqxx/src/libpqxx-7.10.a && cd /home/wisdurm/repos/koivuhaka/build/build-pqxx/src && /usr/bin/cmake -E create_symlink libpqxx-7.10.a libpqxx.a", - "file": "build-pqxx/src/CMakeFiles/pqxx.dir/array.cxx.o", - "output": "build-pqxx/src/libpqxx-7.10.a" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build && /usr/bin/cpack --config ./CPackConfig.cmake", - "file": "build-pqxx/src/all", - "output": "build-pqxx/src/CMakeFiles/package.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/CMakeFiles/package.util", - "output": "build-pqxx/src/package" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/CMakeFiles/package_source.util", - "output": "build-pqxx/src/package_source" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/CMakeFiles/edit_cache.util", - "output": "build-pqxx/src/edit_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/CMakeFiles/rebuild_cache.util", - "output": "build-pqxx/src/rebuild_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx/src && /usr/bin/cmake -P cmake_install.cmake", - "file": "build-pqxx/src/all", - "output": "build-pqxx/src/CMakeFiles/install.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/CMakeFiles/install.util", - "output": "build-pqxx/src/install" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx/src && /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake", - "file": "build-pqxx/src/all", - "output": "build-pqxx/src/CMakeFiles/install/local.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/CMakeFiles/install/local.util", - "output": "build-pqxx/src/install/local" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx/src && /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake", - "file": "build-pqxx/src/all", - "output": "build-pqxx/src/CMakeFiles/install/strip.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/CMakeFiles/install/strip.util", - "output": "build-pqxx/src/install/strip" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build && /usr/bin/cpack --config ./CPackConfig.cmake", - "file": "build-pqxx/include/all", - "output": "build-pqxx/include/CMakeFiles/package.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/include/CMakeFiles/package.util", - "output": "build-pqxx/include/package" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/include/CMakeFiles/package_source.util", - "output": "build-pqxx/include/package_source" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/include/CMakeFiles/edit_cache.util", - "output": "build-pqxx/include/edit_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/include/CMakeFiles/rebuild_cache.util", - "output": "build-pqxx/include/rebuild_cache" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx/include && /usr/bin/cmake -P cmake_install.cmake", - "file": "build-pqxx/include/all", - "output": "build-pqxx/include/CMakeFiles/install.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/include/CMakeFiles/install.util", - "output": "build-pqxx/include/install" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx/include && /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake", - "file": "build-pqxx/include/all", - "output": "build-pqxx/include/CMakeFiles/install/local.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/include/CMakeFiles/install/local.util", - "output": "build-pqxx/include/install/local" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "cd /home/wisdurm/repos/koivuhaka/build/build-pqxx/include && /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake", - "file": "build-pqxx/include/all", - "output": "build-pqxx/include/CMakeFiles/install/strip.util" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/include/CMakeFiles/install/strip.util", - "output": "build-pqxx/include/install/strip" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/libpqxx-7.10.a", - "output": "libpqxx-7.10.a" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/libpqxx-7.10.a", - "output": "pqxx" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "_deps/crow-build/uninstall", - "output": "uninstall" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "koivuhaka", - "output": "all" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/all", - "output": "build-pqxx/all" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "", - "file": "build-pqxx/src/libpqxx-7.10.a", - "output": "build-pqxx/src/all" - }, - { - "directory": "/home/wisdurm/repos/koivuhaka/build", - "command": "/usr/bin/cmake --regenerate-during-build -S/home/wisdurm/repos/koivuhaka -B/home/wisdurm/repos/koivuhaka/build", - "file": "/home/wisdurm/repos/koivuhaka/CMakeLists.txt", - "output": "build.ninja" - } -] diff --git a/src/main.cpp b/src/main.cpp index 26037a8..876f325 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -58,7 +58,7 @@ namespace utils srand(time(NULL)); std::string r; for (int i = 0; i < 20; ++i) { - r += allowed[rand() % (sizeof(allowed) / sizeof(*allowed) )]; + r += allowed[rand() % ((sizeof(allowed) / sizeof(*allowed) - 1) )]; } r += fileExtension; return r; @@ -81,7 +81,8 @@ int main() // Asunnot lista std::vector asunnot; - CROW_ROUTE(app, "/")([&asunnot](){ + CROW_ROUTE(app, "/") + .methods("GET"_method, "POST"_method)([&asunnot](){ auto page = crow::mustache::load("index.html"); crow::json::wvalue asunnotJson; for (int i = 0; i < asunnot.size(); ++i) { @@ -147,11 +148,15 @@ int main() }); CROW_ROUTE(app, "/asunto") - .methods("POST"_method)([&app, &asunnot](const crow::request& req){ + .methods("GET"_method, "POST"_method)([&app, &asunnot](const crow::request& req, crow::response& res){ auto& session = app.get_context(req); + if (session.get("name","_NO_") == "_NO_") { // Jos ei kirjauduttu sisään, potki pois - return crow::response(401); + res.code = 401; + res.redirect("/"); + res.end(); + return; } // Jatka jos kirjautunut sisään std::string asuntoOsoite; @@ -175,12 +180,18 @@ int main() auto headers_it = part_value.headers.find("Content-Disposition"); if (headers_it == part_value.headers.end()) { CROW_LOG_ERROR << "No Content-Disposition found"; - return crow::response(400); + res.code = 400; + res.redirect("/"); + res.end(); + return; } auto params_it = headers_it->second.params.find("filename"); if (params_it == headers_it->second.params.end()) { CROW_LOG_ERROR << "Part with name \"image\" should have a file"; - return crow::response(400); + res.code = 400; + res.redirect("/"); + res.end(); + return; } const std::filesystem::path reqFile = params_it->second; const std::string outfileName = utils::fileName(reqFile.extension()); @@ -202,7 +213,10 @@ int main() std::ofstream file(outfilePath); if (file.fail()) { CROW_LOG_ERROR << "Cannot write file"; - return crow::response(500); + res.code = 500; + res.redirect("/"); + res.end(); + return; } file << part_value.body; file.close(); @@ -210,6 +224,13 @@ int main() // Tietokantaa varten asuntoKuva = outfileName; } + // Tarkistus + if (asuntoOsoite.empty() or asuntoKuva.empty()) { + res.code = 400; + res.redirect("/"); + res.end(); + return; + } // Lisää SQL tietokantaan try { @@ -218,7 +239,10 @@ int main() if (not cx.is_open()) { CROW_LOG_CRITICAL << "Can't open database"; - return crow::response(500); + res.code = 500; + res.redirect("/"); + res.end(); + return; } // Connection established CROW_LOG_INFO << "Opened database successfully: " << cx.dbname(); @@ -237,10 +261,16 @@ int main() catch (const std::exception &e) { CROW_LOG_ERROR << e.what(); - return crow::response(500); + res.code = 500; + res.redirect("/"); + res.end(); + return; } // Valmis - return crow::response(200); + res.code = 200; + res.redirect("/"); + res.end(); + return; }); diff --git a/static/images/zinyprzbmla8pkx5f0lx.jpg b/static/images/zinyprzbmla8pkx5f0lx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..854b2a22ca12b8a86971ca8475d37d79facf11c9 GIT binary patch literal 21314 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