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:
Mark Stapp 2021-01-04 12:50:19 -05:00
parent c0b6ef23f7
commit 5898ce6f35
3 changed files with 12 additions and 6 deletions

View file

@ -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++)

View file

@ -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);

View file

@ -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;