Yeah!I think yours is elegant and simple!
On Mon, Aug 11, 2014 at 6:33 PM, Christophe Fergeau <cfergeau@xxxxxxxxxx> wrote:
Hey,
Unfortunately, I don't think we can change the file format at this
On Fri, Aug 08, 2014 at 08:33:59PM +0800, Cody Chan wrote:
> Hi, as you can see, in vd_agent/file_xfer.cpp, it implemented
> the g_key_get_string,
> but I find a problem, when dragging a file with a name containing '[' (like
> te[st.txt), it will be failed.
> From source code,
> >next_group_pos = strstr(group_pos + strlen(group_pfx), "[");
> > if (next_group_pos && key_pos > next_group_pos) return false;
> we know that it tries to find the end of current group by '[' label,
> if we drag a file like te[st.txt, the key_string many like:
> [vdagent-file-xfer]
> name=te[st.txt
> size=10
> so, it's failed when meta parsing and
> returns VD_AGENT_FILE_XFER_STATUS_ERRO message.
>
> I find a way to fix it, just replace '[' ']' with '<' '>' between group
> name,
> for it's illegal for windows to create a file with a name containing
> '<'/'>'.
point, especially as this format is based on the somehow standard 'ini'
file format, and apart from the windows agent, we use glib
GKeyFile parser to handle this format.
>From a quick look at the code, wouldn't the patch below avoid the issue
you described?
diff --git a/vdagent/file_xfer.cpp b/vdagent/file_xfer.cpp
index c258926..17cdb3c 100644
--- a/vdagent/file_xfer.cpp
+++ b/vdagent/file_xfer.cpp
@@ -203,7 +203,7 @@ bool FileXfer::g_key_get_string(char* data, const
char* grou
sprintf_s(key_pfx, sizeof(key_pfx), "\n%s=", key);
if (!(key_pos = strstr(group_pos, key_pfx))) return false;+ next_group_pos = strstr(group_pos + strlen(group_pfx), "\n[");
- next_group_pos = strstr(group_pos + strlen(group_pfx), "[");
Christopheif (next_group_pos && key_pos > next_group_pos) return false;
start = key_pos + strlen(key_pfx);
QSBDT0RFUiBGUk9NIFJJRVNUIE9GIENUU0VV
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel