public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
From: Sven Eckelmann <sven@narfation.org>
To: b.a.t.m.a.n@lists.open-mesh.org
Cc: Sven Eckelmann <sven@narfation.org>
Subject: [B.A.T.M.A.N.] [PATCH 1/2] alfred: Update version when adding data to dataset
Date: Sat,  7 Mar 2015 23:41:17 +0100	[thread overview]
Message-ID: <1425768078-15380-1-git-send-email-sven@narfation.org> (raw)

The dataset stores the source and the alfred_tlv of the send data next to the
actual data buffer. The source and alfred_tlv::type was used to find an entry
in the dataset hashtable when reading/updating the buffer. The
alfred_tlv::length is always updated when the size of the associated buffer
gets modified.

But the alfred_tlv::version is only written when receiving the first data for a
dataset. But this initial (maybe outdated) version is always propagated when a
client asks over the unix socket or the dataset is exchanged between alfred
servers. This has to also be updated when new data is added to the dataset to
avoid clients to interpret the data using the wrong data format version.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 recv.c      | 1 +
 unix_sock.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/recv.c b/recv.c
index 34a16fc..e0252eb 100644
--- a/recv.c
+++ b/recv.c
@@ -91,6 +91,7 @@ static int finish_alfred_push_data(struct globals *globals,
 			goto err;
 
 		dataset->data.header.length = data_len;
+		dataset->data.header.version = data->header.version;
 		memcpy(dataset->buf, data->data, data_len);
 
 		/* if the sender is also the the source of the dataset, we
diff --git a/unix_sock.c b/unix_sock.c
index ae86956..0707252 100644
--- a/unix_sock.c
+++ b/unix_sock.c
@@ -151,6 +151,7 @@ static int unix_sock_add_data(struct globals *globals,
 		goto err;
 
 	dataset->data.header.length = data_len;
+	dataset->data.header.version = data->header.version;
 	memcpy(dataset->buf, data->data, data_len);
 
 	ret = 0;
-- 
2.1.4


             reply	other threads:[~2015-03-07 22:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-07 22:41 Sven Eckelmann [this message]
2015-03-07 22:41 ` [B.A.T.M.A.N.] [PATCH 2/2] alfred: Add option to the client to print extra data information Sven Eckelmann
2015-03-07 22:45 ` [B.A.T.M.A.N.] [PATCHv2 " Sven Eckelmann
2015-03-11 12:08   ` Simon Wunderlich
2015-03-11 12:08 ` [B.A.T.M.A.N.] [PATCH 1/2] alfred: Update version when adding data to dataset Simon Wunderlich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1425768078-15380-1-git-send-email-sven@narfation.org \
    --to=sven@narfation.org \
    --cc=b.a.t.m.a.n@lists.open-mesh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox