ipvlan: fix signature of rtnl_link_ipvlan_get_mode() to signal error

http://lists.infradead.org/pipermail/libnl/2015-June/001902.html

Fixes: 7de5be85bf

Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
Thomas Haller 2015-06-26 17:58:06 +02:00
parent 089a28212d
commit b4afcadc30
2 changed files with 8 additions and 7 deletions

View file

@ -28,7 +28,7 @@ extern int rtnl_link_ipvlan_str2mode(const char *);
extern int rtnl_link_ipvlan_set_mode(struct rtnl_link *,
uint16_t);
extern uint16_t rtnl_link_ipvlan_get_mode(struct rtnl_link *);
extern int rtnl_link_ipvlan_get_mode(struct rtnl_link *, uint16_t *out_mode);
#ifdef __cplusplus
}

View file

@ -227,19 +227,20 @@ int rtnl_link_ipvlan_set_mode(struct rtnl_link *link, uint16_t mode)
/**
* Get IPVLAN Mode
* @arg link Link object
* @arg out_mode on success, return the mode
*
* @return IPVLAN mode, 0 if not set or a negative error code.
* @return 0 on success or a negative error code.
*/
uint16_t rtnl_link_ipvlan_get_mode(struct rtnl_link *link)
int rtnl_link_ipvlan_get_mode(struct rtnl_link *link, uint16_t *out_mode)
{
struct ipvlan_info *ipi = link->l_info;
IS_IPVLAN_LINK_ASSERT(link);
if (ipi->ipi_mask & IPVLAN_HAS_MODE)
return ipi->ipi_mode;
else
return 0;
if (!(ipi->ipi_mask & IPVLAN_HAS_MODE))
return -NLE_OPNOTSUPP;
*out_mode = ipi->ipi_mode;
return 0;
}
/** @} */