summaryrefslogtreecommitdiffstats
path: root/mmss/gmrf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mmss/gmrf.cpp')
-rw-r--r--mmss/gmrf.cpp18
1 files changed, 3 insertions, 15 deletions
diff --git a/mmss/gmrf.cpp b/mmss/gmrf.cpp
index 08db8e6..3a8a224 100644
--- a/mmss/gmrf.cpp
+++ b/mmss/gmrf.cpp
@@ -41,22 +41,14 @@ const char* gmrf_iface_get_name(gmrf_t *gmrf, gmrf_iface_t *iface) {
}
size_t gmrf_iface_get_mtu(gmrf_t *gmrf, gmrf_iface_t *iface) {
- auto net = iface->net.lock();
- if (!net)
- return 0;
-
- return net->mtu;
+ return iface->net->mtu;
}
bool gmrf_iface_send(gmrf_t *gmrf, gmrf_iface_t *iface, const void *data, size_t len, const gmrf_addr_t *dest) {
auto src_iface = iface->iface.lock();
assert(src_iface);
- auto net = src_iface->net.lock();
- if (!net)
- return false;
-
- for (auto dest_iface : net->interfaces) {
+ for (auto dest_iface : src_iface->net->interfaces) {
if (gmrf_addr_equal(&dest_iface->address, dest)) {
MMSS::enqueue(gmrf->mmss, src_iface, dest_iface, data, len);
break;
@@ -70,11 +62,7 @@ bool gmrf_iface_send_bc(gmrf_t *gmrf, gmrf_iface_t *iface, const void *data, siz
auto src_iface = iface->iface.lock();
assert(src_iface);
- auto net = src_iface->net.lock();
- if (!net)
- return false;
-
- for (auto dest_iface : net->interfaces) {
+ for (auto dest_iface : src_iface->net->interfaces) {
if (dest_iface != src_iface)
MMSS::enqueue(gmrf->mmss, src_iface, dest_iface, data, len);
}