summaryrefslogtreecommitdiffstats
path: root/discover/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'discover/parser.c')
-rw-r--r--discover/parser.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/discover/parser.c b/discover/parser.c
index 641e06b..c04a0af 100644
--- a/discover/parser.c
+++ b/discover/parser.c
@@ -98,18 +98,23 @@ static void iterate_parser_files(struct discover_context *ctx,
}
}
-void iterate_parsers(struct discover_context *ctx)
+void iterate_parsers(struct discover_context *ctx, enum conf_method method)
{
int i;
pb_log("trying parsers for %s\n", ctx->device->device->id);
- for (i = 0; i < n_parsers; i++) {
- pb_log("\ttrying parser '%s'\n", parsers[i]->name);
- ctx->parser = parsers[i];
- iterate_parser_files(ctx, parsers[i]);
+ if (method == CONF_METHOD_LOCAL_FILE) {
+ for (i = 0; i < n_parsers; i++) {
+ if (parsers[i]->method != CONF_METHOD_LOCAL_FILE)
+ continue;
+
+ pb_log("\ttrying parser '%s'\n", parsers[i]->name);
+ ctx->parser = parsers[i];
+ iterate_parser_files(ctx, ctx->parser);
+ }
+ ctx->parser = NULL;
}
- ctx->parser = NULL;
}
void __register_parser(struct parser *parser)
OpenPOWER on IntegriCloud