From: Marek Lindner <lindner_marek@yahoo.de>
To: The list for a Better Approach To Mobile Ad-hoc Networking
<b.a.t.m.a.n@lists.open-mesh.org>
Subject: Re: [B.A.T.M.A.N.] [RFC 2/5] batman-adv: ELP - creating neighbor structures, updating LQs
Date: Thu, 5 Apr 2012 22:59:38 +0300 [thread overview]
Message-ID: <201204052259.38938.lindner_marek@yahoo.de> (raw)
In-Reply-To: <20120323205212.GF5662@lunn.ch>
On Friday, March 23, 2012 22:52:12 Andrew Lunn wrote:
> > +/* extract my own tq to neighbor from the elp packet */
> > +static uint8_t bat_v_elp_fetch_tq(uint8_t *my_iface_addr,
> > + struct batman_elp_packet *elp_packet,
> > + int elp_packet_len)
> > +{
> > + struct elp_neigh_entry *elp_neigh_entry;
> > + uint8_t tq = 0;
> > + int i;
> > +
> > + elp_neigh_entry = (struct elp_neigh_entry *)(elp_packet + 1);
> > + elp_packet_len -= BATMAN_ELP_HLEN;
> > +
> > + for (i = 0; i < elp_packet->num_neighbors; i++) {
> > + if (!compare_eth(my_iface_addr, elp_neigh_entry->addr))
> > + goto next;
> > +
> > + tq = elp_neigh_entry->rq;
> > + break;
> > +
> > + next:
> > + elp_packet_len -= sizeof(struct elp_neigh_entry);
> > + if (elp_packet_len < 0)
> > + break;
> > +
> > + elp_neigh_entry++;
> > + }
>
> I'm personally not a fan of using goto like this. Reminds me of BASIC.
>
> Could this be changed? Maybe first validate elp_packet->num_neighbors
> matches the packet length, and then skip elp_packet_len check in each
> iteration of the loop. A normal if then else should then be possible.
Something like this ?
elp_packet_len -= BATMAN_ELP_HLEN;
elp_packet_len -= elp_packet->num_neighbors * sizeof(struct elp_neigh_entry;
if (elp_packet_len < 0)
return;
Cheers,
Marek
next prev parent reply other threads:[~2012-04-05 19:59 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-22 21:50 [B.A.T.M.A.N.] [RFC] ELP Marek Lindner
2012-03-22 21:51 ` [B.A.T.M.A.N.] [RFC 1/5] batman-adv: ELP - adding basic infrastructure Marek Lindner
2012-03-22 21:51 ` [B.A.T.M.A.N.] [RFC 2/5] batman-adv: ELP - creating neighbor structures, updating LQs Marek Lindner
2012-03-23 20:52 ` Andrew Lunn
2012-04-05 19:59 ` Marek Lindner [this message]
2012-03-23 21:22 ` Andrew Lunn
2012-03-24 8:14 ` Antonio Quartulli
2012-03-24 20:21 ` Andrew Lunn
2012-04-05 20:11 ` Marek Lindner
2012-04-06 7:17 ` Andrew Lunn
2012-04-06 8:18 ` Marek Lindner
2012-04-05 20:08 ` Marek Lindner
2012-03-22 21:51 ` [B.A.T.M.A.N.] [RFC 3/5] batman-adv: ELP - exporting neighbor list via debugfs Marek Lindner
2012-03-22 21:51 ` [B.A.T.M.A.N.] [RFC 4/5] batman-adv: ELP - adding sysfs parameter for elp interval Marek Lindner
2012-03-22 21:51 ` [B.A.T.M.A.N.] [RFC 5/5] batman-adv: ELP - add configurable minimum ELP packet length (def: 300B) Marek Lindner
2012-03-24 20:39 ` Andrew Lunn
2012-04-05 20:19 ` Marek Lindner
2012-03-23 6:41 ` [B.A.T.M.A.N.] [RFC 1/5] batman-adv: ELP - adding basic infrastructure Andrew Lunn
2012-03-23 6:50 ` Andrew Lunn
2012-04-05 20:21 ` Marek Lindner
2012-03-23 6:32 ` [B.A.T.M.A.N.] [RFC] ELP Andrew Lunn
2012-03-23 7:50 ` Antonio Quartulli
2012-04-05 20:30 ` Marek Lindner
2012-04-06 9:13 ` Andrew Lunn
2012-04-06 16:57 ` dan
2012-04-06 17:19 ` Andrew Lunn
2012-04-06 18:04 ` dan
2012-03-23 6:34 ` Andrew Lunn
2012-03-23 7:51 ` Antonio Quartulli
2012-04-05 20:30 ` Marek Lindner
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=201204052259.38938.lindner_marek@yahoo.de \
--to=lindner_marek@yahoo.de \
--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