Session persistence
This commit is contained in:
parent
e467787c38
commit
bec5e1be7f
7 changed files with 204 additions and 51 deletions
|
|
@ -13,7 +13,7 @@ readme = "README.md"
|
|||
|
||||
[features]
|
||||
default = ["sha1-system", "default-tls", "webui"]
|
||||
tokio-console = ["console-subscriber",]
|
||||
tokio-console = ["console-subscriber", "tokio/tracing"]
|
||||
webui = ["librqbit/webui"]
|
||||
timed_existence = ["librqbit/timed_existence"]
|
||||
sha1-system = ["librqbit/sha1-system"]
|
||||
|
|
@ -25,7 +25,7 @@ rust-tls = ["librqbit/rust-tls"]
|
|||
[dependencies]
|
||||
librqbit = {path="../librqbit", default-features=false, version = "3.3.0"}
|
||||
dht = {path="../dht", package="librqbit-dht", version="3.1.0"}
|
||||
tokio = {version = "1", features = ["macros", "rt-multi-thread", "tracing"]}
|
||||
tokio = {version = "1", features = ["macros", "rt-multi-thread"]}
|
||||
console-subscriber = {version = "0.2", optional = true}
|
||||
anyhow = "1"
|
||||
clap = {version = "4", features = ["derive", "deprecated"]}
|
||||
|
|
|
|||
|
|
@ -279,6 +279,7 @@ async fn async_main(opts: Opts, spawner: BlockingSpawner) -> anyhow::Result<()>
|
|||
disable_dht: opts.disable_dht,
|
||||
disable_dht_persistence: opts.disable_dht_persistence,
|
||||
dht_config: None,
|
||||
persistence: true,
|
||||
peer_id: None,
|
||||
peer_opts: Some(PeerConnectionOptions {
|
||||
connect_timeout: Some(opts.peer_connect_timeout),
|
||||
|
|
@ -342,15 +343,13 @@ async fn async_main(opts: Opts, spawner: BlockingSpawner) -> anyhow::Result<()>
|
|||
match &opts.subcommand {
|
||||
SubCommand::Server(server_opts) => match &server_opts.subcommand {
|
||||
ServerSubcommand::Start(start_opts) => {
|
||||
let session = Arc::new(
|
||||
Session::new_with_opts(
|
||||
PathBuf::from(&start_opts.output_folder),
|
||||
spawner,
|
||||
sopts,
|
||||
)
|
||||
.await
|
||||
.context("error initializing rqbit session")?,
|
||||
);
|
||||
let session = Session::new_with_opts(
|
||||
PathBuf::from(&start_opts.output_folder),
|
||||
spawner,
|
||||
sopts,
|
||||
)
|
||||
.await
|
||||
.context("error initializing rqbit session")?;
|
||||
spawn(
|
||||
"stats_printer",
|
||||
trace_span!("stats_printer"),
|
||||
|
|
@ -416,21 +415,19 @@ async fn async_main(opts: Opts, spawner: BlockingSpawner) -> anyhow::Result<()>
|
|||
}
|
||||
Ok(())
|
||||
} else {
|
||||
let session = Arc::new(
|
||||
Session::new_with_opts(
|
||||
download_opts
|
||||
.output_folder
|
||||
.as_ref()
|
||||
.map(PathBuf::from)
|
||||
.context(
|
||||
"output_folder is required if can't connect to an existing server",
|
||||
)?,
|
||||
spawner,
|
||||
sopts,
|
||||
)
|
||||
.await
|
||||
.context("error initializing rqbit session")?,
|
||||
);
|
||||
let session = Session::new_with_opts(
|
||||
download_opts
|
||||
.output_folder
|
||||
.as_ref()
|
||||
.map(PathBuf::from)
|
||||
.context(
|
||||
"output_folder is required if can't connect to an existing server",
|
||||
)?,
|
||||
spawner,
|
||||
sopts,
|
||||
)
|
||||
.await
|
||||
.context("error initializing rqbit session")?;
|
||||
spawn(
|
||||
"stats_printer",
|
||||
trace_span!("stats_printer"),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue