|
|
|
@ -165,9 +165,8 @@ impl Sending { |
|
|
|
let new_events = guard.sending.servernamepduids |
|
|
|
let new_events = guard.sending.servernamepduids |
|
|
|
.scan_prefix(prefix.clone()) |
|
|
|
.scan_prefix(prefix.clone()) |
|
|
|
.filter_map(|(k, _)| { |
|
|
|
.filter_map(|(k, _)| { |
|
|
|
Self::parse_servercurrentevent(&k).ok() |
|
|
|
Self::parse_servercurrentevent(&k).ok().map(|ev| (ev, k)) |
|
|
|
}) |
|
|
|
}) |
|
|
|
.map(|(_, event)| event) |
|
|
|
|
|
|
|
.take(30) |
|
|
|
.take(30) |
|
|
|
.collect::<Vec<_>>(); |
|
|
|
.collect::<Vec<_>>(); |
|
|
|
|
|
|
|
|
|
|
|
@ -175,16 +174,9 @@ impl Sending { |
|
|
|
|
|
|
|
|
|
|
|
if !new_events.is_empty() { |
|
|
|
if !new_events.is_empty() { |
|
|
|
// Insert pdus we found
|
|
|
|
// Insert pdus we found
|
|
|
|
for event in &new_events { |
|
|
|
for (_, key) in &new_events { |
|
|
|
let mut current_key = prefix.clone(); |
|
|
|
guard.sending.servercurrentevents.insert(&key, &[]).unwrap(); |
|
|
|
match event { |
|
|
|
guard.sending.servernamepduids.remove(&key).unwrap(); |
|
|
|
SendingEventType::Pdu(b) | |
|
|
|
|
|
|
|
SendingEventType::Edu(b) => { |
|
|
|
|
|
|
|
current_key.extend_from_slice(&b); |
|
|
|
|
|
|
|
guard.sending.servercurrentevents.insert(¤t_key, &[]).unwrap(); |
|
|
|
|
|
|
|
guard.sending.servernamepduids.remove(¤t_key).unwrap(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
drop(guard); |
|
|
|
drop(guard); |
|
|
|
@ -192,7 +184,7 @@ impl Sending { |
|
|
|
futures.push( |
|
|
|
futures.push( |
|
|
|
Self::handle_events( |
|
|
|
Self::handle_events( |
|
|
|
outgoing_kind.clone(), |
|
|
|
outgoing_kind.clone(), |
|
|
|
new_events, |
|
|
|
new_events.into_iter().map(|(event, _)| event.1).collect(), |
|
|
|
Arc::clone(&db), |
|
|
|
Arc::clone(&db), |
|
|
|
) |
|
|
|
) |
|
|
|
); |
|
|
|
); |
|
|
|
|