Jason Volk
f32380772f
rename api::client_server to api::client
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-06-06 18:21:40 +00:00
strawberry
b781771a9b
media: drop Content-Type detection support
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-06-05 16:33:53 -04:00
strawberry
df8ba04e31
media: trust client Content-Type again
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-06-05 16:33:53 -04:00
strawberry
a41a60ef07
media: dont ignore requested filename on /download for Content-Disposition
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-27 18:16:23 -04:00
Jason Volk
6c1434c165
Hot-Reloading Refactor
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-05-21 20:22:17 -04:00
strawberry
434b5118cc
media: return our detected MIME type for Content-Type
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-12 15:54:22 -04:00
strawberry
154b2ab490
media: additional sanitisation on the Content-Disposition
filename
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-09 09:53:04 -04:00
strawberry
2231ccf118
return inline
Content-Disposition based on the detected file type (e.g. image/video)
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-09 09:53:04 -04:00
strawberry
d4d9f92ade
add security response HTTP headers if not present
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-09 09:53:04 -04:00
strawberry
bfb827a418
send Cache-Control and CORS header for remote thumbnail responses
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-05 16:28:21 -04:00
strawberry
e2fb588a8c
sent attachment content-disposition on thumbnails too
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-05 16:28:21 -04:00
strawberry
43c4dfc5df
set content-disposition to attachment instead of inline
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-05 16:28:21 -04:00
strawberry
ed86a4aa9e
slight misc adjustments
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-03 01:52:29 -04:00
strawberry
76c5942b4f
use user_is_local and server_is_ours more, remove few double filters
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-05-03 01:52:29 -04:00
Jason Volk
a124122dd4
daily logging improvements
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-26 02:03:40 -04:00
Jason Volk
b01d25277d
fix remote media error propagation
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-26 02:03:40 -04:00
Jason Volk
b3984f5337
deduplicate cache control into constant
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-26 02:03:40 -04:00
Jason Volk
7e5ed199c9
deduplicate media handler bodies; minor reorg
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-26 02:03:40 -04:00
strawberry
66bb88a03a
make everything pub(crate) instead of pub
...
conduwuit is not a library
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-26 02:03:40 -04:00
strawberry
acbe3bfbda
use global valid_cidr_range
everywhere else
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-26 02:03:40 -04:00
strawberry
d1c139de26
add config option for url_preview_domain_explicit_denylist
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-14 22:35:23 -04:00
strawberry
9be072181c
remove unneeded url preview function
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-09 15:26:45 -04:00
strawberry
c82c548cbf
bump ruma and cargo.lock
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-09 15:26:45 -04:00
Jason Volk
cde06125b8
immutable cache-control for media
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-04-05 22:15:16 -04:00
strawberry
ddcf43f1b8
replace ErrorKind::Forbidden
with forbidden()
non-exhaustive constructor
...
917584e0ca
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-04-05 22:15:16 -04:00
strawberry
48d1a3af3c
resolve the last few relevant pedantic clippy lints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-30 22:06:18 -04:00
strawberry
868976a149
use chain_width 60
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-26 22:24:24 -04:00
strawberry
3f9825788e
check URL preview requests against ip_range_denylist
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-26 22:24:24 -04:00
strawberry
7bd56765ef
fix some more pedantic clippy lints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-26 22:24:24 -04:00
Jason Volk
9334f938ae
refactor reqwest client suite w/ conf items.
...
Signed-off-by: Jason Volk <jason@zemos.net>
2024-03-23 01:49:27 -04:00
strawberry
b079b94715
track media uploads by user
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-19 00:17:41 -04:00
strawberry
8d8467a4ea
add legacy v1 routes for the remaining media endpoints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-16 00:09:48 -04:00
strawberry
1a40171bc1
log warning for failed preview gen, better error message
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-08 18:09:41 -05:00
strawberry
1911f5a8fa
fix cargo doc lint
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-08 12:51:21 -05:00
strawberry
c58f93105a
implement legacy "v1" media request routes
...
if https://github.com/ruma/ruma/issues/1240 is to
be trusted, there are apparently still servers
and clients that may call these endpoints.
i'm unable to read the history of that matrix.to
link so i don't know the full context, but this
is trivial to implement so..
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-08 12:51:21 -05:00
Matthias Ahouansou
4ec2d3ecb5
refactor: use async-aware RwLocks and Mutexes where possible
...
squashed from https://gitlab.com/famedly/conduit/-/merge_requests/595
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-08 12:51:21 -05:00
strawberry
f419c64aca
add rustfmt.toml, format entire codebase
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-08 12:51:21 -05:00
strawberry
e2c7afe69c
go through a ton of pedantic clippy lints
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-03-03 22:20:37 -05:00
strawberry
244c1f7190
config option to check root domain with URL previews
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-02-11 21:56:55 -05:00
strawberry
48e4b71dd1
remove hardcoded 300kb limit on spider size with config option of 1MB default
...
modern websites are sadly massive, 300kb is pretty low. 1MB should be enough.
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-02-11 21:56:55 -05:00
strawberry
2ea895199a
dont drop true error with url str parse, fix url contains logic order, clarify config comment
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-02-11 21:56:55 -05:00
strawberry
8e6d52e7dd
dont follow more than 2 redirects for URL previews for security reasons
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-02-11 21:56:55 -05:00
Reiner Herrmann
c0dd5b1cc2
feat: URL preview support
...
from upstream MR https://gitlab.com/famedly/conduit/-/merge_requests/347
with the following changes (so far):
- remove hardcoded list of allowed hosts (strongly disagree with this,
even if it is desired, it should not be harcoded)
- add more allow config options for granularity via URL contains,
host contains, and domain is (explicit match) for security
- warn if a user is allowing all URLs to be previewed for security reasons
- replace an expect with proper error handling
- bump webpage to 2.0
- improved code style a tad
Co-authored-by: rooot <hey@rooot.gay>
Signed-off-by: rooot <hey@rooot.gay>
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-02-11 21:56:55 -05:00
strawberry
6c75087863
eat less of client parameters for media requests
...
still cantt respect allow_redirect yet
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-01-25 19:28:33 -05:00
strawberry
f275a0dfbe
fix obvious copy-paste error
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-01-25 19:28:33 -05:00
strawberry
6ffc54e241
support blocking servers from fetching remote media from
...
akin to synapse's `prevent_media_downloads_from`
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-01-17 23:57:45 -05:00
strawberry
3ffca25f6f
update few endpoint docs versions
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-01-17 23:57:45 -05:00
strawberry
92641d0628
first of many small code documentation
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-01-17 14:26:26 -05:00
strawberry
59c7f93656
fix more clippy lints (part 1)
...
Signed-off-by: strawberry <strawberry@puppygock.gay>
2024-01-17 14:26:26 -05:00
strawberry
87d6a17f0a
fix all the warnings!!!! (0 clippy and rustc warnings now)
...
too many changes to list, codebase significantly better than it was a few weeks ago though
Signed-off-by: strawberry <june@girlboss.ceo>
2023-11-29 21:36:02 -05:00