- LOG_TIMING("start-remote-encode thread=%1", boost::this_thread::get_id ());
- Data e (socket->read_uint32 ());
- LOG_TIMING("start-remote-receive thread=%1", boost::this_thread::get_id ());
- socket->read (e.data().get(), e.size());
- LOG_TIMING("finish-remote-receive thread=%1", boost::this_thread::get_id ());
+ Socket::ReadDigestScope ds (socket);
+ LOG_TIMING("start-remote-encode thread=%1", thread_id ());
+ ArrayData e (socket->read_uint32 ());
+ LOG_TIMING("start-remote-receive thread=%1", thread_id ());
+ socket->read (e.data(), e.size());
+ LOG_TIMING("finish-remote-receive thread=%1", thread_id ());
+ if (!ds.check()) {
+ throw NetworkError ("Checksums do not match");
+ }