SleeplessOne1917
1ef375e5c3
Replace 3rd party once_cell crate with recently stabilized standard library API ( #4919 )
...
* Replace 3rd party once_cell crate with recently stabilized standard library API
* Bump CI rust version
2024-07-30 10:11:39 -04:00
SleeplessOne1917
db390a2f3a
Make eligible enums convertable to static strs ( #4915 )
...
* Make eligible enums convertable to static strs
* Run cargo fmt
* Remove unnecessary derives
2024-07-23 11:05:19 -04:00
c96017c009
Configure max comment width in clippy ( #4738 )
...
* Configure max comment width in clippy
* update default config
2024-05-23 08:46:26 -04:00
Dessalines
95069d7648
Fixing some clippy and woodpecker lints. ( #4565 )
...
* Fixing some clippy and woodpecker lints.
* Try fixing woodpecker 1.
* Revert "Try fixing woodpecker 1."
This reverts commit 7c2020a08d7b72b179b23cf7c56c1d9fcdcb2a6e.
2024-03-26 10:17:42 +01:00
Sander Saarend
99d01e186a
Fix rate limiter ( #4560 )
2024-03-25 07:56:03 -04:00
battmdpkq
f228f9d7a9
fix some typos ( #4519 )
...
Signed-off-by: battmdpkq <cmaker@163.com>
2024-03-08 10:38:20 +01:00
SleeplessOne1917
f42420809b
Expose LemmyErrorType in lemmy_api_common ( #4439 )
...
* Expose LemmyErrorType in lemmy_api_common
* Make conditional compilation gates for utils
* Make it so api_common doesn't pull in unnecessary deps
* Make error type non exhaustive
* Fix formatting
* Format toml
* Add some convenience derives to LemmyError
* Simplify features
* Fix CI compile error
---------
Co-authored-by: SleeplessOne1917 <insomnia-void@protonmail.com>
2024-02-24 19:54:27 -05:00
ALEX11BR
a5289dd4cf
Use pretty_assertions
for assertions ( #4347 )
...
* Use `pretty_assertions` for assertions
* fixed ordering of `use`s
* ci
---------
Co-authored-by: Felix Ableitner <me@nutomic.com>
2024-01-04 04:47:18 -05:00
dullbananas
a14657d124
Refactor rate limiter and improve rate limit bucket cleanup ( #3937 )
...
* Update rate_limiter.rs
* Update mod.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update mod.rs
* Update scheduled_tasks.rs
* Shrink `RateLimitBucket`
* Update rate_limiter.rs
* Update mod.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update mod.rs
* Update rate_limiter.rs
* fmt
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* Update rate_limiter.rs
* rerun ci
* Update rate_limiter.rs
* Undo changes to fields
* Manually undo changes to RateLimitBucket fields
* fmt
* Bucket cleanup loop in rate_limit/mod.rs
* Remove rate limit bucket cleanup from scheduled_tasks.rs
* Remove ;
* Remove UNINITIALIZED_TOKEN_AMOUNT
* Update rate_limiter.rs
* fmt
* Update rate_limiter.rs
* fmt
* Update rate_limiter.rs
* fmt
* Update rate_limiter.rs
* stuff
* MapLevel trait
* fix merge
* Prevent negative numbers in buckets
* Clean up MapLevel::check
* MapLevel::remove_full_buckets
* stuff
* Use remove_full_buckets to avoid allocations
* stuff
* remove tx
* Remove RateLimitConfig
* Rename settings_updated_channel to rate_limit_cell
* Remove global rate limit cell
* impl Default for RateLimitCell
* bucket_configs doc comment to explain EnumMap
* improve test_rate_limiter
* rename default to with_test_config
---------
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
Co-authored-by: Nutomic <me@nutomic.com>
2023-10-19 15:31:51 +02:00
6d7b38f4de
Implement user data import/export ( #3976 )
...
* Implement endpoints for user data import/export
* add test
* exclude avatar/banner
* increase import url count, add rate limit
* also export/import saved posts
* rate limit
* rename
* saved posts also exist
* rename routes
* fix test
* error handling
* clippy
* limit parallelism
* clippy
---------
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
2023-10-11 16:47:22 +02:00
cetra3
9256895635
Cache & Optimize Woodpecker CI ( #3450 )
...
* Try using drone cache plugin
* Try another path
* Include volume
* Fix formatting
* Include fmt
* Exclude cargo dir from prettier
* Don't override cargo
* Just do check
* Add cache key
* Use different cache plugin
* Add clippy
* Try minio
* Add quotes
* Try adding secrets
* Try again
* Again
* Use correct secret formation
* Add back clippy
* Use secret for the root bucket name
* Try drone cache instead
* Add region
* Add path-style option
* Include cargo clippy
* Include everything again
* Fix formatting
* Don't run clippy twice
* Add `allow` statements for tests to pass
* Adjust endpoint to be a secret
* Fix prettier
* Merge & fix tests
* Try to restart the woodpecker test
* Change the ENV var name
---------
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
2023-07-17 11:04:14 -04:00
dullbananas
73492af4b0
Shrink capacity in RateLimitStorage::remove_older_than
( #3536 )
...
* Shrink capacity in `RateLimitStorage::remove_older_than`
* Update rate_limiter.rs
* rerun ci
* rerun ci
* rerun ci
* Update rate_limiter.rs
2023-07-10 22:52:37 +02:00
fc60b82f82
Fix formatting for latest nightly (#ref 3467)
2023-07-03 11:45:53 +02:00
dullbananas
45818fb4c5
Reduce memory usage of rate limiting ( #3111 )
...
* Reduce Vec allocations
* Optimize stuff
* Move embedded migrations to separate crate
* Revert "Move embedded migrations to separate crate"
This reverts commit 44b104997016ee2a1f2c0bb735b75e654666860d.
* clippy, fmt
* Shrink rate limit allowance to f32
* Initialize rate limit allowance directly
* Add removal of old rate limit buckets
* Improve readability
* Remove usage of is_okay_and for Rust 1.67 compatibility
* Add dhat-heap feature
* Fix api_benchmark.sh and add run_and_benchmark.sh
* Revert "Fix api_benchmark.sh and add run_and_benchmark.sh"
This reverts commit b4528e5b85dd3f13cea43d72ada9382200c8fc77.
* Revert "Add dhat-heap feature"
This reverts commit 08e835d487b983c44ce2570d8c396d570d426916.
* Manually revert remaining stuff
* Use Ipv6Addr in RateLimitStorage
* Shrink last_checked in RateLimitBucket to 32 bits
* Fix rate_limit::get_ip
* Stuff (#1 )
* Update rate_limiter.rs
* Update mod.rs
* Update scheduled_tasks.rs
* Fix rate_limiter.rs
* Dullbananas patch 1 (#2 )
* Update rate_limiter.rs
* Update mod.rs
* Update scheduled_tasks.rs
* Fix rate_limiter.rs
* Rate limit IPv6 addresses in groups
* Fmt lib.rs
* woodpicker trigger
* Refactor and comment `check_rate_limit_full`
* Add `test_split_ipv6`
* Replace -2.0 with UNINITIALIZED_TOKEN_AMOUNT
* Add `test_rate_limiter`
---------
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
2023-06-21 10:28:20 +02:00
6f3bf4634b
Various pedantic clippy fixes ( #2568 )
...
* Various pedantic clippy fixes
* more clippy pedantic fixes
* try to fix ci
* add fix clippy script, use rust 1.65
* fix clippy
2022-11-19 04:33:54 +00:00
24756af84b
Live reload settings ( fixes #2508 ) ( #2543 )
...
* Live reload rate limit settings (fixes #2508 )
* fix tests
2022-11-16 14:06:22 -05:00
Dessalines
e16821116e
Lowering search rate limit. Fixes #2153 ( #2154 )
...
* Lowering search rate limit. Fixes #2153
* Adding a search rate limit.
* Forgot to add the websocket search rate limit
* Fix wrong op
2022-03-29 15:46:03 +00:00
a5ff629b24
Dont log errors when rate limit is hit ( fixes #2157 ) ( #2161 )
...
* Dont log errors when rate limit is hit (fixes #2157 )
* Clone service rather than http request
* some cleanup/refactoring
Co-authored-by: Aode (Lion) <asonix@asonix.dog>
2022-03-25 16:41:38 +01:00
2da0684e95
Removing check_only
2022-03-24 16:29:08 -04:00
4e6d901649
Show rate limit algorithm. Fixes #2136
2022-03-22 18:45:14 +00:00
166ec196b0
Rework error handling ( fixes #1714 ) ( #2135 )
2022-03-16 20:11:49 +00:00
35cbae61bc
Don't drop error context when adding a message to errors ( #1958 )
...
* Respond directly with LemmyError
Instrument Perform implementations for more precise traces
Use ApiError to format JSON errors when messages are present
Keep SpanTrace output in LemmyError Display impl
* Hide SpanTrace debug output from LemmyError
* Don't log when entering spans, only when leaving
* Update actix-web
* Update actix-rt
* Add newline after error info in LemmyError Display impl
* Propogate span information to blocking operations
* Instrument apub functions
* Use skip_all for more instrument attributes, don't skip 'self' in some api actions
* Make message a static string
* Send proper JSON over websocket
* Add 'message' to LemmyError display if present
* Use a quieter root span builder, don't pretty-print logs
* Keep passwords and emails out of logs
* Re-enable logging Login
* Instrument feeds
* Emit our own errors
* Move error log after status code recording
* Make Sensitive generic over the inner type
* Remove line that logged secrets
2021-12-06 09:54:47 -05:00
3fea5645f8
Add tracing ( #1942 )
2021-11-23 12:16:47 +00:00
layla
7fe7062c47
Implement rate limits on comments
2021-11-18 13:40:16 +00:00
e84e1193fc
Dont pass accept-encoding header to pictrs (ref #1734 ) ( #1738 )
...
* Allow image upload in docker/dev/ (replaces #1765 )
* Dont pass accept-encoding header to pictrs (ref #1734 )
* Fix clippy errors
2021-09-17 11:44:20 -04:00
c3efb9f7cf
Strictly typing DB id fields. Fixes #1498
2021-03-18 16:25:21 -04:00
8096765f0e
Fix clippy error upper_case_acronyms
2021-02-22 19:04:32 +01:00
3b64c58198
Move most code into crates/ subfolder
2021-01-20 16:21:27 +01:00