Files
soulseek-rs-modded/soulseek-rs-lib/Cargo.toml
T
Michel de Graaf 0bbb559f68 fix: survive busy sessions without exhausting file descriptors
The peer listener died with "Too many open files (os error 24)" on any
long-lived non-daemon session: only the daemon raised RLIMIT_NOFILE, and
peer sockets were unbounded — no idle reaping, no deadlines on accepted
transfer streams, and one peer could hold two connections under split
registry identities.

- raise the open-file limit at the top of run(), for every entry point,
  and warn from Client::connect when the soft limit is below 1024
- reap peer control connections idle for five minutes; a clean
  disconnect no longer discards the peer's queued uploads
- give listener-supplied download streams and upload serving the same
  read/write deadlines dialled sockets already had
- register inbound peers under their plain username so the registry
  holds one connection per peer, and announce them like pierced ones
- hold the registry lock across actor spawn + insert and surface
  thread-spawn failure, so an instantly-dead peer cannot leave a
  zombie entry
2026-08-09 22:34:36 +02:00

24 lines
496 B
TOML

[package]
name = "soulseek-rs-lib"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Library for Soulseek protocol implementation in Rust"
keywords = ["soulseek", "p2p", "protocol", "file-sharing"]
categories = ["network-programming"]
[lib]
name = "soulseek_rs"
path = "src/lib.rs"
[lints]
workspace = true
[dependencies]
[target.'cfg(unix)'.dependencies]
libc = "0.2.189"