From: Thomas Graf Date: Thu, 18 Nov 2010 11:51:20 +0000 (+0100) Subject: only perform automatic sequence checking if auto-ack mode is enabled X-Git-Tag: libnl3_0~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=063a2ebf5350699406f49036756295eddc74547b;p=thirdparty%2Flibnl.git only perform automatic sequence checking if auto-ack mode is enabled --- diff --git a/lib/nl.c b/lib/nl.c index 13c0514..d3fef04 100644 --- a/lib/nl.c +++ b/lib/nl.c @@ -548,14 +548,18 @@ continue_reading: /* Sequence number checking. The check may be done by * the user, otherwise a very simple check is applied * enforcing strict ordering */ - if (cb->cb_set[NL_CB_SEQ_CHECK]) + if (cb->cb_set[NL_CB_SEQ_CHECK]) { NL_CB_CALL(cb, NL_CB_SEQ_CHECK, msg); - else if (hdr->nlmsg_seq != sk->s_seq_expect) { - if (cb->cb_set[NL_CB_INVALID]) - NL_CB_CALL(cb, NL_CB_INVALID, msg); - else { - err = -NLE_SEQ_MISMATCH; - goto out; + + /* Only do sequence checking if auto-ack mode is enabled */ + } else if (!(sk->s_flags & NL_NO_AUTO_ACK)) { + if (hdr->nlmsg_seq != sk->s_seq_expect) { + if (cb->cb_set[NL_CB_INVALID]) + NL_CB_CALL(cb, NL_CB_INVALID, msg); + else { + err = -NLE_SEQ_MISMATCH; + goto out; + } } }