On 11/05/18 08:54, Frediano Ziglio wrote: >> >> When we remove the hacks in configure.ac and common/Makefile.am, two >> errors pop out: >> >> generated_server_demarshallers.c: In function >> ‘parse_msgc_smartcard_reader_add’: >> generated_server_demarshallers.c:1985:30: error: ‘mem_size’ undeclared (first >> use in this function); did you mean ‘nw_size’? >> data = (uint8_t *)malloc(mem_size); >> ^~~~~~~~ >> nw_size >> >> First one is caused by a missing declaration of mem_size, so we use the >> same condition that causes this code to be added to the check for the >> need of mem_size variable declaration in demarshal.py. >> >> generated_server_demarshallers.c:1985:30: note: each undeclared identifier is >> reported only once for each function it appears in >> generated_server_demarshallers.c:1994:15: error: ‘VSCMsgReaderAdd {aka struct >> VSCMsgReaderAdd}’ has no member named ‘reader_name’ >> memcpy(out->reader_name, in, reader_name__nelements); >> ^~ >> >> This second one is only a rename of 'reader_name' field to 'name', as >> specified in the VSCMsgReaderAdd structure in file vscard_common.h. >> >> N.B.: Even with those errors fixed, it looks like the generated code is >> really broken and should not be built at all. So, following suggestion >> after review in the mailing list, this patch also changes the define in >> the code to be different from the one that is used to tell whether the >> smartcard dependencies are found. >> >> https://lists.freedesktop.org/archives/spice-devel/2018-May/043395.html >> > > Maybe better to copy part of that message? > Sure, I will add to the commit message for next version. >> Signed-off-by: Eduardo Lima (Etrunko) <etrunko@xxxxxxxxxx> >> --- >> common/Makefile.am | 2 -- >> configure.ac | 7 ------- >> python_modules/demarshal.py | 2 +- >> spice.proto | 4 ++-- >> 4 files changed, 3 insertions(+), 12 deletions(-) >> >> diff --git a/common/Makefile.am b/common/Makefile.am >> index 22aec80..ea15039 100644 >> --- a/common/Makefile.am >> +++ b/common/Makefile.am >> @@ -78,8 +78,6 @@ libspice_common_server_la_SOURCES = \ >> $(SERVER_MARSHALLERS) \ >> $(NULL) >> >> -libspice_common_server_la_CFLAGS = -DFIXME_SERVER_SMARTCARD >> - >> AM_CPPFLAGS = \ >> -I$(top_srcdir) \ >> -I$(top_builddir) \ > > fine with this > >> diff --git a/configure.ac b/configure.ac >> index 3da85de..39faf1c 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -64,11 +64,4 @@ AC_CONFIG_FILES([ >> docs/Makefile >> ]) >> >> -AH_BOTTOM([ >> -/* argh.. this is evil */ >> -#if defined(FIXME_SERVER_SMARTCARD) && defined(USE_SMARTCARD) >> -%:undef USE_SMARTCARD >> -#endif >> -]) >> - >> AC_OUTPUT > > great! > >> diff --git a/python_modules/demarshal.py b/python_modules/demarshal.py >> index da87d44..9377869 100644 >> --- a/python_modules/demarshal.py >> +++ b/python_modules/demarshal.py >> @@ -1042,7 +1042,7 @@ def write_msg_parser(writer, message): >> msg_sizeof = message.sizeof() >> >> want_mem_size = (len(message.members) != 1 or >> message.members[0].is_fixed_nw_size() >> - or not message.members[0].is_array()) >> + or not (message.members[0].is_array() and >> message.has_attr("nocopy"))) >> >> writer.newline() >> if message.has_attr("ifdef"): > > Looking at write_msg_parser and write_validate_container why this is > not just > > want_mem_size = not message.has_attr("nocopy") > > ? I tried and just fix parse_msgc_smartcard_reader_add, as expected. > Confirmed it works as well. Thanks for the pointer. >> diff --git a/spice.proto b/spice.proto >> index 6f873a2..632f798 100644 >> --- a/spice.proto >> +++ b/spice.proto >> @@ -1423,9 +1423,9 @@ channel SmartcardChannel : BaseChannel { >> } @ctype(VSCMsgATR) atr = 101; >> >> message { >> - int8 reader_name[] @zero_terminated @nonnull; >> + int8 name[] @zero_terminated @nonnull; > > fine > >> } @ctype(VSCMsgReaderAdd) reader_add = 101; >> -} @ifdef(USE_SMARTCARD); >> +} @ifdef(FIXME_SERVER_SMARTCARD) //@ifdef(USE_SMARTCARD); >> > > Fine (beside the missing ";") but I would add some comments here (before the @ifdef like maybe?) > > /* The protocol specification for SmartcardChannel is broken and not > * working: > * - different messages have the same ID causing some message definition > * to be ignored; > * - the structure of the resulting message is not the same used by > * the code so would be a change in the protocol. > * This specification never worked. > */ > Done. -- Eduardo de Barros Lima (Etrunko) Software Engineer - RedHat etrunko@xxxxxxxxxx _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel