diff options
Diffstat (limited to 'mmss/event.cpp')
-rw-r--r-- | mmss/event.cpp | 16 |
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); } } |