diff options
Diffstat (limited to 'ctrl/libhicnctrl/src')
-rw-r--r-- | ctrl/libhicnctrl/src/api.c | 7 | ||||
-rw-r--r-- | ctrl/libhicnctrl/src/api_private.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/ctrl/libhicnctrl/src/api.c b/ctrl/libhicnctrl/src/api.c index 4156ceff9..472e07bc4 100644 --- a/ctrl/libhicnctrl/src/api.c +++ b/ctrl/libhicnctrl/src/api.c @@ -689,7 +689,12 @@ int hc_route_validate(const hc_route_t *route) { ERROR("[hc_route_validate] Invalid connection id"); return -1; } - if (!IS_VALID_NAME(route->name) && !IS_VALID_STR_ID(route->name)) { + if (route->name[0] == '\0') { + if (!IS_VALID_FACE_ID(route->face_id)) { + ERROR("[hc_route_validate] Invalid face_id"); + return -1; + } + } else if (!IS_VALID_NAME(route->name) && !IS_VALID_STR_ID(route->name)) { ERROR("[hc_route_validate] Invalid name specified"); return -1; } diff --git a/ctrl/libhicnctrl/src/api_private.h b/ctrl/libhicnctrl/src/api_private.h index 11cb2e00e..65b175810 100644 --- a/ctrl/libhicnctrl/src/api_private.h +++ b/ctrl/libhicnctrl/src/api_private.h @@ -73,6 +73,7 @@ static inline bool IS_VALID_STR_ID(const char *name) { #define IS_VALID_TYPE(x) IS_VALID_ENUM_TYPE(FACE_TYPE, x) #define IS_VALID_ADDR_TYPE(x) ((x >= ADDR_INET) && (x <= ADDR_UNIX)) +#define IS_VALID_FACE_ID(x) ((x) != INVALID_FACE_ID) #define IS_VALID_ID(x) (1) #define IS_VALID_POLICY(x) (1) |