Commit Graph

200 Commits

Author SHA1 Message Date
Marcel Märtens
b2998676cb in order to update quinn / rusttls, move config to workspace Cargo.toml 2024-05-20 16:43:45 +02:00
Marcel Märtens
e48fc4c2b2 additional cargo clippy for toolchain switch 2024-05-18 22:44:59 +02:00
Marcel Märtens
941b204681 update some dependencies manually 2024-03-20 09:36:58 +01:00
Marcel Märtens
fc076a39fb remove unmaintained fehler crate by updating lz-fear and zwitch to culpa 2024-02-10 11:30:36 +01:00
Christof Petig
f56e1d84b5 Use wasmtime to execute wasm components as veloren plugins 2024-02-10 09:35:04 +00:00
Marcel Märtens
b0bef3ebbf update few dependencies 2024-02-06 19:11:10 +01:00
Marcel Märtens
cb25a409d5 more clippy fixes in all binaries 2023-10-06 09:12:31 +02:00
Marcel Märtens
882a8d104c Revert "extended clippy from quality.sh"
This reverts commit 30ebb7f2edcf299e4886aa7de6573ef54353a8dd.
2023-10-05 22:00:49 +02:00
Marcel Märtens
df03c92741 extended clippy from quality.sh 2023-10-05 22:00:49 +02:00
Marcel Märtens
540f0d10f2 cargo clippy after toolchain-update 2023-10-05 22:00:49 +02:00
Marcel Märtens
394c8892bb update toolchain to nightly-2023-09-28 2023-10-05 22:00:48 +02:00
Imbris
cd98dd5245 Remove unused deps flagged by cargo-machete 2023-09-21 22:59:50 -04:00
Marcel Märtens
b4216ec634 get rid of old criterion 2023-08-27 19:17:04 +02:00
Marcel Märtens
96bf6309d2 small updates to dependencies 2023-08-27 19:17:04 +02:00
Laura
b03d0dcc7b Upgrade rustls and quinn
According to RUSTSEC-2023-0052 we need to upgrade rustls to 0.21
to get a fix for the issue which may or may not affect Veloren
since it's about client certificates but with the absence of a
PoC it seems like a good idea to upgrade anyway, just to be sure.

webpki has gone unmaintained (which rustls 0.20 depends on),
starting with rustls 0.21 it depends on rustls-webpki which
contains a fix for the issue. Since quinn also depends on
rustls 0.20 in 0.8 and 0.9 versions, we needed to upgrade it to
0.10 so that it depends on rustls 0.21 which we now use.
2023-08-23 06:35:36 +02:00
Marcel Märtens
2101d8264c xVAR did some research here: https://discord.com/channels/449602562165833758/450065987006496768/979121835801202688
and because of that we decided to set the recv buffer to 512kB via linux kernel parameters.
We didn't had any problems on the official server so we wanted to bake that into code.
There is a calculator https://www.switch.ch/network/tools/tcp_throughput/?mss=1460&rtt=80&loss=1e-06&bw=10&rtt2=500&win=1024&Calculate=Calculate
that said for 10Mbits/ speed 16kB recv buffer and 500ms we only can expect effective 0.24 Mbits of actuall data speed.
Nothing mentioned increasing the send buffer, but it prob cant hurt from a server side or ?

 cat /proc/sys/net/core/wmem_default showed 212992
 cat /proc/sys/net/core/rmem_default showed 212992
 sysctl -w net.ipv4.tcp_wmem="4096 524288 4194304" was beeing used
 sysctl -w net.ipv4.tcp_wmem="4096 16384 4194304" was the default
2023-07-04 23:48:59 +02:00
Marcel Märtens
53151a67bf remove the complete ip address from the logs in case they are gonna made public.
First we though about hashing it together with the username, but we dont have the username. hope that removing 50% of the information is enough to identify 2 addresses as equal or different without knowing the exact address
2023-05-27 14:30:40 +02:00
Marcel Märtens
3a19669d53 use workspace dependencies to make our life easier maintaining them :) 2023-05-10 18:16:25 +02:00
Imbris
af0d0f3ea4 Second attempt (success) 2023-05-06 00:30:54 -04:00
Marcel Märtens
4be1e82ba9 update further dependencies 2023-05-04 23:42:05 +02:00
Marcel Märtens
054f4f9453 update veloren deps 2023-05-04 11:58:43 +02:00
Sam
e819cd2309 Updated hashbrown, removed some to_owned calls in handling recently unequipped items 2023-04-19 18:43:40 -04:00
Marcel Märtens
0ab7a2543e fix clippy errors 2022-11-28 14:08:11 +01:00
Joshua Yanovski
2c15d0af56 Reduce overhead of messaging systems. 2022-09-14 21:04:53 -07:00
Joshua Yanovski
986d104faa Update Rust toolchain. 2022-09-08 15:43:53 -07:00
tygyh
120ee6b6c0 Fix typos 2022-07-15 18:59:37 +02:00
tygyh
5e5698249b Remove unnecessarily qualified paths 2022-07-15 14:49:46 +02:00
Marcel Märtens
50d85940d8 implement a event channel that posts regular information on events for Participants 2022-07-03 21:21:59 +02:00
Marcel Märtens
c2b043e524 add a comment about QUIC like Isse proposed 2022-07-03 20:51:49 +02:00
Marcel Märtens
b5d0ee22e4 deactivate some features again and only keep the internal code for now to reuse it in automatic reconnect code 2022-06-30 22:14:24 +02:00
Marcel Märtens
f3e4f022cb rather than letting the api/Participant handling the cleanup, we had to move over to the bParticipant::shutdownmanager.
Because the old case didn't account for the Scheduler got dropped but Participant keept around.
Shutdown behavior is quite easy now: bParticipant sends a oneshot, when that hits we stop. also when Participant gets droped we still stop as there woul dbe no sense in continue running the report_mgr ...
2022-06-30 22:14:24 +02:00
Marcel Märtens
5b63035506 Add a new/unstable functionality report_channel.
This will ask the bparticipant for a list of all channels and their respective connection arguments.
With that one could prob reach the remote side.
The data is gathered by scheduler (or channel for the listener code).
It requeres some read logs so we shouldn't abuse that function call.

