void RemoveBannedKeyOp::RunHook() { SetMessageType(DBProxyAccount); SetSubMessageType(MSGTYPE); mStatusList.clear(); // Stores the message data WriteBuffer requestData; requestData.AppendWString(mCommunityName); requestData.AppendString(mProductName); requestData.AppendShort(mKeyList.size()); for(std::list<std::string>::const_iterator anItr = mKeyList.begin(); anItr != mKeyList.end(); ++anItr) requestData.AppendString(*anItr,1); // Copy buffer into the class SetProxyRequestData(requestData.ToByteBuffer()); DBProxyOp::RunHook(); }
void ReportPatchStatusOp::RunHook() { SetMessageType(DBProxyPatchServer); SetSubMessageType(mMsgType); // Pack the message data WriteBuffer requestData; requestData.AppendString(mProductName); requestData.AppendString(mConfigName); requestData.AppendString(mFromVersion); requestData.AppendString(mToVersion); requestData.AppendString(mNetAddress); // patch url requestData.AppendByte(mPatchStatus); // Pack and call base class implementation SetProxyRequestData(requestData.ToByteBuffer()); if(mUDPSocket.get()==NULL) // just do TCP ServerRequest { DBProxyOp::RunHook(); return; } // Do UDP server request IPAddr anAddr = GetAddr(); if(!anAddr.IsValid()) { Finish(WS_ServerReq_NoServersSpecified); return; } Reset(); unsigned char aLengthFieldSize = GetLengthFieldSize(); SetLengthFieldSize(0); GetNextRequest(); SetLengthFieldSize(aLengthFieldSize); SendBytesToOpPtr anOp = new SendBytesToOp(mRequest, anAddr, mUDPSocket); anOp->Run(GetMode(),GetTimeout()); Finish(WS_Success); }
void UpdateVersionOp::RunHook() { SetMessageType(DBProxyMsgType::DBProxyPatchServer); SetSubMessageType(mMsgType); // Pack the message data WriteBuffer requestData; requestData.AppendString(mProductName); mVersionData->WriteToBuffer(requestData, VersionData::WriteFlag_AppendDescripURL | VersionData::WriteFlag_AppendState); // Pack and call base class implementation SetProxyRequestData(requestData.ToByteBuffer()); DBProxyOp::RunHook(); }
void QueryBannedKeyOp::RunHook() { SetMessageType(DBProxyAccount); SetSubMessageType(MSGTYPE); mKeyList.clear(); // Stores the message data WriteBuffer requestData; requestData.AppendWString(mCommunityName); requestData.AppendString(mProductName); // Copy buffer into the class SetProxyRequestData(requestData.ToByteBuffer()); DBProxyOp::RunHook(); }
void SPAuthCheckPrv::WriteCheckFile() { if(mGameSecondsBeforeNextCheck==1) // Remove file to force check next time { WONFile aFile(gSPAuthCheck_FileName); aFile.Remove(); return; } // Write new file try { FileWriter aWriter; if(!aWriter.Open(gSPAuthCheck_FileName)) return; WONFile aFile(gSPAuthCheck_FileName); WriteBuffer anEncrypt; anEncrypt.AppendString("magic"); anEncrypt.AppendLong(aFile.GetCreateTime()); // file creation time anEncrypt.AppendLong(mGameSecondsBeforeNextCheck); ByteBufferPtr aBuf = mEncryptKey.Encrypt(anEncrypt.data(),anEncrypt.length()); if(aBuf.get()==NULL) return; aWriter.WriteShort(aBuf->length()); aWriter.WriteBytes(aBuf->data(),aBuf->length()); } catch(FileWriterException&) { } }