X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fpaths.c;h=fe7a87635fe7384642cb0400d2c4d4497032358a;hp=72d07b20c4cee09b354510558e4558e405e4b828;hb=e93e46bfecdef5511953cd3ce1f01b0546d98af8;hpb=5eb7f7bcd3431cd8f634b02b71bd78f6162c2af3;ds=sidebyside diff --git a/discover/paths.c b/discover/paths.c index 72d07b2..fe7a876 100644 --- a/discover/paths.c +++ b/discover/paths.c @@ -35,7 +35,7 @@ const char *mount_base(void) char *encode_label(void *alloc_ctx, const char *label) { char *str, *c; - int i; + unsigned int i; /* the label can be expanded by up to four times */ str = talloc_size(alloc_ctx, strlen(label) * 4 + 1); @@ -81,14 +81,6 @@ char *parse_device_path(void *alloc_ctx, if (is_prefix(dev_str, "/dev/")) dev_str += strlen("/dev/"); - /* PS3 hack: if we're reading from a ps3dx device, and we refer to - * a sdx device, remap to ps3dx */ - if (cur_dev && is_prefix(cur_dev, "/dev/ps3d") - && is_prefix(dev_str, "sd")) { - snprintf(tmp, 255, "ps3d%s", dev_str + 2); - dev_str = tmp; - } - return join_paths(alloc_ctx, "/dev", dev_str); } @@ -116,9 +108,17 @@ const char *mountpoint_for_device(const char *dev) char *resolve_path(void *alloc_ctx, const char *path, const char *current_dev) { + static const char s_file[] = "file://"; char *ret; const char *devpath, *sep; + /* test for urls */ + + if (!strncasecmp(path, s_file, sizeof(s_file) - 1)) + path += sizeof(s_file) - 1; + else if (strstr(path, "://")) + return talloc_strdup(alloc_ctx, path); + sep = strchr(path, ':'); if (!sep) { devpath = mountpoint_for_device(current_dev);