diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-03-26 04:00:47 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-03-26 04:06:55 +0100 |
commit | 79c6fd3f14b51d37c45b78d2a4f511927b9eac94 (patch) | |
tree | ee1b8fde2618541c09bc99227c78532e7c54b0d1 /src/tlv_types.c | |
parent | 3dbdeacfdb3adbcaecb63a9805c5c45ec93cb8c7 (diff) | |
download | babel-79c6fd3f14b51d37c45b78d2a4f511927b9eac94.tar babel-79c6fd3f14b51d37c45b78d2a4f511927b9eac94.zip |
Fix handling of announces without payload
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); } |