diff options
Diffstat (limited to 'src/tlv_types.c')
-rw-r--r-- | src/tlv_types.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/tlv_types.c b/src/tlv_types.c index 1cc1c3a..d3f2d92 100644 --- a/src/tlv_types.c +++ b/src/tlv_types.c @@ -195,16 +195,16 @@ static void handle_tlv_update(gmrf_t *gmrf, gmrf_context_t *ctx, const gp_babel_ } } - if (!announce->data) { + if ((tlv_update->flags & GP_BABEL_UPDATE_FLAG_HAS_PAYLOAD) && !announce->payload) { if (len > sizeof(gp_babel_tlv_update_t)) { announce->len = len - sizeof(gp_babel_tlv_update_t); - announce->data = malloc(announce->len); - memcpy(announce->data, tlv_update->data, announce->len); + announce->payload = malloc(announce->len); + memcpy(announce->payload, tlv_update->payload, announce->len); } else { announce->len = 0xff; - /* request data */ + /* request payload */ //if (nexthop) // gp_babel_send_announce_request(arg->iface, neigh, announce->node, announce->type, announce->key, true); } |