in bparticipant we have a new manager that also properly shuts down as the Participant holds the sender to the respective receiver.
The sender is always dropped. inside the Mutex via disconnect and outside via Drop (we need 2 Options as otherwise we would create a runtime inside async context implicitly o.O )
(also i didn't liked the alternative by just overwriting the sender with a fake one, i want a propper Option that can be taken)

The code might also come handy in the future when we implement a auto-reconnect feature in the bparticipant.
2022-06-30 22:14:24 +02:00
Marcel Märtens
3da053c8b4 switch from read to read_buf in tcp sink. also always reserve 4 times 1500 as soon as we are under 1500 bytes in order to have less allocations when sending many small msg.
Note: maybe upgrading tokio helps against the connection issues, there is some mio related stuff: https://github.com/tokio-rs/tokio/releases/tag/tokio-1.18.0
Note: quick also still has the old read, but its more complicated, thus i only want to change it if its tested
2022-06-21 21:24:09 +02:00
Marcel Märtens
754bf32580 add a check to break the sending loop if the current bytes got greater than the total bytes.
We calculate a max bandwidth, but due to framing the packages, i think its possible for the current_bytes to get a few bytes over the actuall planed bandwidth. which prob isn't that bad/unfair
2022-06-08 09:45:25 +02:00
Marcel Märtens
e194a2e334 export unterlying errors via network crate, to generate more detailed logs 2022-05-23 02:00:56 +02:00
Isse
06f0239130 Avoid clone in Stream::send 2022-05-09 14:48:13 +00:00
Marcel Märtens
affdf3131f update a bunch of dependencies, including clap3 2022-04-04 11:43:29 +02:00
Marcel Märtens
a0a0e36246 update network dependencies 2022-04-02 15:44:07 +02:00
Marcel Märtens
97a58f0e14 clean up socket2 networkwork code to do more on the socket2 before convertig it. 2022-02-05 13:08:46 +01:00
Marcel Märtens
2528afafdd deactivate tests in CI, as they have often no IPv6 configured and would fail in that case 2022-02-05 13:04:16 +01:00
Marcel Märtens
dcfde616d0 In case of IPv6 and NON Windows make sure to not listen on dualstack,
for that we need to create a socket2 socket and set_only_v6 to true.
We need to privude set_nonblocking for tokio to work and we need to set reuseaddr for it to work on linux systems
2022-02-05 13:04:16 +01:00
Marcel Märtens
e9bee485ae Add a test for the new gameserver IPv6 IPv4 behavior 2022-02-05 13:04:16 +01:00
Avi Weinstock
5f8957d8ef Globally allow the clippy lints {new_without_default, many_single_char_names, identity_op, type_complexity, too_many_arguments}. 2022-01-30 20:16:20 +01:00
infrandomness
1a1acfae2c
Fix RUSTSEC-2022-0006 2022-01-26 22:08:38 +01:00
juliancoffee
fba89517de Move Veloren to 2021 edition 2022-01-26 16:46:40 +02:00
Jonathan Berglin
596307c9b7 Remove unused clippy suppressions 2021-12-05 17:59:02 +00:00
João Capucho
8b89903d57
Bump tracing-subscriber to 0.3.2
We were pulling two versions of it. Causing some compilation errors
2021-11-26 17:41:51 +00:00
Marcel Märtens
aa93b4b53c update other binaries 2021-11-20 20:19:48 +01:00
Marcel Märtens
e29ede7c97 updating dependencies,
cannot update the following dependencies:
 - vek: Sharps SIMD isnt upstream
 - tracing-subscriber: MakeWriter was adjusted and i was to lazy to fiddle with lifetimes,
 - refinery, rustsql: we have a custom refinery version which is incompatible with newer rustsql
 - equi + egui_winit + egui_wgpu_backend: i tried it in this commit but it turned out that they dependo n wgpu which we cant update
 - wgpu: cant update due new version doesnt support DX11

Got quinn updated which now require some dependencies to be explicit.
2021-11-20 20:17:49 +01:00
Marcel Märtens
258da1bedf those sleeps cannot be easily included in the code, as they simulate 2 participants on 2 different computers.
Increase the timeouts from 1000 -> 3000 ms if there are some internal messages send (e.g. network_a closed, send on stream_a)
Increase the timeouts from 1000 -> 5000 ms if there is actuall networking involed (e.g. stream_a send, stream_b recv)
2021-11-19 09:36:39 +01:00