int Process(int pos) { Payload &payload = payloadBuffer[pos]; MultipartFormDataEncoder postdata; AddSystemInfo(postdata); AddGameInfo(postdata); AddConfigInfo(postdata); AddGameplayInfo(postdata); switch (payload.type) { case RequestType::MESSAGE: postdata.Add("message", payload.string1); postdata.Add("value", payload.string2); // We tend to get corrupted data, this acts as a very primitive verification check. postdata.Add("verify", payload.string1 + payload.string2); payload.string1.clear(); payload.string2.clear(); postdata.Finish(); SendReportRequest("/report/message", postdata.ToString(), postdata.GetMimeType()); break; case RequestType::COMPAT: postdata.Add("compat", payload.string1); // We tend to get corrupted data, this acts as a very primitive verification check. postdata.Add("verify", payload.string1); postdata.Add("graphics", StringFromFormat("%d", payload.int1)); postdata.Add("speed", StringFromFormat("%d", payload.int2)); postdata.Add("gameplay", StringFromFormat("%d", payload.int3)); AddScreenshotData(postdata, payload.string2); payload.string1.clear(); payload.string2.clear(); postdata.Finish(); SendReportRequest("/report/compat", postdata.ToString(), postdata.GetMimeType()); break; case RequestType::NONE: break; } payload.type = RequestType::NONE; return 0; }
// --------------------------------------------------------------------------- // CTransactionIDGenerator::BuildInputDataL // --------------------------------------------------------------------------- // HBufC8* CTransactionIDGenerator::BuildInputDataLC( TAny* aObject, TInt aObjectSize ) { const TInt KAmountOfRandomNbrsToFill = 10; //Size of the input data buffer. It contains the following items: // //item item's size //---- ----------- //iCounter sizeof( iCounter ) //aObject's state aObjectSize //checksum of this sizeof( TUint16 ) //clock info sizeof( TInt64 ) + sizeof( TUint ) //system info sizeof( TUint16 ) + sizeof( TUint8 ) //KAmountOfRandomNbrsToFill //random integer values KAmountOfRandomNbrsToFill * sizeof( TInt ) TInt dataSize = sizeof( iCounter ) + aObjectSize + sizeof( TUint16 ) + sizeof( TInt64 ) + sizeof( TUint ) + sizeof( TUint16 ) + sizeof( TUint8 ) + KAmountOfRandomNbrsToFill * sizeof( TInt ); HBufC8* buf = HBufC8::NewLC( dataSize ); TPtr8 ptr = buf->Des(); ptr.Append( reinterpret_cast<const TUint8*>( &iCounter ), sizeof( iCounter ) ); ptr.Append( reinterpret_cast<const TUint8*>( aObject ), aObjectSize ); ComputeChecksum( ptr, this, sizeof( this ) ); AddClockInfo( ptr ); AddSystemInfo( ptr ); TInt random = 0; TInt randomNumberSize = sizeof( random ); while ( ptr.Size() <= ( ptr.MaxSize() - randomNumberSize ) ) { random = Math::Rand( iSeed ); ptr.Append( reinterpret_cast<const TUint8*>( &random ), sizeof( random ) ); } return buf; }
int Process(int pos) { Payload &payload = payloadBuffer[pos]; UrlEncoder postdata; AddSystemInfo(postdata); AddGameInfo(postdata); AddConfigInfo(postdata); AddGameplayInfo(postdata); switch (payload.type) { case MESSAGE: postdata.Add("message", payload.string1); postdata.Add("value", payload.string2); payload.string1.clear(); payload.string2.clear(); SendReportRequest("/report/message", postdata.ToString()); break; } return 0; }
int Process(int pos) { setCurrentThreadName("Report"); Payload &payload = payloadBuffer[pos]; Buffer output; MultipartFormDataEncoder postdata; AddSystemInfo(postdata); AddGameInfo(postdata); AddConfigInfo(postdata); AddGameplayInfo(postdata); switch (payload.type) { case RequestType::MESSAGE: // TODO: Add CRC? postdata.Add("message", payload.string1); postdata.Add("value", payload.string2); // We tend to get corrupted data, this acts as a very primitive verification check. postdata.Add("verify", payload.string1 + payload.string2); payload.string1.clear(); payload.string2.clear(); postdata.Finish(); serverWorking = true; if (!SendReportRequest("/report/message", postdata.ToString(), postdata.GetMimeType())) serverWorking = false; break; case RequestType::COMPAT: postdata.Add("compat", payload.string1); // We tend to get corrupted data, this acts as a very primitive verification check. postdata.Add("verify", payload.string1); postdata.Add("graphics", StringFromFormat("%d", payload.int1)); postdata.Add("speed", StringFromFormat("%d", payload.int2)); postdata.Add("gameplay", StringFromFormat("%d", payload.int3)); postdata.Add("crc", StringFromFormat("%08x", Core_GetPowerSaving() ? 0 : RetrieveCRC())); AddScreenshotData(postdata, payload.string2); payload.string1.clear(); payload.string2.clear(); postdata.Finish(); serverWorking = true; if (!SendReportRequest("/report/compat", postdata.ToString(), postdata.GetMimeType(), &output)) { serverWorking = false; } else { char res = 0; if (!output.empty()) { output.Take(1, &res); } if (res == 0) serverWorking = false; } break; case RequestType::NONE: break; } payload.type = RequestType::NONE; return 0; }