mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
Add more mercury debug
This commit is contained in:
parent
28232b5a52
commit
ba51b8f236
2 changed files with 27 additions and 14 deletions
|
@ -101,9 +101,10 @@ impl MercuryManager {
|
||||||
pub fn subscribe<T: Into<String>>(&self, uri: T)
|
pub fn subscribe<T: Into<String>>(&self, uri: T)
|
||||||
-> BoxFuture<mpsc::UnboundedReceiver<MercuryResponse>, MercuryError>
|
-> BoxFuture<mpsc::UnboundedReceiver<MercuryResponse>, MercuryError>
|
||||||
{
|
{
|
||||||
|
let uri = uri.into();
|
||||||
let request = self.request(MercuryRequest {
|
let request = self.request(MercuryRequest {
|
||||||
method: MercuryMethod::SUB,
|
method: MercuryMethod::SUB,
|
||||||
uri: uri.into(),
|
uri: uri.clone(),
|
||||||
content_type: None,
|
content_type: None,
|
||||||
payload: Vec::new(),
|
payload: Vec::new(),
|
||||||
});
|
});
|
||||||
|
@ -116,8 +117,11 @@ impl MercuryManager {
|
||||||
for sub in response.payload {
|
for sub in response.payload {
|
||||||
let mut sub : protocol::pubsub::Subscription
|
let mut sub : protocol::pubsub::Subscription
|
||||||
= protobuf::parse_from_bytes(&sub).unwrap();
|
= protobuf::parse_from_bytes(&sub).unwrap();
|
||||||
let uri = sub.take_uri();
|
let sub_uri = sub.take_uri();
|
||||||
inner.subscriptions.insert(uri, tx.clone());
|
|
||||||
|
debug!("subscribed {} ({})", uri, sub_uri);
|
||||||
|
|
||||||
|
inner.subscriptions.insert(sub_uri, tx.clone());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -181,9 +185,16 @@ impl MercuryManager {
|
||||||
|
|
||||||
let response = MercuryResponse {
|
let response = MercuryResponse {
|
||||||
uri: header.get_uri().to_owned(),
|
uri: header.get_uri().to_owned(),
|
||||||
|
status_code: header.get_status_code(),
|
||||||
payload: pending.parts,
|
payload: pending.parts,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if response.status_code >= 400 {
|
||||||
|
warn!("error {} for uri {}", response.status_code, &response.uri);
|
||||||
|
if let Some(cb) = pending.callback {
|
||||||
|
cb.complete(Err(MercuryError));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if cmd == 0xb5 {
|
if cmd == 0xb5 {
|
||||||
self.lock(|inner| {
|
self.lock(|inner| {
|
||||||
use std::collections::hash_map::Entry;
|
use std::collections::hash_map::Entry;
|
||||||
|
@ -199,3 +210,4 @@ impl MercuryManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ pub struct MercuryRequest {
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct MercuryResponse {
|
pub struct MercuryResponse {
|
||||||
pub uri: String,
|
pub uri: String,
|
||||||
|
pub status_code: i32,
|
||||||
pub payload: Vec<Vec<u8>>,
|
pub payload: Vec<Vec<u8>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue