qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [COMMIT 1cec71e] Revert "support colon in filenames"


From: Anthony Liguori
Subject: [Qemu-commits] [COMMIT 1cec71e] Revert "support colon in filenames"
Date: Fri, 10 Jul 2009 19:16:39 -0000

From: Anthony Liguori <address@hidden>

This reverts commit 707c0dbc97cddfe8d2441b8259c6c526d99f2dd8.

Signed-off-by: Anthony Liguori <address@hidden>

diff --git a/block.c b/block.c
index c7589b1..aca5a6d 100644
--- a/block.c
+++ b/block.c
@@ -225,7 +225,7 @@ static BlockDriver *find_protocol(const char *filename)
 {
     BlockDriver *drv1;
     char protocol[128];
-    int len = qemu_strnlen(filename, 127) + 1;
+    int len;
     const char *p;
 
 #ifdef _WIN32
@@ -233,9 +233,14 @@ static BlockDriver *find_protocol(const char *filename)
         is_windows_drive_prefix(filename))
         return bdrv_find_format("raw");
 #endif
-    p = fill_token(protocol, len, filename, ':');
-    if (*p != ':')
+    p = strchr(filename, ':');
+    if (!p)
         return bdrv_find_format("raw");
+    len = p - filename;
+    if (len > sizeof(protocol) - 1)
+        len = sizeof(protocol) - 1;
+    memcpy(protocol, filename, len);
+    protocol[len] = '\0';
     for(drv1 = first_drv; drv1 != NULL; drv1 = drv1->next) {
         if (drv1->protocol_name &&
             !strcmp(drv1->protocol_name, protocol))
@@ -409,9 +414,9 @@ int bdrv_open2(BlockDriverState *bs, const char *filename, 
int flags,
         open_flags = BDRV_O_RDWR | (flags & BDRV_O_CACHE_MASK);
     else
         open_flags = flags & ~(BDRV_O_FILE | BDRV_O_SNAPSHOT);
-    ret = bdrv_open3(bs, filename, open_flags, drv);
+    ret = drv->bdrv_open(bs, filename, open_flags);
     if ((ret == -EACCES || ret == -EPERM) && !(flags & BDRV_O_FILE)) {
-        ret = bdrv_open3(bs, filename, open_flags & ~BDRV_O_RDWR, drv);
+        ret = drv->bdrv_open(bs, filename, open_flags & ~BDRV_O_RDWR);
         bs->read_only = 1;
     }
     if (ret < 0) {
@@ -456,18 +461,6 @@ int bdrv_open2(BlockDriverState *bs, const char *filename, 
int flags,
     return 0;
 }
 
-int bdrv_open3(BlockDriverState *bs, const char *filename, int flags, 
BlockDriver *drv)
-{
-    char myfile[PATH_MAX];
-    const char *f;
-
-    if (!strstart(filename, "file:", &f)) {
-        fill_token(myfile, PATH_MAX, filename, '\0');
-        return drv->bdrv_open(bs,myfile,flags);
-    }
-    return drv->bdrv_open(bs,f,flags);
-}
-
 void bdrv_close(BlockDriverState *bs)
 {
     if (bs->drv) {
diff --git a/block.h b/block.h
index ca5bfff..406a199 100644
--- a/block.h
+++ b/block.h
@@ -57,8 +57,6 @@ int bdrv_file_open(BlockDriverState **pbs, const char 
*filename, int flags);
 int bdrv_open(BlockDriverState *bs, const char *filename, int flags);
 int bdrv_open2(BlockDriverState *bs, const char *filename, int flags,
                BlockDriver *drv);
-int bdrv_open3(BlockDriverState *bs, const char *filename, int flags,
-               BlockDriver *drv);
 void bdrv_close(BlockDriverState *bs);
 int bdrv_check(BlockDriverState *bs);
 int bdrv_read(BlockDriverState *bs, int64_t sector_num,
diff --git a/block/dmg.c b/block/dmg.c
index dd98af4..262560f 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 bdrv_open3(bs, filename, flags, bs->drv);
+       return bs->drv->bdrv_open(bs, filename, flags);
     }
     info_begin=read_off(s->fd);
     if(info_begin==0)
diff --git a/block/raw-posix.c b/block/raw-posix.c
index 8b1e67c..985bf69 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -903,7 +903,6 @@ static BlockDriver bdrv_raw = {
     .bdrv_getlength = raw_getlength,
 
     .create_options = raw_create_options,
-    .protocol_name = "file",
 };
 
 /***********************************************/
diff --git a/cutils.c b/cutils.c
index 6196a90..bd9a019 100644
--- a/cutils.c
+++ b/cutils.c
@@ -24,32 +24,6 @@
 #include "qemu-common.h"
 #include "host-utils.h"
 
-/*
- * fill first 'len' characters of 'buff' with pruned
- * contents of 'str' delimited by the character 'c'.
- * Escape character '\' is pruned off.
- * Return pointer to the delimiting character.
- */
-const char *fill_token(char *buf, const int len, const char *str, const char c)
-{
-    const char *p=str;
-    char *q=buf;
-
-    while (p < str+len-1) {
-    if (*p == c)
-        break;
-        if (*p == '\\') {
-            p++;
-            if (*p == '\0')
-                break;
-        }
-        *q++ = *p++;
-    }
-    *q='\0';
-    return p;
-}
-
-
 void pstrcpy(char *buf, int buf_size, const char *str)
 {
     int c;
diff --git a/qemu-common.h b/qemu-common.h
index a5d8fff..6a15f89 100644
--- a/qemu-common.h
+++ b/qemu-common.h
@@ -104,7 +104,6 @@ void qemu_get_timedate(struct tm *tm, int offset);
 int qemu_timedate_diff(struct tm *tm);
 
 /* cutils.c */
-const char *fill_token(char *buf, int buf_size, const char *str, char);
 void pstrcpy(char *buf, int buf_size, const char *str);
 char *pstrcat(char *buf, int buf_size, const char *s);
 int strstart(const char *str, const char *val, const char **ptr);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]