From a9c7ddec2b02a299c5aed0dabb99f2f35fe80dab Mon Sep 17 00:00:00 2001 From: anti Date: Tue, 7 Apr 2026 23:21:16 -0400 Subject: [PATCH] fix: enforce absolute paths for state and database files --- .hypothesis/constants/19d5adc9efd5ec68 | 4 + .hypothesis/constants/219a36e8b671f84b | 4 + .hypothesis/constants/a3207e9522fed10c | 4 + .hypothesis/constants/ceb1d0465029fa83 | 4 + .hypothesis/constants/da39a3ee5e6b4b0d | 4 + .hypothesis/constants/da43cd4d80a43169 | 4 + .hypothesis/constants/df40fa14165138c7 | 4 + .../02709a08d5dd3bf6/be0230ef54d34195 | 1 + .../04e6b3400353b141/02709a08d5dd3bf6 | 2 + .../04e6b3400353b141/07415f0af878fbe0 | 1 + .../04e6b3400353b141/69de0ff9882fb7ae | Bin 0 -> 58 bytes .../04e6b3400353b141/ad62dc9ce19b3e65 | Bin 0 -> 48 bytes .../07415f0af878fbe0/59a0424d9d1db2bd | Bin 0 -> 6 bytes .../69de0ff9882fb7ae/046ad25b37468979 | 1 + .../69de0ff9882fb7ae/145ce512e57fc774 | 1 + .../69de0ff9882fb7ae/1f3d226b8b16b85f | 1 + .../69de0ff9882fb7ae/2a4604391a6a3a01 | 1 + .../69de0ff9882fb7ae/327ebe8e2777678d | 1 + .../69de0ff9882fb7ae/6bd8eb2cdf74b98a | 1 + .../69de0ff9882fb7ae/6f5b1e7034c7c5b5 | 1 + .../69de0ff9882fb7ae/723685965ac5ff1d | 1 + .../69de0ff9882fb7ae/7960c8d6f8ec07ac | 1 + .../69de0ff9882fb7ae/7b7a86f12d6b5938 | 1 + .../69de0ff9882fb7ae/8cd72bc129890193 | 1 + .../69de0ff9882fb7ae/8ce546b5eb9b0f31 | 1 + .../69de0ff9882fb7ae/d0c027c0d942995f | 1 + .../69de0ff9882fb7ae/df68ad765d78d039 | 1 + .../69de0ff9882fb7ae/eb0808fd117cb24f | 1 + .../69de0ff9882fb7ae/ef6e2c7c5727ec10 | 1 + .../ad62dc9ce19b3e65/0063f278d45b843e | 1 + .../unicode_data/16.0.0/charmap.json.gz | Bin 0 -> 22308 bytes .../unicode_data/16.0.0/codec-utf-8.json.gz | Bin 0 -> 60 bytes decnet.db | Bin 32768 -> 69632 bytes decnet.log | 130 ++++++++++++++++++ decnet/config.py | 4 +- decnet/web/sqlite_repository.py | 4 +- tests/.hypothesis/constants/19d5adc9efd5ec68 | 4 + tests/.hypothesis/constants/219a36e8b671f84b | 4 + tests/.hypothesis/constants/a3207e9522fed10c | 4 + tests/.hypothesis/constants/ceb1d0465029fa83 | 4 + tests/.hypothesis/constants/da39a3ee5e6b4b0d | 4 + tests/.hypothesis/constants/da43cd4d80a43169 | 4 + tests/.hypothesis/constants/df40fa14165138c7 | 4 + .../unicode_data/16.0.0/charmap.json.gz | Bin 0 -> 22308 bytes .../unicode_data/16.0.0/codec-utf-8.json.gz | Bin 0 -> 60 bytes 45 files changed, 212 insertions(+), 3 deletions(-) create mode 100644 .hypothesis/constants/19d5adc9efd5ec68 create mode 100644 .hypothesis/constants/219a36e8b671f84b create mode 100644 .hypothesis/constants/a3207e9522fed10c create mode 100644 .hypothesis/constants/ceb1d0465029fa83 create mode 100644 .hypothesis/constants/da39a3ee5e6b4b0d create mode 100644 .hypothesis/constants/da43cd4d80a43169 create mode 100644 .hypothesis/constants/df40fa14165138c7 create mode 100644 .hypothesis/examples/02709a08d5dd3bf6/be0230ef54d34195 create mode 100644 .hypothesis/examples/04e6b3400353b141/02709a08d5dd3bf6 create mode 100644 .hypothesis/examples/04e6b3400353b141/07415f0af878fbe0 create mode 100644 .hypothesis/examples/04e6b3400353b141/69de0ff9882fb7ae create mode 100644 .hypothesis/examples/04e6b3400353b141/ad62dc9ce19b3e65 create mode 100644 .hypothesis/examples/07415f0af878fbe0/59a0424d9d1db2bd create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/046ad25b37468979 create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/145ce512e57fc774 create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/1f3d226b8b16b85f create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/2a4604391a6a3a01 create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/327ebe8e2777678d create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/6bd8eb2cdf74b98a create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/6f5b1e7034c7c5b5 create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/723685965ac5ff1d create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/7960c8d6f8ec07ac create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/7b7a86f12d6b5938 create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/8cd72bc129890193 create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/8ce546b5eb9b0f31 create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/d0c027c0d942995f create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/df68ad765d78d039 create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/eb0808fd117cb24f create mode 100644 .hypothesis/examples/69de0ff9882fb7ae/ef6e2c7c5727ec10 create mode 100644 .hypothesis/examples/ad62dc9ce19b3e65/0063f278d45b843e create mode 100644 .hypothesis/unicode_data/16.0.0/charmap.json.gz create mode 100644 .hypothesis/unicode_data/16.0.0/codec-utf-8.json.gz create mode 100644 tests/.hypothesis/constants/19d5adc9efd5ec68 create mode 100644 tests/.hypothesis/constants/219a36e8b671f84b create mode 100644 tests/.hypothesis/constants/a3207e9522fed10c create mode 100644 tests/.hypothesis/constants/ceb1d0465029fa83 create mode 100644 tests/.hypothesis/constants/da39a3ee5e6b4b0d create mode 100644 tests/.hypothesis/constants/da43cd4d80a43169 create mode 100644 tests/.hypothesis/constants/df40fa14165138c7 create mode 100644 tests/.hypothesis/unicode_data/16.0.0/charmap.json.gz create mode 100644 tests/.hypothesis/unicode_data/16.0.0/codec-utf-8.json.gz diff --git a/.hypothesis/constants/19d5adc9efd5ec68 b/.hypothesis/constants/19d5adc9efd5ec68 new file mode 100644 index 0000000..372bfa2 --- /dev/null +++ b/.hypothesis/constants/19d5adc9efd5ec68 @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/ingester.py +# hypothesis_version: 6.151.11 + +['.json', 'decnet.web.ingester', 'r', 'replace', 'utf-8'] \ No newline at end of file diff --git a/.hypothesis/constants/219a36e8b671f84b b/.hypothesis/constants/219a36e8b671f84b new file mode 100644 index 0000000..275bac0 --- /dev/null +++ b/.hypothesis/constants/219a36e8b671f84b @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/repository.py +# hypothesis_version: 6.151.11 + +[] \ No newline at end of file diff --git a/.hypothesis/constants/a3207e9522fed10c b/.hypothesis/constants/a3207e9522fed10c new file mode 100644 index 0000000..03b8a88 --- /dev/null +++ b/.hypothesis/constants/a3207e9522fed10c @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/api.py +# hypothesis_version: 6.151.11 + +[1000, '*', '/api/v1/auth/login', '/api/v1/logs', '/api/v1/stats', '1.0.0', 'Bearer', 'WWW-Authenticate', 'access_token', 'admin', 'bearer', 'data', 'limit', 'message', 'must_change_password', 'offset', 'password_hash', 'role', 'token_type', 'total', 'username', 'uuid'] \ No newline at end of file diff --git a/.hypothesis/constants/ceb1d0465029fa83 b/.hypothesis/constants/ceb1d0465029fa83 new file mode 100644 index 0000000..962a59c --- /dev/null +++ b/.hypothesis/constants/ceb1d0465029fa83 @@ -0,0 +1,4 @@ +# file: /home/anti/.local/bin/pytest +# hypothesis_version: 6.151.11 + +['__main__'] \ No newline at end of file diff --git a/.hypothesis/constants/da39a3ee5e6b4b0d b/.hypothesis/constants/da39a3ee5e6b4b0d new file mode 100644 index 0000000..62b7279 --- /dev/null +++ b/.hypothesis/constants/da39a3ee5e6b4b0d @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/__init__.py +# hypothesis_version: 6.151.11 + +[] \ No newline at end of file diff --git a/.hypothesis/constants/da43cd4d80a43169 b/.hypothesis/constants/da43cd4d80a43169 new file mode 100644 index 0000000..47f0424 --- /dev/null +++ b/.hypothesis/constants/da43cd4d80a43169 @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/sqlite_repository.py +# hypothesis_version: 6.151.11 + +['SELECT * FROM logs', 'active_deckies', 'attacker_ip', 'decky', 'decnet.db', 'event_type', 'fields', 'msg', 'must_change_password', 'password_hash', 'raw_line', 'role', 'service', 'timestamp', 'total', 'total_logs', 'unique_attackers', 'username', 'uuid'] \ No newline at end of file diff --git a/.hypothesis/constants/df40fa14165138c7 b/.hypothesis/constants/df40fa14165138c7 new file mode 100644 index 0000000..f63366f --- /dev/null +++ b/.hypothesis/constants/df40fa14165138c7 @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/auth.py +# hypothesis_version: 6.151.11 + +[1440, 'DECNET_SECRET_KEY', 'HS256', 'exp', 'iat', 'utf-8'] \ No newline at end of file diff --git a/.hypothesis/examples/02709a08d5dd3bf6/be0230ef54d34195 b/.hypothesis/examples/02709a08d5dd3bf6/be0230ef54d34195 new file mode 100644 index 0000000..e41229d --- /dev/null +++ b/.hypothesis/examples/02709a08d5dd3bf6/be0230ef54d34195 @@ -0,0 +1 @@ +¹5󋻞𽶟Uz&)Zß \ No newline at end of file diff --git a/.hypothesis/examples/04e6b3400353b141/02709a08d5dd3bf6 b/.hypothesis/examples/04e6b3400353b141/02709a08d5dd3bf6 new file mode 100644 index 0000000..fe3d8fc --- /dev/null +++ b/.hypothesis/examples/04e6b3400353b141/02709a08d5dd3bf6 @@ -0,0 +1,2 @@ +O ;}b4 +l+L=-06앀MW.secondary \ No newline at end of file diff --git a/.hypothesis/examples/04e6b3400353b141/07415f0af878fbe0 b/.hypothesis/examples/04e6b3400353b141/07415f0af878fbe0 new file mode 100644 index 0000000..6ea1756 --- /dev/null +++ b/.hypothesis/examples/04e6b3400353b141/07415f0af878fbe0 @@ -0,0 +1 @@ +ֹ8 (}hYg`$lI0y}bU` e[2Pş \ No newline at end of file diff --git a/.hypothesis/examples/04e6b3400353b141/69de0ff9882fb7ae b/.hypothesis/examples/04e6b3400353b141/69de0ff9882fb7ae new file mode 100644 index 0000000000000000000000000000000000000000..1bc7bd85934ee6106a90413d52e5144069efa39d GIT binary patch literal 58 zcmV-A0LB0Ny+^S#nYP~mDBe066^0)c!{HO9ON=}U7;b1QNu`;bbg(+iI;BPqAjYl) QZBtt=b7f<1Ze(F{dEl29_W%F@ literal 0 HcmV?d00001 diff --git a/.hypothesis/examples/04e6b3400353b141/ad62dc9ce19b3e65 b/.hypothesis/examples/04e6b3400353b141/ad62dc9ce19b3e65 new file mode 100644 index 0000000000000000000000000000000000000000..5ad10c147e782ed6287a5171ebbe8e815b8fb02a GIT binary patch literal 48 zcmV-00MGyXy+^S#nYP~mDBe066^0)c!{HO9ON=}U7;b1QNu`;bbg(+iI;BPqAjYl) GZBttW2^0YU literal 0 HcmV?d00001 diff --git a/.hypothesis/examples/07415f0af878fbe0/59a0424d9d1db2bd b/.hypothesis/examples/07415f0af878fbe0/59a0424d9d1db2bd new file mode 100644 index 0000000000000000000000000000000000000000..d8e977e31a0ca9d5baa2101000f9774aaf6239cd GIT binary patch literal 6 LcmZ={a0EgC0}=ql literal 0 HcmV?d00001 diff --git a/.hypothesis/examples/69de0ff9882fb7ae/046ad25b37468979 b/.hypothesis/examples/69de0ff9882fb7ae/046ad25b37468979 new file mode 100644 index 0000000..d5dd383 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/046ad25b37468979 @@ -0,0 +1 @@ +Û \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/145ce512e57fc774 b/.hypothesis/examples/69de0ff9882fb7ae/145ce512e57fc774 new file mode 100644 index 0000000..7f5b420 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/145ce512e57fc774 @@ -0,0 +1 @@ +× \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/1f3d226b8b16b85f b/.hypothesis/examples/69de0ff9882fb7ae/1f3d226b8b16b85f new file mode 100644 index 0000000..cc0b532 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/1f3d226b8b16b85f @@ -0,0 +1 @@ +⿡ \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/2a4604391a6a3a01 b/.hypothesis/examples/69de0ff9882fb7ae/2a4604391a6a3a01 new file mode 100644 index 0000000..0e5befe --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/2a4604391a6a3a01 @@ -0,0 +1 @@ +Í \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/327ebe8e2777678d b/.hypothesis/examples/69de0ff9882fb7ae/327ebe8e2777678d new file mode 100644 index 0000000..e185c40 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/327ebe8e2777678d @@ -0,0 +1 @@ +ß \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/6bd8eb2cdf74b98a b/.hypothesis/examples/69de0ff9882fb7ae/6bd8eb2cdf74b98a new file mode 100644 index 0000000..ed3a940 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/6bd8eb2cdf74b98a @@ -0,0 +1 @@ +𣟡 \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/6f5b1e7034c7c5b5 b/.hypothesis/examples/69de0ff9882fb7ae/6f5b1e7034c7c5b5 new file mode 100644 index 0000000..d2738a7 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/6f5b1e7034c7c5b5 @@ -0,0 +1 @@ +Ù \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/723685965ac5ff1d b/.hypothesis/examples/69de0ff9882fb7ae/723685965ac5ff1d new file mode 100644 index 0000000..2de7595 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/723685965ac5ff1d @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/7960c8d6f8ec07ac b/.hypothesis/examples/69de0ff9882fb7ae/7960c8d6f8ec07ac new file mode 100644 index 0000000..48d57f6 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/7960c8d6f8ec07ac @@ -0,0 +1 @@ +ϡ \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/7b7a86f12d6b5938 b/.hypothesis/examples/69de0ff9882fb7ae/7b7a86f12d6b5938 new file mode 100644 index 0000000..685d9a9 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/7b7a86f12d6b5938 @@ -0,0 +1 @@ +‘ \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/8cd72bc129890193 b/.hypothesis/examples/69de0ff9882fb7ae/8cd72bc129890193 new file mode 100644 index 0000000..fa7b733 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/8cd72bc129890193 @@ -0,0 +1 @@ +򣟡 \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/8ce546b5eb9b0f31 b/.hypothesis/examples/69de0ff9882fb7ae/8ce546b5eb9b0f31 new file mode 100644 index 0000000..9277a86 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/8ce546b5eb9b0f31 @@ -0,0 +1 @@ +Ý \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/d0c027c0d942995f b/.hypothesis/examples/69de0ff9882fb7ae/d0c027c0d942995f new file mode 100644 index 0000000..3a1b92a --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/d0c027c0d942995f @@ -0,0 +1 @@ +ƒ \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/df68ad765d78d039 b/.hypothesis/examples/69de0ff9882fb7ae/df68ad765d78d039 new file mode 100644 index 0000000..2049fd9 --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/df68ad765d78d039 @@ -0,0 +1 @@ +á \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/eb0808fd117cb24f b/.hypothesis/examples/69de0ff9882fb7ae/eb0808fd117cb24f new file mode 100644 index 0000000..d84880e --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/eb0808fd117cb24f @@ -0,0 +1 @@ +‡ \ No newline at end of file diff --git a/.hypothesis/examples/69de0ff9882fb7ae/ef6e2c7c5727ec10 b/.hypothesis/examples/69de0ff9882fb7ae/ef6e2c7c5727ec10 new file mode 100644 index 0000000..6d5311d --- /dev/null +++ b/.hypothesis/examples/69de0ff9882fb7ae/ef6e2c7c5727ec10 @@ -0,0 +1 @@ +¹ \ No newline at end of file diff --git a/.hypothesis/examples/ad62dc9ce19b3e65/0063f278d45b843e b/.hypothesis/examples/ad62dc9ce19b3e65/0063f278d45b843e new file mode 100644 index 0000000..9ce2777 --- /dev/null +++ b/.hypothesis/examples/ad62dc9ce19b3e65/0063f278d45b843e @@ -0,0 +1 @@ +€ \ No newline at end of file diff --git a/.hypothesis/unicode_data/16.0.0/charmap.json.gz b/.hypothesis/unicode_data/16.0.0/charmap.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..febd31331ec2a034aeda22e93fe3b07ef23a1bb5 GIT binary patch literal 22308 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 JczAN*{{dJ05{&== delta 112 zcmZozz|zpbG(nnGm4ShQW1@mRqw2^HwHwy+l1 2026-04-07T20:24:03.279897+00:00 decky-webmail smtp - startup - SMTP server starting as decky-webmail <134>1 2026-04-07T20:24:03.283256+00:00 decky-webmail pop3 - startup - POP3 server starting as decky-webmail <134>1 2026-04-07T20:24:03.297543+00:00 decky-webmail http - startup - HTTP server starting as decky-webmail +<134>1 2026-04-08T02:34:14.252618+00:00 decky-webmail http - startup - HTTP server starting as decky-webmail +<134>1 2026-04-08T02:34:14.394371+00:00 decky-webmail smtp - startup - SMTP server starting as decky-webmail +<134>1 2026-04-08T02:34:14.544200+00:00 decky-webmail imap - startup - IMAP server starting as decky-webmail +<134>1 2026-04-08T02:34:14.613141+00:00 decky-webmail pop3 - startup - POP3 server starting as decky-webmail +<134>1 2026-04-08T02:41:44.704390+00:00 decky-webmail smtp - startup - SMTP server starting as decky-webmail +<134>1 2026-04-08T02:41:44.712319+00:00 decky-webmail pop3 - startup - POP3 server starting as decky-webmail +<134>1 2026-04-08T02:41:44.715798+00:00 decky-webmail imap - startup - IMAP server starting as decky-webmail +<134>1 2026-04-08T02:41:44.761105+00:00 decky-webmail http - startup - HTTP server starting as decky-webmail +<134>1 2026-04-08T03:04:58.479955+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="59596"] +<134>1 2026-04-08T03:04:58.479944+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="60948"] +<134>1 2026-04-08T03:04:58.479908+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="50740"] +<134>1 2026-04-08T03:04:58.482589+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:04.485896+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd=""] +<134>1 2026-04-08T03:05:04.485896+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="GET / HTTP/1.0"] +<134>1 2026-04-08T03:05:04.486195+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd=""] +<134>1 2026-04-08T03:05:04.486265+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{}" body=""] +<134>1 2026-04-08T03:05:09.490954+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:09.491082+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:09.491362+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="50502"] +<134>1 2026-04-08T03:05:09.491458+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="36034"] +<134>1 2026-04-08T03:05:09.491503+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="OPTIONS / HTTP/1.0"] +<134>1 2026-04-08T03:05:09.491587+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd=""] +<134>1 2026-04-08T03:05:14.497117+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:14.497128+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.778507+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="57398"] +<134>1 2026-04-08T03:05:15.778969+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="57412"] +<134>1 2026-04-08T03:05:15.780606+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="36044"] +<134>1 2026-04-08T03:05:15.786241+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="50504"] +<134>1 2026-04-08T03:05:15.786522+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="50510"] +<134>1 2026-04-08T03:05:15.787287+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="57414"] +<134>1 2026-04-08T03:05:15.788057+00:00 decky-webmail http - request [decnet@55555 method="POST" path="/sdk" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Content-Length': '441', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body="00000001-00000001<_this xsi:type=\"ManagedObjectReference\" type=\"ServiceInstance\">ServiceInstance"] +<134>1 2026-04-08T03:05:15.788277+00:00 decky-webmail http - request [decnet@55555 method="PROPFIND" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Depth': '0', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.788579+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.788832+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.789126+00:00 decky-webmail http - request [decnet@55555 method="PROPFIND" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Depth': '0', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.789433+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/.git/HEAD" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.791597+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="STLS"] +<134>1 2026-04-08T03:05:15.789747+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.788454+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'HEAD'}" body=""] +<134>1 2026-04-08T03:05:15.789250+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/nmaplowercheck1775617515" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.788723+00:00 decky-webmail http - request [decnet@55555 method="POST" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Content-Type': 'application/x-www-form-urlencoded', 'Connection': 'close', 'Content-Length': '88'}" body=" system.listMethods "] +<134>1 2026-04-08T03:05:15.789635+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{}" body=""] +<134>1 2026-04-08T03:05:15.788996+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/robots.txt" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.795508+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"] +<134>1 2026-04-08T03:05:15.795759+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"] +<134>1 2026-04-08T03:05:15.795842+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"] +<134>1 2026-04-08T03:05:15.796119+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.796206+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.796294+00:00 decky-webmail smtp - unknown_command [decnet@55555 src="192.168.1.5" command="HELP"] +<134>1 2026-04-08T03:05:15.796361+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="AUTH NTLM"] +<134>1 2026-04-08T03:05:15.796438+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'GET'}" body=""] +<134>1 2026-04-08T03:05:15.796615+00:00 decky-webmail http - request [decnet@55555 method="PROPFIND" path="/" remote_addr="192.168.1.5" headers="{'Depth': '1', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Content-Length': '0', 'Connection': 'close', 'Host': '192.168.1.110'}" body=""] +<134>1 2026-04-08T03:05:15.796792+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/NmapUpperCheck1775617515" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.796942+00:00 decky-webmail http - request [decnet@55555 method="PLEU" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.798121+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="TlRMTVNTUAABAAAAB4IIoAAAAAAAAAAAAAAAAAAAAAA="] +<134>1 2026-04-08T03:05:15.798138+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.798209+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.798273+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.798346+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.800770+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="36046"] +<134>1 2026-04-08T03:05:15.800943+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="57418"] +<134>1 2026-04-08T03:05:15.800994+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'POST'}" body=""] +<134>1 2026-04-08T03:05:15.801454+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.801656+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"] +<134>1 2026-04-08T03:05:15.801600+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/Nmap/folder/check1775617515" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.801764+00:00 decky-webmail http - request [decnet@55555 method="POST" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Content-Length': '0', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.802579+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="36056"] +<134>1 2026-04-08T03:05:15.802672+00:00 decky-webmail smtp - auth_attempt [decnet@55555 src="192.168.1.5" command="AUTH NTLM"] +<134>1 2026-04-08T03:05:15.802794+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.802586+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'PUT'}" body=""] +<134>1 2026-04-08T03:05:15.802776+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/favicon.ico" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Connection': 'close', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)'}" body=""] +<134>1 2026-04-08T03:05:15.806436+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="000b AUTHENTICATE NTLM"] +<134>1 2026-04-08T03:05:15.806511+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="50526"] +<134>1 2026-04-08T03:05:15.806571+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'DELETE'}" body=""] +<134>1 2026-04-08T03:05:15.806924+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="STLS"] +<134>1 2026-04-08T03:05:15.806923+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="TlRMTVNTUAABAAAAB4IIoAAAAAAAAAAAAAAAAAAAAAA="] +<134>1 2026-04-08T03:05:15.807082+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'TRACE'}" body=""] +<134>1 2026-04-08T03:05:15.810419+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.810466+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.810532+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.810761+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'OPTIONS'}" body=""] +<134>1 2026-04-08T03:05:15.813097+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'CONNECT'}" body=""] +<134>1 2026-04-08T03:05:15.817009+00:00 decky-webmail http - request [decnet@55555 method="OPTIONS" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110', 'Origin': 'example.com', 'User-Agent': 'Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html)', 'Connection': 'close', 'Access-Control-Request-Method': 'PATCH'}" body=""] +<134>1 2026-04-08T03:05:15.828253+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="57434"] +<134>1 2026-04-08T03:05:15.828499+00:00 decky-webmail smtp - ehlo [decnet@55555 src="192.168.1.5" domain="nmap.scanme.org"] +<134>1 2026-04-08T03:05:15.828518+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{}" body=""] +<134>1 2026-04-08T03:05:15.829131+00:00 decky-webmail http - request [decnet@55555 method="GET" path="/" remote_addr="192.168.1.5" headers="{'Host': '192.168.1.110'}" body=""] +<134>1 2026-04-08T03:05:15.829468+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.829643+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="57444"] +<134>1 2026-04-08T03:05:15.844265+00:00 decky-webmail smtp - connect [decnet@55555 src="192.168.1.5" src_port="57454"] +<134>1 2026-04-08T03:05:15.844481+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.844597+00:00 decky-webmail smtp - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.844682+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="36068"] +<134>1 2026-04-08T03:05:15.845057+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="36082"] +<134>1 2026-04-08T03:05:15.845197+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="($9���OX1��U�:5u���>�+7�%� II=%b�Tz��_ �/���[�o�Q�r395/�,�0�̨̩̪�����\]�a�S�+�/������\\�`�R"] +<134>1 2026-04-08T03:05:15.845325+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="��� �E����Q����P=�<��Ai� "] +<134>1 2026-04-08T03:05:15.845403+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="���# (&    "] +<134>1 2026-04-08T03:05:15.845469+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd=" +-3����"] +<134>1 2026-04-08T03:05:15.845543+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="�Y���B���!rt�'�-^Pz��V���F��I���٫l��y;�v�Vv%���ɛ�jF�/E����� �7\"2�4[��1ʲ&�0l �?*%��LUt$ATVV�E���Ӗ�+���\]� �+�'(�"] +<134>1 2026-04-08T03:05:15.845624+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="�y P�RG���fI��NY����ovpЈ�[:�G�����"] +<134>1 2026-04-08T03:05:15.845689+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd=" *�b/O��v�`x\";t$*;l�B\"��*�)��Ȣ�a�q��Ō��A��+��d��Ie�mÚ�{Q��y����24�~��V�`B�!��W\"��/zʿ(��f�� ����8jU��Rw5�CR��4����"] +<134>1 2026-04-08T03:05:15.846888+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="�AU��`��R/S2��:�hB˦��Wz@%E��v\"c���mcW��Q{�Y_X ��mz"] +<134>1 2026-04-08T03:05:15.846967+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="���?ʐ����'*U1 2026-04-08T03:05:15.847038+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="qT�D��%�ɴ�o�Z�H7Zҹ\\���*g�P~����^���^*�)9�8{jt�(stÓ@b�PWO�$� �иn� CqiC�TVlu��cK�Y3�IR5�P��y��y���h�k���iBj"] +<134>1 2026-04-08T03:05:15.847122+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="�C~�w�;mz�f���_�0 �d��ԅͣ�a2���ba��x�\]aE}�@�}��Yqf\";��|�����?� W豇����*�eI�d�9@� �O�0��ft�8UG\"���\]i�!o��m�!��E�0�up�"] +<134>1 2026-04-08T03:05:15.847257+00:00 decky-webmail imap - connect [decnet@55555 src="192.168.1.5" src_port="36088"] +<134>1 2026-04-08T03:05:15.847363+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="WSi����iI��,��R�?�g�{MG���Xӛ"] +<134>1 2026-04-08T03:05:15.847455+00:00 decky-webmail imap - command [decnet@55555 src="192.168.1.5" cmd="/"] +<134>1 2026-04-08T03:05:15.847548+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.847643+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.847592+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="50528"] +<134>1 2026-04-08T03:05:15.847712+00:00 decky-webmail imap - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.847858+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="STLS"] +<134>1 2026-04-08T03:05:15.847971+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.848073+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="50534"] +<134>1 2026-04-08T03:05:15.848153+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="($6�Ě�57�П8�~)��L��\\\"97�_� ;?�\\a@�Z:�i�Ĵo����)P�v����xr395/�,�0�̨̩̪�����\]�a�S�+�/������\\�`�R�$�"] +<134>1 2026-04-08T03:05:15.848241+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="��� �E����Q����P=�<��Ai� "] +<134>1 2026-04-08T03:05:15.848301+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="���# (&    "] +<134>1 2026-04-08T03:05:15.848356+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd=" +-3�����O����V�j!x[%�D��<��2�9��8M�Q��������es!?�7����j� ��6@"] +<134>1 2026-04-08T03:05:15.848415+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="� �^V�l��t݄�(e=I+'C��)���B��LH. w_ ԝ�� �rN� ��1™�Q-v���O�5�Fi.$��C/��ޢ5�~��RИu\"j�d4���[�!�"] +<134>1 2026-04-08T03:05:15.848468+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="�E��F;�wn�i���Ta���G�vA��+�:� �:�a[��'8"] +<134>1 2026-04-08T03:05:15.848525+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="?�F�ϖ!\"�aԖ/��B���\\��i�񛼷-xo��ƥU.a�{=Eb�B\]�498�-�J?{����'DiZ) E�ۦ��P�'�丹24���VV��.Д&^���V�bZ������)2@r� �,"] +<134>1 2026-04-08T03:05:15.848594+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="'t�����>����iw�`�ɇ�eIh�TFf,'���a0'�n���kGc�!J3�v�j��2[��PP��:�z���*�����y,��ʞJ�[RX�A��`��!̓���+���kiޔ;,�8*ߡw���z�2�"] +<134>1 2026-04-08T03:05:15.848649+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="1v�����:�5�VP�t�Ѳ��a[z�z�{B~cm�2Q,x>"] +<134>1 2026-04-08T03:05:15.848705+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="-T�'��+$������,-Nѹ$v2���sij¶��B��%���Ĺ�9P�'%Q�p�qk�s/���@D8 I|M�z�ທ疓�l� ��;�˪���E<�i�q�8?ͺ�?)^q0��J�#���u���F#\\b�|���{�"] +<134>1 2026-04-08T03:05:15.848801+00:00 decky-webmail pop3 - connect [decnet@55555 src="192.168.1.5" src_port="50550"] +<134>1 2026-04-08T03:05:15.848882+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="WSi��뎱sr�` �B @�&��cG|$G�͒ �/�"] +<134>1 2026-04-08T03:05:15.848949+00:00 decky-webmail pop3 - command [decnet@55555 src="192.168.1.5" cmd="/"] +<134>1 2026-04-08T03:05:15.849007+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"] +<134>1 2026-04-08T03:05:15.849061+00:00 decky-webmail pop3 - disconnect [decnet@55555 src="192.168.1.5"] diff --git a/decnet/config.py b/decnet/config.py index 44cec70..0863460 100644 --- a/decnet/config.py +++ b/decnet/config.py @@ -11,7 +11,9 @@ from pydantic import BaseModel, field_validator from decnet.distros import random_hostname as _random_hostname -STATE_FILE = Path("decnet-state.json") +# Calculate absolute path to the project root (where the config file resides) +_ROOT: Path = Path(__file__).parent.parent.absolute() +STATE_FILE: Path = _ROOT / "decnet-state.json" def random_hostname(distro_slug: str = "debian") -> str: diff --git a/decnet/web/sqlite_repository.py b/decnet/web/sqlite_repository.py index 25e69b9..7c571a6 100644 --- a/decnet/web/sqlite_repository.py +++ b/decnet/web/sqlite_repository.py @@ -1,13 +1,13 @@ import aiosqlite from typing import Any, Optional from decnet.web.repository import BaseRepository -from decnet.config import load_state +from decnet.config import load_state, _ROOT class SQLiteRepository(BaseRepository): """SQLite implementation of the DECNET web repository.""" - def __init__(self, db_path: str = "decnet.db") -> None: + def __init__(self, db_path: str = str(_ROOT / "decnet.db")) -> None: self.db_path: str = db_path async def initialize(self) -> None: diff --git a/tests/.hypothesis/constants/19d5adc9efd5ec68 b/tests/.hypothesis/constants/19d5adc9efd5ec68 new file mode 100644 index 0000000..372bfa2 --- /dev/null +++ b/tests/.hypothesis/constants/19d5adc9efd5ec68 @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/ingester.py +# hypothesis_version: 6.151.11 + +['.json', 'decnet.web.ingester', 'r', 'replace', 'utf-8'] \ No newline at end of file diff --git a/tests/.hypothesis/constants/219a36e8b671f84b b/tests/.hypothesis/constants/219a36e8b671f84b new file mode 100644 index 0000000..275bac0 --- /dev/null +++ b/tests/.hypothesis/constants/219a36e8b671f84b @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/repository.py +# hypothesis_version: 6.151.11 + +[] \ No newline at end of file diff --git a/tests/.hypothesis/constants/a3207e9522fed10c b/tests/.hypothesis/constants/a3207e9522fed10c new file mode 100644 index 0000000..03b8a88 --- /dev/null +++ b/tests/.hypothesis/constants/a3207e9522fed10c @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/api.py +# hypothesis_version: 6.151.11 + +[1000, '*', '/api/v1/auth/login', '/api/v1/logs', '/api/v1/stats', '1.0.0', 'Bearer', 'WWW-Authenticate', 'access_token', 'admin', 'bearer', 'data', 'limit', 'message', 'must_change_password', 'offset', 'password_hash', 'role', 'token_type', 'total', 'username', 'uuid'] \ No newline at end of file diff --git a/tests/.hypothesis/constants/ceb1d0465029fa83 b/tests/.hypothesis/constants/ceb1d0465029fa83 new file mode 100644 index 0000000..962a59c --- /dev/null +++ b/tests/.hypothesis/constants/ceb1d0465029fa83 @@ -0,0 +1,4 @@ +# file: /home/anti/.local/bin/pytest +# hypothesis_version: 6.151.11 + +['__main__'] \ No newline at end of file diff --git a/tests/.hypothesis/constants/da39a3ee5e6b4b0d b/tests/.hypothesis/constants/da39a3ee5e6b4b0d new file mode 100644 index 0000000..62b7279 --- /dev/null +++ b/tests/.hypothesis/constants/da39a3ee5e6b4b0d @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/__init__.py +# hypothesis_version: 6.151.11 + +[] \ No newline at end of file diff --git a/tests/.hypothesis/constants/da43cd4d80a43169 b/tests/.hypothesis/constants/da43cd4d80a43169 new file mode 100644 index 0000000..47f0424 --- /dev/null +++ b/tests/.hypothesis/constants/da43cd4d80a43169 @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/sqlite_repository.py +# hypothesis_version: 6.151.11 + +['SELECT * FROM logs', 'active_deckies', 'attacker_ip', 'decky', 'decnet.db', 'event_type', 'fields', 'msg', 'must_change_password', 'password_hash', 'raw_line', 'role', 'service', 'timestamp', 'total', 'total_logs', 'unique_attackers', 'username', 'uuid'] \ No newline at end of file diff --git a/tests/.hypothesis/constants/df40fa14165138c7 b/tests/.hypothesis/constants/df40fa14165138c7 new file mode 100644 index 0000000..f63366f --- /dev/null +++ b/tests/.hypothesis/constants/df40fa14165138c7 @@ -0,0 +1,4 @@ +# file: /home/anti/Tools/DECNET/decnet/web/auth.py +# hypothesis_version: 6.151.11 + +[1440, 'DECNET_SECRET_KEY', 'HS256', 'exp', 'iat', 'utf-8'] \ No newline at end of file diff --git a/tests/.hypothesis/unicode_data/16.0.0/charmap.json.gz b/tests/.hypothesis/unicode_data/16.0.0/charmap.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..7e6808eb11841aab2a3f04cb6c9e57f3f58c46ff GIT binary patch literal 22308 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 PZbUHDMd`1Q1L^?)IVBSJ literal 0 HcmV?d00001