Add NetQuery::add_verification_prefix.
This commit is contained in:
parent
25d1bf6466
commit
d5ac68c067
@ -171,4 +171,15 @@ StringBuilder &operator<<(StringBuilder &stream, const NetQueryPtr &net_query_pt
|
|||||||
return stream << *net_query_ptr;
|
return stream << *net_query_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NetQuery::add_verification_prefix(const string &prefix) {
|
||||||
|
CHECK(is_ready());
|
||||||
|
CHECK(is_error());
|
||||||
|
CHECK(!query_.empty());
|
||||||
|
BufferSlice query(prefix.size() + query_.size() - verification_prefix_length_);
|
||||||
|
query.as_mutable_slice().copy_from(prefix);
|
||||||
|
query.as_mutable_slice().substr(prefix.size()).copy_from(query_.as_slice().substr(verification_prefix_length_));
|
||||||
|
verification_prefix_length_ = narrow_cast<int32>(prefix.size());
|
||||||
|
query_ = std::move(query);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace td
|
} // namespace td
|
||||||
|
@ -238,6 +238,8 @@ class NetQuery final : public TsListNode<NetQueryDebug> {
|
|||||||
return in_sequence_dispacher_;
|
return in_sequence_dispacher_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void add_verification_prefix(const string &prefix);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
State state_ = State::Empty;
|
State state_ = State::Empty;
|
||||||
Type type_ = Type::Common;
|
Type type_ = Type::Common;
|
||||||
@ -251,6 +253,7 @@ class NetQuery final : public TsListNode<NetQueryDebug> {
|
|||||||
BufferSlice query_;
|
BufferSlice query_;
|
||||||
BufferSlice answer_;
|
BufferSlice answer_;
|
||||||
int32 tl_constructor_ = 0;
|
int32 tl_constructor_ = 0;
|
||||||
|
int32 verification_prefix_length_ = 0;
|
||||||
|
|
||||||
vector<NetQueryRef> invoke_after_;
|
vector<NetQueryRef> invoke_after_;
|
||||||
vector<uint64> chain_ids_;
|
vector<uint64> chain_ids_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user