From 707c0dbc97cddfe8d2441b8259c6c526d99f2dd8 Mon Sep 17 00:00:00 2001 From: Ram Pai Date: Fri, 26 Jun 2009 17:41:50 -0700 Subject: support colon in filenames Problem: It is impossible to feed filenames with the character colon because qemu interprets such names as a protocol. For example filename scsi:0, is interpreted as a protocol by name "scsi". This patch allows user to espace colon characters. For example the above filename can now be expressed either as 'scsi\:0' or as file:scsi:0 anything following the "file:" tag is interpreted verbatin. However if "file:" tag is omitted then any colon characters in the string must be escaped using backslash. Here are couple of examples: scsi\:0\:abc is a local file scsi:0:abc http\://myweb is a local file by name http://myweb file:scsi:0:abc is a local file scsi:0:abc file:http://myweb is a local file by name http://myweb Signed-off-by: Ram Pai Signed-off-by: Anthony Liguori --- block/dmg.c | 2 +- block/raw-posix.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'block') diff --git a/block/dmg.c b/block/dmg.c index 262560f..dd98af4 100644 --- a/block/dmg.c +++ b/block/dmg.c @@ -94,7 +94,7 @@ dmg_close: close(s->fd); /* open raw instead */ bs->drv=bdrv_find_format("raw"); - return bs->drv->bdrv_open(bs, filename, flags); + return bdrv_open3(bs, filename, flags, bs->drv); } info_begin=read_off(s->fd); if(info_begin==0) diff --git a/block/raw-posix.c b/block/raw-posix.c index fa1a394..31b68ff 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -892,6 +892,7 @@ static BlockDriver bdrv_raw = { .bdrv_getlength = raw_getlength, .create_options = raw_create_options, + .protocol_name = "file", }; /***********************************************/ -- cgit v1.1