X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=discover%2Fparser.c;h=8e767c6727c27f00ddc1ecb5ecaf173d288fdd60;hb=45e64e9fbeae206997d347b479e697da2ee53ac5;hp=21b48debcb31d52e4f788040c1ce391e4ded7fc6;hpb=b8e53cb4b96eb17dc7fa0ffc505dfebae37e6cbf;p=petitboot diff --git a/discover/parser.c b/discover/parser.c index 21b48de..8e767c6 100644 --- a/discover/parser.c +++ b/discover/parser.c @@ -5,6 +5,7 @@ #include #include "types/types.h" +#include #include #include @@ -12,7 +13,6 @@ #include "parser.h" #include "parser-utils.h" #include "paths.h" -#include "file.h" struct p_item { struct list_item list; @@ -49,6 +49,26 @@ int parser_request_file(struct discover_context *ctx, return rc; } +int parser_check_dir(struct discover_context *ctx, + struct discover_device *dev, const char *dirname) +{ + struct stat statbuf; + char *path; + int rc; + + if (!dev->mount_path) + return -1; + + path = local_path(ctx, dev, dirname); + + rc = stat(path, &statbuf); + talloc_free(path); + if (!rc) + return -1; + + return S_ISDIR(statbuf.st_mode) ? 0 : -1; +} + int parser_replace_file(struct discover_context *ctx, struct discover_device *dev, const char *filename, char *buf, int len)