BUG: xmlrpc does the base64 encoding

This commit is contained in:
Andy Cedilnik 2005-03-09 18:06:26 -05:00
parent 83343c59c9
commit 630b6353cd

View File

@ -586,8 +586,6 @@ bool cmCTestSubmit::SubmitUsingXMLRPC(const cmStdString& localprefix,
} }
size_t fileSize = st.st_size; size_t fileSize = st.st_size;
size_t encodedSize = static_cast<size_t>(fileSize * 1.5); // Enough space for base64
FILE* fp = fopen(local_file.c_str(), "r"); FILE* fp = fopen(local_file.c_str(), "r");
if ( !fp ) if ( !fp )
{ {
@ -595,41 +593,20 @@ bool cmCTestSubmit::SubmitUsingXMLRPC(const cmStdString& localprefix,
} }
unsigned char *fileBuffer = new unsigned char[fileSize]; unsigned char *fileBuffer = new unsigned char[fileSize];
unsigned char *encodedFileBuffer = new unsigned char[encodedSize];
if ( fread(fileBuffer, 1, fileSize, fp) != fileSize ) if ( fread(fileBuffer, 1, fileSize, fp) != fileSize )
{ {
delete [] fileBuffer; delete [] fileBuffer;
delete [] encodedFileBuffer;
fclose(fp); fclose(fp);
return false; return false;
} }
fclose(fp); fclose(fp);
size_t realEncodedSize = cmsysBase64_Encode(
fileBuffer, fileSize,
encodedFileBuffer, 1);
if ( realEncodedSize < fileSize )
{
return false;
}
std::cout << "Buffer: [";
std::cout.write(reinterpret_cast<const char*>(encodedFileBuffer),
realEncodedSize);
std::cout << "]" << std::endl;
/*
result = xmlrpc_client_call(&env, "http://betty.userland.com/RPC2",
"examples.getStateName",
"(i)", (xmlrpc_int32) cnt++);
*/
std::string remoteCommand = remoteprefix + ".put"; std::string remoteCommand = remoteprefix + ".put";
result = xmlrpc_client_call(&env, url.c_str(), result = xmlrpc_client_call(&env, url.c_str(),
remoteCommand.c_str(), remoteCommand.c_str(),
"(6)", encodedFileBuffer, (xmlrpc_int32) realEncodedSize); "(6)", fileBuffer, (xmlrpc_int32)fileSize );
delete [] fileBuffer; delete [] fileBuffer;
delete [] encodedFileBuffer;
if ( env.fault_occurred ) if ( env.fault_occurred )
{ {