diff --git a/checkin_notes b/checkin_notes index c1d2493946..0ed3a5e01a 100755 --- a/checkin_notes +++ b/checkin_notes @@ -18239,3 +18239,16 @@ David 9 Oct 2004 assimilator.C db_purge.C validator.C + +David 9 Oct 2004 + - When parsing a FILE_INFO, always copy the XML to "signed_xml". + Otherwise, when the core client tries to upload the file, + it sends an empty element. + + This fixes a problem in which all uploads fail if a project + uses the config option + + client/ + client_types.C,h + + diff --git a/client/client_types.C b/client/client_types.C index 9651e61911..5f766f08f8 100644 --- a/client/client_types.C +++ b/client/client_types.C @@ -501,9 +501,7 @@ int FILE_INFO::parse(MIOFILE& in, bool from_server) { } continue; } - if (from_server) { - strcat(signed_xml, buf); - } + strcat(signed_xml, buf); if (parse_str(buf, "", name, sizeof(name))) continue; else if (parse_str(buf, "", url.text, sizeof(url.text))) { urls.push_back(url); diff --git a/client/client_types.h b/client/client_types.h index b9c328832c..71a0317c45 100644 --- a/client/client_types.h +++ b/client/client_types.h @@ -80,6 +80,8 @@ public: char signed_xml[MAX_BLOB_LEN]; // if the file_info is signed (for uploadable files) // this is the text that is signed + // Otherwise it is the FILE_INFO's XML descriptor + // (without enclosing tags) char xml_signature[MAX_BLOB_LEN]; // ... and this is the signature char file_signature[MAX_BLOB_LEN];