diff options
author | Fulup Ar Foll <fulup@iot.bzh> | 2017-09-29 12:23:26 +0200 |
---|---|---|
committer | Fulup Ar Foll <fulup@iot.bzh> | 2017-09-29 12:23:26 +0200 |
commit | acde5b8a880ff6f5e19ee91bd1f213339947b62f (patch) | |
tree | 333ebb3e87531da12fe447309e77a6fa57ba4165 /ctl-dispatch/ctl-onload.c | |
parent | acfdebd511ebcde861c7975af0a92c0d6bc87678 (diff) |
Initial Commit as submodule
Diffstat (limited to 'ctl-dispatch/ctl-onload.c')
-rw-r--r-- | ctl-dispatch/ctl-onload.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/ctl-dispatch/ctl-onload.c b/ctl-dispatch/ctl-onload.c new file mode 100644 index 0000000..97bd109 --- /dev/null +++ b/ctl-dispatch/ctl-onload.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2016 "IoT.bzh" + * Author Fulup Ar Foll <fulup@iot.bzh> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, something express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#define _GNU_SOURCE +#include <stdio.h> +#include <string.h> + +#include "ctl-config.h" + +// onload section receive one action or an array of actions +PUBLIC int OnloadConfig(CtlSectionT *section, json_object *actionsJ) { + CtlActionT *actions; + + // Load time parse actions in config file + if (actionsJ != NULL) { + actions= ActionLoad(actionsJ); + section->handle=actions; + + if (!actions) { + AFB_ERROR ("OnloadLoad config fail processing onload actions"); + goto OnErrorExit; + } + + } else { + // Exec time process onload action now + actions=(CtlActionT*)section->handle; + if (!actions) { + AFB_ERROR ("OnloadLoad Cannot Exec Non Existing Onload Action"); + goto OnErrorExit; + } + + for (int idx=0; actions[idx].source.label != NULL; idx ++) { + ActionExecOne(&actions[idx], NULL); + } + } + + return 0; + +OnErrorExit: + return 1; + +} |