Commit 1a57f649 authored by Dimitris Lampridis's avatar Dimitris Lampridis

clib: block rule enable if source and/or destination are invalid

Closes #5.
parent 2b23ab10
......@@ -999,13 +999,22 @@ enum wrtd_status wrtd_attr_set_rule_enable(struct wrtd_dev *wrtd,
{
enum wrtd_status status;
unsigned int idx;
struct wrtd_lib_rule *rule;
status = wrtd_find_rule(wrtd, rep_cap_id, &idx, __func__);
WRTD_RETURN_IF_ERROR(status);
if (wrtd->rules[idx].conf.enabled != value) {
wrtd->rules[idx].conf.enabled = value;
wrtd->rules[idx].modified = 1;
rule = &wrtd->rules[idx];
status = wrtd_validate_id(wrtd, rule->conf.source_id.c, __func__);
WRTD_RETURN_IF_ERROR(status);
status = wrtd_validate_id(wrtd, rule->conf.dest_id.c, __func__);
WRTD_RETURN_IF_ERROR(status);
if (rule->conf.enabled != value) {
rule->conf.enabled = value;
rule->modified = 1;
status = wrtd_reconfigure(wrtd, __func__);
WRTD_RETURN_IF_ERROR(status);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment