]> git.itanic.dy.fi Git - rrdd/blobdiff - parser.c
onewire_parser.c: Fix compiler warnings about string lengths
[rrdd] / parser.c
index 4a5e5355d5360483a1aef22c42d0604cdd17ccbb..0437096de547d6665cff20a6ad2ac52b63d468d4 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -2,6 +2,7 @@
 
 #include "parser.h"
 #include "debug.h"
+#include "plugin_manager.h"
 
 static struct parser_info *parser_list;
 
@@ -30,7 +31,7 @@ int register_parser(struct parser_info *info)
        return 0;
 }
 
-struct parser_info *str_to_parser(const char *str)
+static struct parser_info *_str_to_parser(const char *str)
 {
        struct parser_info *parser;
 
@@ -41,3 +42,22 @@ struct parser_info *str_to_parser(const char *str)
 
        return NULL;
 }
+
+struct parser_info *str_to_parser(const char *str)
+{
+       struct parser_info *parser;
+       int ret;
+
+       parser = _str_to_parser(str);
+
+       if (parser)
+               return parser;
+
+       /* No parser found? Try loading a plugin */
+       ret = load_parser_plugin(str);
+       if (ret)
+               return NULL;
+
+       /* Try finding the parser again, maybe we got lucky and have it now */
+       return _str_to_parser(str);
+}