aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/command.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mumd/src/command.rs')
-rw-r--r--mumd/src/command.rs23
1 files changed, 13 insertions, 10 deletions
diff --git a/mumd/src/command.rs b/mumd/src/command.rs
index 410751a..73ab3bd 100644
--- a/mumd/src/command.rs
+++ b/mumd/src/command.rs
@@ -32,16 +32,19 @@ pub async fn handle(
&mut connection_info_sender,
);
match event {
- ExecutionContext::TcpEventCallback(event, generator) => {
- tcp_event_queue.register_callback(
- event,
- Box::new(move |e| {
- let response = generator(e);
- for response in response {
- response_sender.send(response).unwrap();
- }
- }),
- );
+ ExecutionContext::TcpEventCallback(callbacks) => {
+ for (event, generator) in callbacks {
+ let response_sender = response_sender.clone();
+ tcp_event_queue.register_callback(
+ event,
+ Box::new(move |e| {
+ let response = generator(e);
+ for response in response {
+ response_sender.send(response).unwrap();
+ }
+ }),
+ );
+ }
}
ExecutionContext::TcpEventSubscriber(event, mut handler) => tcp_event_queue
.register_subscriber(