All functions that call zclient_read_header immediately turn around
and check to ensure that the version and marker fields are correct
Move this code into zclient_read_header
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
(cherry picked from commit
a9d4cb33faa6af622240190a80f41c4672374925)
*vrf_id = stream_getw (s);
*cmd = stream_getw (s);
+ if (*version != ZSERV_VERSION || *marker != ZEBRA_HEADER_MARKER)
+ {
+ zlog_err("%s: socket %d version mismatch, marker %d, version %d",
+ __func__, sock, *marker, *version);
+ return -1;
+ }
+
if (*size && stream_read (s, sock, *size) != *size)
return -1;
zclient_lookup_failed(zlookup);
return -2;
}
-
- if (version != ZSERV_VERSION || marker != ZEBRA_HEADER_MARKER) {
- zlog_err("%s: socket %d version mismatch, marker %d, version %d",
- __func__, zlookup->sock, marker, version);
- zclient_lookup_failed(zlookup);
- return -4;
- }
}
raddr.s_addr = stream_get_ipv4(s);