This commit is contained in:
Igor Katson 2023-11-25 17:13:17 +00:00
parent d8fdb94305
commit e3a3f71064
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5
2 changed files with 11 additions and 2 deletions

View file

@ -363,6 +363,9 @@ impl Session {
opts: Option<AddTorrentOptions>, opts: Option<AddTorrentOptions>,
) -> anyhow::Result<AddTorrentResponse> { ) -> anyhow::Result<AddTorrentResponse> {
// Magnet links are different in that we first need to discover the metadata. // Magnet links are different in that we first need to discover the metadata.
let span = error_span!("add_torrent");
let _ = span.enter();
let opts = opts.unwrap_or_default(); let opts = opts.unwrap_or_default();
let (info_hash, info, dht_rx, trackers, initial_peers) = match add.into() { let (info_hash, info, dht_rx, trackers, initial_peers) = match add.into() {
@ -389,6 +392,7 @@ impl Session {
}) })
.collect(); .collect();
debug!("querying DHT for {:?}", info_hash);
let (info, dht_rx, initial_peers) = match read_metainfo_from_peer_receiver( let (info, dht_rx, initial_peers) = match read_metainfo_from_peer_receiver(
self.peer_id, self.peer_id,
info_hash, info_hash,
@ -402,6 +406,7 @@ impl Session {
anyhow::bail!("DHT died, no way to discover torrent metainfo") anyhow::bail!("DHT died, no way to discover torrent metainfo")
} }
}; };
debug!("received result from DHT: {:?}", info);
(info_hash, info, Some(dht_rx), trackers, initial_peers) (info_hash, info, Some(dht_rx), trackers, initial_peers)
} }
other => { other => {
@ -558,7 +563,8 @@ impl Session {
return Ok(AddTorrentResponse::AlreadyManaged(*id, handle.clone())); return Ok(AddTorrentResponse::AlreadyManaged(*id, handle.clone()));
} }
let next_id = g.torrents.len(); let next_id = g.torrents.len();
let managed_torrent = builder.build(error_span!("torrent", id = next_id))?; let managed_torrent =
builder.build(error_span!(parent: None, "torrent", id = next_id))?;
let id = g.add_torrent(managed_torrent.clone()); let id = g.add_torrent(managed_torrent.clone());
(managed_torrent, id) (managed_torrent, id)
}; };

View file

@ -58,7 +58,10 @@ impl TorrentStateInitializing {
.create(true) .create(true)
.read(true) .read(true)
.write(true) .write(true)
.open(&full_path)? .open(&full_path)
.with_context(|| {
format!("error opening {full_path:?} in read/write mode")
})?
} else { } else {
// TODO: create_new does not seem to work with read(true), so calling this twice. // TODO: create_new does not seem to work with read(true), so calling this twice.
OpenOptions::new() OpenOptions::new()