summaryrefslogtreecommitdiffstats
path: root/mmss/event.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mmss/event.cpp')
-rw-r--r--mmss/event.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/mmss/event.cpp b/mmss/event.cpp
index 6326e98..5246e87 100644
--- a/mmss/event.cpp
+++ b/mmss/event.cpp
@@ -25,23 +25,27 @@
#include "event.hpp"
+#include "iface.hpp"
#include "mmss.hpp"
+#include "node.hpp"
namespace MMSS {
void packet_t::handle(context_t *mmss) {
- auto dest_ptr = dest.lock();
- if (!dest_ptr)
+ auto iface = dest.lock();
+ if (!iface)
return;
- node_t *node = dest_ptr->node;
-
- node->proto->handle_packet(node, node->ctx, dest_ptr.get(), &source_addr, data.get(), len);
+ iface->get_node()->handle_packet(iface, &source_addr, data.get(), len);
}
void scheduled_t::handle(context_t *mmss) {
- f(node.get(), node->ctx, arg);
+ auto node_ptr = node.lock();
+ if (!node_ptr)
+ return;
+
+ node_ptr->handle_scheduled(f, arg);
}
}