itsi-scheduler 0.1.5 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of itsi-scheduler might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +7 -0
- data/Cargo.lock +83 -22
- data/README.md +5 -0
- data/_index.md +7 -0
- data/ext/itsi_error/src/from.rs +26 -29
- data/ext/itsi_error/src/lib.rs +10 -1
- data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/common.rs +355 -0
- data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/dynamic.rs +276 -0
- data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/macros.rs +49 -0
- data/ext/itsi_error/target/debug/build/rb-sys-49f554618693db24/out/bindings-0.9.110-mri-arm64-darwin23-3.4.2.rs +8865 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-1mmt5sux7jb0i/s-h510z7m8v9-0bxu7yd.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-2vn3jey74oiw0/s-h5113n0e7e-1v5qzs6.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510ykifhe-0tbnep2.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510yyocpj-0tz7ug7.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510z0xc8g-14ol18k.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-3g5qf4y7d54uj/s-h5113n0e7d-1trk8on.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-3lpfftm45d3e2/s-h510z7m8r3-1pxp20o.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510ykifek-1uxasnk.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510yyocki-11u37qm.lock +0 -0
- data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510z0xc93-0pmy0zm.lock +0 -0
- data/ext/itsi_rb_helpers/Cargo.toml +1 -0
- data/ext/itsi_rb_helpers/src/heap_value.rs +18 -0
- data/ext/itsi_rb_helpers/src/lib.rs +59 -9
- data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/common.rs +355 -0
- data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/dynamic.rs +276 -0
- data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/macros.rs +49 -0
- data/ext/itsi_rb_helpers/target/debug/build/rb-sys-eb9ed4ff3a60f995/out/bindings-0.9.110-mri-arm64-darwin23-3.4.2.rs +8865 -0
- data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-040pxg6yhb3g3/s-h5113n7a1b-03bwlt4.lock +0 -0
- data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-131g1u4dzkt1a/s-h51113xnh3-1eik1ip.lock +0 -0
- data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-131g1u4dzkt1a/s-h5111704jj-0g4rj8x.lock +0 -0
- data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-1q2d3drtxrzs5/s-h5113n79yl-0bxcqc5.lock +0 -0
- data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-374a9h7ovycj0/s-h51113xoox-10de2hp.lock +0 -0
- data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-374a9h7ovycj0/s-h5111704w7-0vdq7gq.lock +0 -0
- data/ext/itsi_server/Cargo.lock +2956 -0
- data/ext/itsi_server/Cargo.toml +69 -26
- data/ext/itsi_server/src/env.rs +43 -0
- data/ext/itsi_server/src/lib.rs +81 -75
- data/ext/itsi_server/src/{body_proxy → ruby_types/itsi_body_proxy}/big_bytes.rs +10 -5
- data/ext/itsi_server/src/{body_proxy/itsi_body_proxy.rs → ruby_types/itsi_body_proxy/mod.rs} +22 -3
- data/ext/itsi_server/src/ruby_types/itsi_grpc_request.rs +147 -0
- data/ext/itsi_server/src/ruby_types/itsi_grpc_response.rs +19 -0
- data/ext/itsi_server/src/ruby_types/itsi_grpc_stream/mod.rs +216 -0
- data/ext/itsi_server/src/{request/itsi_request.rs → ruby_types/itsi_http_request.rs} +108 -103
- data/ext/itsi_server/src/{response/itsi_response.rs → ruby_types/itsi_http_response.rs} +79 -38
- data/ext/itsi_server/src/ruby_types/itsi_server/file_watcher.rs +225 -0
- data/ext/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +355 -0
- data/ext/itsi_server/src/ruby_types/itsi_server.rs +82 -0
- data/ext/itsi_server/src/ruby_types/mod.rs +55 -0
- data/ext/itsi_server/src/server/bind.rs +33 -20
- data/ext/itsi_server/src/server/byte_frame.rs +32 -0
- data/ext/itsi_server/src/server/cache_store.rs +74 -0
- data/ext/itsi_server/src/server/itsi_service.rs +172 -0
- data/ext/itsi_server/src/server/lifecycle_event.rs +3 -0
- data/ext/itsi_server/src/server/listener.rs +197 -106
- data/ext/itsi_server/src/server/middleware_stack/middleware.rs +153 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/allow_list.rs +47 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_api_key.rs +58 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_basic.rs +82 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +264 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/cache_control.rs +139 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/compression.rs +300 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/cors.rs +287 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/deny_list.rs +48 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/error_response.rs +127 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/etag.rs +191 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/grpc_service.rs +72 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/header_interpretation.rs +85 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/intrusion_protection.rs +195 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs +82 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/mod.rs +82 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/proxy.rs +216 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs +124 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/redirect.rs +76 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/request_headers.rs +43 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/response_headers.rs +34 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +93 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +162 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/string_rewrite.rs +158 -0
- data/ext/itsi_server/src/server/middleware_stack/middlewares/token_source.rs +12 -0
- data/ext/itsi_server/src/server/middleware_stack/mod.rs +315 -0
- data/ext/itsi_server/src/server/mod.rs +8 -1
- data/ext/itsi_server/src/server/process_worker.rs +44 -11
- data/ext/itsi_server/src/server/rate_limiter.rs +565 -0
- data/ext/itsi_server/src/server/request_job.rs +11 -0
- data/ext/itsi_server/src/server/serve_strategy/cluster_mode.rs +129 -46
- data/ext/itsi_server/src/server/serve_strategy/mod.rs +9 -6
- data/ext/itsi_server/src/server/serve_strategy/single_mode.rs +337 -163
- data/ext/itsi_server/src/server/signal.rs +25 -2
- data/ext/itsi_server/src/server/static_file_server.rs +984 -0
- data/ext/itsi_server/src/server/thread_worker.rs +164 -88
- data/ext/itsi_server/src/server/tls/locked_dir_cache.rs +55 -17
- data/ext/itsi_server/src/server/tls.rs +104 -28
- data/ext/itsi_server/src/server/types.rs +43 -0
- data/ext/itsi_tracing/Cargo.toml +1 -0
- data/ext/itsi_tracing/src/lib.rs +222 -34
- data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-0994n8rpvvt9m/s-h510hfz1f6-1kbycmq.lock +0 -0
- data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-0bob7bf4yq34i/s-h5113125h5-0lh4rag.lock +0 -0
- data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2fcodulrxbbxo/s-h510h2infk-0hp5kjw.lock +0 -0
- data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2iak63r1woi1l/s-h510h2in4q-0kxfzw1.lock +0 -0
- data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2kk4qj9gn5dg2/s-h5113124kv-0enwon2.lock +0 -0
- data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2mwo0yas7dtw4/s-h510hfz1ha-1udgpei.lock +0 -0
- data/lib/itsi/scheduler/version.rb +1 -1
- data/lib/itsi/scheduler.rb +2 -2
- metadata +79 -14
- data/ext/itsi_server/extconf.rb +0 -6
- data/ext/itsi_server/src/body_proxy/mod.rs +0 -2
- data/ext/itsi_server/src/request/mod.rs +0 -1
- data/ext/itsi_server/src/response/mod.rs +0 -1
- data/ext/itsi_server/src/server/itsi_ca/itsi_ca.crt +0 -13
- data/ext/itsi_server/src/server/itsi_ca/itsi_ca.key +0 -5
- data/ext/itsi_server/src/server/itsi_server.rs +0 -244
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6950d858938b1a548b2f493c61ef786b93c6067e786d1b3c20490aa89f81b7f1
|
4
|
+
data.tar.gz: ccbc30811c509b4a2ea01b298c1151a982144015d98699aa04826a88cba84aed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81c6a5bf2fc56fc7b1fe911f2e77896f4528f272025447c2819b300400f6d14f9f7d38be9445ec5bb17eb0e2fc1705a9b5d1153009bd357a686b61fade401e45
|
7
|
+
data.tar.gz: e4f2a8ca14ddece21b20f3eee79903f639b596e263b8f1bd9daa792b9236afabbb87391542f5f98cd3a790752b65f8da719d4434f56c869ad4944668e88eafc0
|
data/CODE_OF_CONDUCT.md
CHANGED
data/Cargo.lock
CHANGED
@@ -68,9 +68,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
|
|
68
68
|
|
69
69
|
[[package]]
|
70
70
|
name = "cc"
|
71
|
-
version = "1.2.
|
71
|
+
version = "1.2.15"
|
72
72
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
73
|
-
checksum = "
|
73
|
+
checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af"
|
74
74
|
dependencies = [
|
75
75
|
"shlex",
|
76
76
|
]
|
@@ -107,6 +107,21 @@ dependencies = [
|
|
107
107
|
"libloading",
|
108
108
|
]
|
109
109
|
|
110
|
+
[[package]]
|
111
|
+
name = "crossbeam-channel"
|
112
|
+
version = "0.5.14"
|
113
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
114
|
+
checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471"
|
115
|
+
dependencies = [
|
116
|
+
"crossbeam-utils",
|
117
|
+
]
|
118
|
+
|
119
|
+
[[package]]
|
120
|
+
name = "crossbeam-utils"
|
121
|
+
version = "0.8.21"
|
122
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
123
|
+
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
|
124
|
+
|
110
125
|
[[package]]
|
111
126
|
name = "deranged"
|
112
127
|
version = "0.3.11"
|
@@ -139,9 +154,9 @@ dependencies = [
|
|
139
154
|
|
140
155
|
[[package]]
|
141
156
|
name = "either"
|
142
|
-
version = "1.
|
157
|
+
version = "1.15.0"
|
143
158
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
144
|
-
checksum = "
|
159
|
+
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
145
160
|
|
146
161
|
[[package]]
|
147
162
|
name = "getrandom"
|
@@ -186,9 +201,9 @@ dependencies = [
|
|
186
201
|
|
187
202
|
[[package]]
|
188
203
|
name = "itoa"
|
189
|
-
version = "1.0.
|
204
|
+
version = "1.0.14"
|
190
205
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
191
|
-
checksum = "
|
206
|
+
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
|
192
207
|
|
193
208
|
[[package]]
|
194
209
|
name = "itsi-scheduler"
|
@@ -216,7 +231,7 @@ dependencies = [
|
|
216
231
|
"magnus",
|
217
232
|
"nix",
|
218
233
|
"rcgen",
|
219
|
-
"thiserror",
|
234
|
+
"thiserror 2.0.12",
|
220
235
|
]
|
221
236
|
|
222
237
|
[[package]]
|
@@ -236,6 +251,7 @@ dependencies = [
|
|
236
251
|
"magnus",
|
237
252
|
"nix",
|
238
253
|
"rb-sys",
|
254
|
+
"serde",
|
239
255
|
]
|
240
256
|
|
241
257
|
[[package]]
|
@@ -244,6 +260,7 @@ version = "0.1.0"
|
|
244
260
|
dependencies = [
|
245
261
|
"atty",
|
246
262
|
"tracing",
|
263
|
+
"tracing-appender",
|
247
264
|
"tracing-attributes",
|
248
265
|
"tracing-subscriber",
|
249
266
|
]
|
@@ -507,9 +524,9 @@ dependencies = [
|
|
507
524
|
|
508
525
|
[[package]]
|
509
526
|
name = "redox_syscall"
|
510
|
-
version = "0.5.
|
527
|
+
version = "0.5.9"
|
511
528
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
512
|
-
checksum = "
|
529
|
+
checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f"
|
513
530
|
dependencies = [
|
514
531
|
"bitflags",
|
515
532
|
]
|
@@ -560,9 +577,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
|
560
577
|
|
561
578
|
[[package]]
|
562
579
|
name = "ring"
|
563
|
-
version = "0.17.
|
580
|
+
version = "0.17.14"
|
564
581
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
565
|
-
checksum = "
|
582
|
+
checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
|
566
583
|
dependencies = [
|
567
584
|
"cc",
|
568
585
|
"cfg-if",
|
@@ -586,9 +603,9 @@ checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c"
|
|
586
603
|
|
587
604
|
[[package]]
|
588
605
|
name = "ryu"
|
589
|
-
version = "1.0.
|
606
|
+
version = "1.0.19"
|
590
607
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
591
|
-
checksum = "
|
608
|
+
checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd"
|
592
609
|
|
593
610
|
[[package]]
|
594
611
|
name = "scopeguard"
|
@@ -604,18 +621,18 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
|
|
604
621
|
|
605
622
|
[[package]]
|
606
623
|
name = "serde"
|
607
|
-
version = "1.0.
|
624
|
+
version = "1.0.219"
|
608
625
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
609
|
-
checksum = "
|
626
|
+
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
|
610
627
|
dependencies = [
|
611
628
|
"serde_derive",
|
612
629
|
]
|
613
630
|
|
614
631
|
[[package]]
|
615
632
|
name = "serde_derive"
|
616
|
-
version = "1.0.
|
633
|
+
version = "1.0.219"
|
617
634
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
618
|
-
checksum = "
|
635
|
+
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
|
619
636
|
dependencies = [
|
620
637
|
"proc-macro2",
|
621
638
|
"quote",
|
@@ -685,18 +702,38 @@ dependencies = [
|
|
685
702
|
|
686
703
|
[[package]]
|
687
704
|
name = "thiserror"
|
688
|
-
version = "
|
705
|
+
version = "1.0.69"
|
706
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
707
|
+
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
708
|
+
dependencies = [
|
709
|
+
"thiserror-impl 1.0.69",
|
710
|
+
]
|
711
|
+
|
712
|
+
[[package]]
|
713
|
+
name = "thiserror"
|
714
|
+
version = "2.0.12"
|
715
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
716
|
+
checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
|
717
|
+
dependencies = [
|
718
|
+
"thiserror-impl 2.0.12",
|
719
|
+
]
|
720
|
+
|
721
|
+
[[package]]
|
722
|
+
name = "thiserror-impl"
|
723
|
+
version = "1.0.69"
|
689
724
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
690
|
-
checksum = "
|
725
|
+
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
|
691
726
|
dependencies = [
|
692
|
-
"
|
727
|
+
"proc-macro2",
|
728
|
+
"quote",
|
729
|
+
"syn 2.0.98",
|
693
730
|
]
|
694
731
|
|
695
732
|
[[package]]
|
696
733
|
name = "thiserror-impl"
|
697
|
-
version = "2.0.
|
734
|
+
version = "2.0.12"
|
698
735
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
699
|
-
checksum = "
|
736
|
+
checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
|
700
737
|
dependencies = [
|
701
738
|
"proc-macro2",
|
702
739
|
"quote",
|
@@ -720,10 +757,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
720
757
|
checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
|
721
758
|
dependencies = [
|
722
759
|
"deranged",
|
760
|
+
"itoa",
|
723
761
|
"num-conv",
|
724
762
|
"powerfmt",
|
725
763
|
"serde",
|
726
764
|
"time-core",
|
765
|
+
"time-macros",
|
727
766
|
]
|
728
767
|
|
729
768
|
[[package]]
|
@@ -732,6 +771,16 @@ version = "0.1.2"
|
|
732
771
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
733
772
|
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
734
773
|
|
774
|
+
[[package]]
|
775
|
+
name = "time-macros"
|
776
|
+
version = "0.2.19"
|
777
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
778
|
+
checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
|
779
|
+
dependencies = [
|
780
|
+
"num-conv",
|
781
|
+
"time-core",
|
782
|
+
]
|
783
|
+
|
735
784
|
[[package]]
|
736
785
|
name = "tracing"
|
737
786
|
version = "0.1.41"
|
@@ -743,6 +792,18 @@ dependencies = [
|
|
743
792
|
"tracing-core",
|
744
793
|
]
|
745
794
|
|
795
|
+
[[package]]
|
796
|
+
name = "tracing-appender"
|
797
|
+
version = "0.2.3"
|
798
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
799
|
+
checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
|
800
|
+
dependencies = [
|
801
|
+
"crossbeam-channel",
|
802
|
+
"thiserror 1.0.69",
|
803
|
+
"time",
|
804
|
+
"tracing-subscriber",
|
805
|
+
]
|
806
|
+
|
746
807
|
[[package]]
|
747
808
|
name = "tracing-attributes"
|
748
809
|
version = "0.1.28"
|
data/README.md
CHANGED
data/_index.md
ADDED
data/ext/itsi_error/src/from.rs
CHANGED
@@ -1,5 +1,12 @@
|
|
1
|
+
use magnus::{
|
2
|
+
Error,
|
3
|
+
error::ErrorType,
|
4
|
+
exception::{self, arg_error, exception},
|
5
|
+
};
|
6
|
+
use nix::errno::Errno;
|
7
|
+
|
1
8
|
use crate::ItsiError;
|
2
|
-
use std::ffi::NulError;
|
9
|
+
use std::{ffi::NulError, io};
|
3
10
|
|
4
11
|
pub static CLIENT_CONNECTION_CLOSED: &str = "Client disconnected";
|
5
12
|
|
@@ -9,14 +16,14 @@ impl From<httparse::Error> for ItsiError {
|
|
9
16
|
}
|
10
17
|
}
|
11
18
|
|
12
|
-
impl From<
|
13
|
-
fn from(err:
|
19
|
+
impl From<Errno> for ItsiError {
|
20
|
+
fn from(err: Errno) -> Self {
|
14
21
|
ItsiError::ArgumentError(err.to_string())
|
15
22
|
}
|
16
23
|
}
|
17
24
|
|
18
|
-
impl From<
|
19
|
-
fn from(err:
|
25
|
+
impl From<io::Error> for ItsiError {
|
26
|
+
fn from(err: io::Error) -> Self {
|
20
27
|
ItsiError::ArgumentError(err.to_string())
|
21
28
|
}
|
22
29
|
}
|
@@ -33,39 +40,29 @@ impl From<NulError> for ItsiError {
|
|
33
40
|
}
|
34
41
|
}
|
35
42
|
|
36
|
-
impl From<
|
37
|
-
fn from(err:
|
43
|
+
impl From<Error> for ItsiError {
|
44
|
+
fn from(err: Error) -> Self {
|
38
45
|
match err.error_type() {
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
}
|
43
|
-
magnus::error::ErrorType::Exception(exception) => {
|
44
|
-
ItsiError::ArgumentError(exception.to_string())
|
45
|
-
}
|
46
|
+
ErrorType::Jump(tag) => ItsiError::Jump(tag.to_string()),
|
47
|
+
ErrorType::Error(_exception_class, cow) => ItsiError::ArgumentError(cow.to_string()),
|
48
|
+
ErrorType::Exception(exception) => ItsiError::ArgumentError(exception.to_string()),
|
46
49
|
}
|
47
50
|
}
|
48
51
|
}
|
49
52
|
|
50
|
-
impl From<ItsiError> for
|
53
|
+
impl From<ItsiError> for Error {
|
51
54
|
fn from(err: ItsiError) -> Self {
|
52
55
|
match err {
|
53
|
-
ItsiError::InvalidInput(msg) =>
|
54
|
-
ItsiError::InternalServerError(msg) =>
|
55
|
-
|
56
|
-
|
57
|
-
ItsiError::
|
58
|
-
|
59
|
-
}
|
60
|
-
ItsiError::ArgumentError(msg) => {
|
61
|
-
magnus::Error::new(magnus::exception::arg_error(), msg)
|
62
|
-
}
|
63
|
-
ItsiError::Jump(msg) => magnus::Error::new(magnus::exception::local_jump_error(), msg),
|
64
|
-
ItsiError::Break() => magnus::Error::new(magnus::exception::interrupt(), "Break"),
|
56
|
+
ItsiError::InvalidInput(msg) => Error::new(arg_error(), msg),
|
57
|
+
ItsiError::InternalServerError(msg) => Error::new(exception(), msg),
|
58
|
+
ItsiError::UnsupportedProtocol(msg) => Error::new(arg_error(), msg),
|
59
|
+
ItsiError::ArgumentError(msg) => Error::new(arg_error(), msg),
|
60
|
+
ItsiError::Jump(msg) => Error::new(exception::local_jump_error(), msg),
|
61
|
+
ItsiError::Break() => Error::new(exception::interrupt(), "Break"),
|
65
62
|
ItsiError::ClientConnectionClosed => {
|
66
|
-
|
63
|
+
Error::new(exception::eof_error(), CLIENT_CONNECTION_CLOSED)
|
67
64
|
}
|
68
|
-
ItsiError::Pass() =>
|
65
|
+
ItsiError::Pass() => Error::new(exception::interrupt(), "Pass"),
|
69
66
|
}
|
70
67
|
}
|
71
68
|
}
|
data/ext/itsi_error/src/lib.rs
CHANGED
@@ -3,7 +3,7 @@ use thiserror::Error;
|
|
3
3
|
|
4
4
|
pub type Result<T> = std::result::Result<T, ItsiError>;
|
5
5
|
|
6
|
-
#[derive(Error, Debug)]
|
6
|
+
#[derive(Error, Debug, Clone)]
|
7
7
|
pub enum ItsiError {
|
8
8
|
#[error("Invalid input {0}")]
|
9
9
|
InvalidInput(String),
|
@@ -22,3 +22,12 @@ pub enum ItsiError {
|
|
22
22
|
#[error("Pass")]
|
23
23
|
Pass(),
|
24
24
|
}
|
25
|
+
|
26
|
+
impl ItsiError {
|
27
|
+
pub fn default(error: impl Send + Sync + 'static + std::fmt::Display) -> Self {
|
28
|
+
ItsiError::InvalidInput(format!("{}", error))
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
unsafe impl Send for ItsiError {}
|
33
|
+
unsafe impl Sync for ItsiError {}
|