forked from Mirror/frr
libs,zebra: remove zapi nhg encode and decode public apis
The raw zapi apis to encode and decode NHGs don't need to be public; also add a little more validity-checking. Signed-off-by: Mark Stapp <mjs@voltanet.io>
This commit is contained in:
parent
c0b6ef23f7
commit
5898ce6f35
|
@ -996,7 +996,7 @@ done:
|
|||
return ret;
|
||||
}
|
||||
|
||||
int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
||||
static int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -1007,6 +1007,13 @@ int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (api_nhg->nexthop_num >= MULTIPATH_NUM ||
|
||||
api_nhg->backup_nexthop_num >= MULTIPATH_NUM) {
|
||||
flog_err(EC_LIB_ZAPI_ENCODE,
|
||||
"%s: zapi NHG encode with invalid input\n", __func__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
stream_reset(s);
|
||||
zclient_create_header(s, cmd, VRF_DEFAULT);
|
||||
|
||||
|
@ -1024,7 +1031,6 @@ int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
|||
zapi_nexthop_encode(s, &api_nhg->nexthops[i], 0, 0);
|
||||
|
||||
/* Backup nexthops */
|
||||
|
||||
stream_putw(s, api_nhg->backup_nexthop_num);
|
||||
|
||||
for (i = 0; i < api_nhg->backup_nexthop_num; i++)
|
||||
|
|
|
@ -1021,9 +1021,7 @@ bool zapi_ipset_notify_decode(struct stream *s,
|
|||
uint32_t *unique,
|
||||
enum zapi_ipset_notify_owner *note);
|
||||
|
||||
|
||||
extern int zapi_nhg_encode(struct stream *s, int cmd, struct zapi_nhg *api_nhg);
|
||||
extern int zapi_nhg_decode(struct stream *s, int cmd, struct zapi_nhg *api_nhg);
|
||||
/* Nexthop-group message apis */
|
||||
extern enum zclient_send_status
|
||||
zclient_nhg_send(struct zclient *zclient, int cmd, struct zapi_nhg *api_nhg);
|
||||
|
||||
|
|
|
@ -62,6 +62,8 @@
|
|||
#include "zebra/zebra_opaque.h"
|
||||
#include "zebra/zebra_srte.h"
|
||||
|
||||
static int zapi_nhg_decode(struct stream *s, int cmd, struct zapi_nhg *api_nhg);
|
||||
|
||||
/* Encoding helpers -------------------------------------------------------- */
|
||||
|
||||
static void zserv_encode_interface(struct stream *s, struct interface *ifp)
|
||||
|
@ -1742,7 +1744,7 @@ static bool zapi_read_nexthops(struct zserv *client, struct prefix *p,
|
|||
return true;
|
||||
}
|
||||
|
||||
int zapi_nhg_decode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
||||
static int zapi_nhg_decode(struct stream *s, int cmd, struct zapi_nhg *api_nhg)
|
||||
{
|
||||
uint16_t i;
|
||||
struct zapi_nexthop *znh;
|
||||
|
|
Loading…
Reference in a new issue