| 82 | } |
| 83 | |
| 84 | TUdpHttpRequest::TUdpHttpRequest(TAutoPtr<TRequest>& dataHolder, const TGUID& reqId, const TUdpAddress& peerAddr) |
| 85 | : TUdpHttpMessage(reqId, peerAddr) |
| 86 | { |
| 87 | TBlockChainIterator reqData(dataHolder->Data->GetChain()); |
| 88 | char pktType; |
| 89 | reqData.Read(&pktType, 1); |
| 90 | ReadArr(&reqData, &Url); |
| 91 | if (pktType == PKT_REQUEST) { |
| 92 | ReadYArr(&reqData, &Data); |
| 93 | } else if (pktType == PKT_LOCAL_REQUEST) { |
| 94 | ReadShm(dataHolder->Data->GetSharedData(), &Data); |
| 95 | } else { |
| 96 | Y_ASSERT(0); |
| 97 | } |
| 98 | |
| 99 | if (reqData.HasFailed()) { |
| 100 | Y_ASSERT(0 && "wrong format, memory corruption suspected"); |
| 101 | Url = ""; |
| 102 | Data.clear(); |
| 103 | } |
| 104 | } |
| 105 | |
| 106 | TUdpHttpResponse::TUdpHttpResponse(TAutoPtr<TRequest>& dataHolder, const TGUID& reqId, const TUdpAddress& peerAddr, EResult result, const char* error) |
| 107 | : TUdpHttpMessage(reqId, peerAddr) |