receipt rework and discovery rework
This commit is contained in:
@@ -10,6 +10,9 @@ pub fn encode_node_info(
|
||||
let mut ps_builder = builder.reborrow().init_outbound_protocols();
|
||||
encode_protocol_set(&node_info.outbound_protocols, &mut ps_builder)?;
|
||||
|
||||
builder.set_min_version(node_info.min_version);
|
||||
builder.set_max_version(node_info.max_version);
|
||||
|
||||
let mut didl_builder = builder.reborrow().init_dial_info_detail_list(
|
||||
node_info
|
||||
.dial_info_detail_list
|
||||
@@ -51,6 +54,9 @@ pub fn decode_node_info(
|
||||
.map_err(map_error_capnp_error!())?,
|
||||
)?;
|
||||
|
||||
let min_version = reader.reborrow().get_min_version();
|
||||
let max_version = reader.reborrow().get_max_version();
|
||||
|
||||
let didl_reader = reader
|
||||
.reborrow()
|
||||
.get_dial_info_detail_list()
|
||||
@@ -84,6 +90,8 @@ pub fn decode_node_info(
|
||||
Ok(NodeInfo {
|
||||
network_class,
|
||||
outbound_protocols,
|
||||
min_version,
|
||||
max_version,
|
||||
dial_info_detail_list,
|
||||
relay_peer_info,
|
||||
})
|
||||
|
@@ -6,28 +6,24 @@ pub fn encode_signal_info(
|
||||
builder: &mut veilid_capnp::operation_signal::Builder,
|
||||
) -> Result<(), RPCError> {
|
||||
match signal_info {
|
||||
SignalInfo::HolePunch { receipt, peer_info } => {
|
||||
SignalInfo::HolePunch {
|
||||
receipt_nonce,
|
||||
peer_info,
|
||||
} => {
|
||||
let mut hp_builder = builder.reborrow().init_hole_punch();
|
||||
let rcpt_builder =
|
||||
hp_builder
|
||||
.reborrow()
|
||||
.init_receipt(receipt.len().try_into().map_err(map_error_protocol!(
|
||||
"invalid receipt length in hole punch signal info"
|
||||
))?);
|
||||
rcpt_builder.copy_from_slice(receipt.as_slice());
|
||||
let mut rn_builder = hp_builder.reborrow().init_receipt_nonce();
|
||||
encode_nonce(receipt_nonce, &mut rn_builder);
|
||||
let mut pi_builder = hp_builder.init_peer_info();
|
||||
encode_peer_info(peer_info, &mut pi_builder)?;
|
||||
}
|
||||
SignalInfo::ReverseConnect { receipt, peer_info } => {
|
||||
let mut hp_builder = builder.reborrow().init_reverse_connect();
|
||||
let rcpt_builder =
|
||||
hp_builder
|
||||
.reborrow()
|
||||
.init_receipt(receipt.len().try_into().map_err(map_error_protocol!(
|
||||
"invalid receipt length in reverse connect signal info"
|
||||
))?);
|
||||
rcpt_builder.copy_from_slice(receipt.as_slice());
|
||||
let mut pi_builder = hp_builder.init_peer_info();
|
||||
SignalInfo::ReverseConnect {
|
||||
receipt_nonce,
|
||||
peer_info,
|
||||
} => {
|
||||
let mut rc_builder = builder.reborrow().init_reverse_connect();
|
||||
let mut rn_builder = rc_builder.reborrow().init_receipt_nonce();
|
||||
encode_nonce(receipt_nonce, &mut rn_builder);
|
||||
let mut pi_builder = rc_builder.init_peer_info();
|
||||
encode_peer_info(peer_info, &mut pi_builder)?;
|
||||
}
|
||||
}
|
||||
@@ -49,18 +45,17 @@ pub fn decode_signal_info(
|
||||
Ok(r) => r,
|
||||
Err(_) => return Err(rpc_error_internal("invalid hole punch")),
|
||||
};
|
||||
let receipt = r
|
||||
.get_receipt()
|
||||
.map_err(map_error_protocol!(
|
||||
"invalid receipt in hole punch signal info"
|
||||
))?
|
||||
.to_vec();
|
||||
let receipt_nonce =
|
||||
decode_nonce(&r.get_receipt_nonce().map_err(map_error_capnp_error!())?);
|
||||
let pi_reader = r.get_peer_info().map_err(map_error_protocol!(
|
||||
"invalid peer info in hole punch signal info"
|
||||
))?;
|
||||
let peer_info = decode_peer_info(&pi_reader, true)?;
|
||||
|
||||
SignalInfo::HolePunch { receipt, peer_info }
|
||||
SignalInfo::HolePunch {
|
||||
receipt_nonce,
|
||||
peer_info,
|
||||
}
|
||||
}
|
||||
veilid_capnp::operation_signal::ReverseConnect(r) => {
|
||||
// Extract reverse connect reader
|
||||
@@ -68,18 +63,17 @@ pub fn decode_signal_info(
|
||||
Ok(r) => r,
|
||||
Err(_) => return Err(rpc_error_internal("invalid reverse connect")),
|
||||
};
|
||||
let receipt = r
|
||||
.get_receipt()
|
||||
.map_err(map_error_protocol!(
|
||||
"invalid receipt in reverse connect signal info"
|
||||
))?
|
||||
.to_vec();
|
||||
let receipt_nonce =
|
||||
decode_nonce(&r.get_receipt_nonce().map_err(map_error_capnp_error!())?);
|
||||
let pi_reader = r.get_peer_info().map_err(map_error_protocol!(
|
||||
"invalid peer info in reverse connect signal info"
|
||||
))?;
|
||||
let peer_info = decode_peer_info(&pi_reader, true)?;
|
||||
|
||||
SignalInfo::ReverseConnect { receipt, peer_info }
|
||||
SignalInfo::ReverseConnect {
|
||||
receipt_nonce,
|
||||
peer_info,
|
||||
}
|
||||
}
|
||||
},
|
||||
)
|
||||
|
Reference in New Issue
Block a user