Yeah!I think yours is elegant and simple!
On Mon, Aug 11, 2014 at 6:33 PM, Christophe Fergeau <cferg...@redhat.com> wrote: > Hey, > > 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 > > '<'/'>'. > > Unfortunately, I don't think we can change the file format at this > 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), "["); > + next_group_pos = strstr(group_pos + strlen(group_pfx), "\n["); > if (next_group_pos && key_pos > next_group_pos) return false; > > start = key_pos + strlen(key_pfx); > > Christophe > -- QSBDT0RFUiBGUk9NIFJJRVNUIE9GIENUU0VV
_______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel