node: Rename 'hello' message to 'initialize'
Signed-off-by: Alexis Sellier <alexis@radicle.xyz>
This commit is contained in:
parent
381080a5a5
commit
d3dd83447e
|
|
@ -755,7 +755,7 @@ where
|
||||||
fn handshake_messages(&self) -> [Message; 4] {
|
fn handshake_messages(&self) -> [Message; 4] {
|
||||||
let git = self.config.git_url.clone();
|
let git = self.config.git_url.clone();
|
||||||
[
|
[
|
||||||
Message::hello(
|
Message::init(
|
||||||
self.node_id(),
|
self.node_id(),
|
||||||
self.timestamp(),
|
self.timestamp(),
|
||||||
self.config.listen.clone(),
|
self.config.listen.clone(),
|
||||||
|
|
@ -790,7 +790,6 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
fn fetch(&mut self, proj_id: &Id, remote: &Url) -> Vec<RefUpdate> {
|
fn fetch(&mut self, proj_id: &Id, remote: &Url) -> Vec<RefUpdate> {
|
||||||
// TODO: Verify refs before adding them to storage.
|
|
||||||
let mut repo = self.storage.repository(proj_id).unwrap();
|
let mut repo = self.storage.repository(proj_id).unwrap();
|
||||||
let mut path = remote.path.clone();
|
let mut path = remote.path.clone();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ pub struct Hostname(String);
|
||||||
#[repr(u16)]
|
#[repr(u16)]
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum MessageType {
|
pub enum MessageType {
|
||||||
Hello = 0,
|
Initialize = 0,
|
||||||
NodeAnnouncement = 2,
|
NodeAnnouncement = 2,
|
||||||
InventoryAnnouncement = 4,
|
InventoryAnnouncement = 4,
|
||||||
RefsAnnouncement = 6,
|
RefsAnnouncement = 6,
|
||||||
|
|
@ -48,7 +48,7 @@ impl TryFrom<u16> for MessageType {
|
||||||
|
|
||||||
fn try_from(other: u16) -> Result<Self, Self::Error> {
|
fn try_from(other: u16) -> Result<Self, Self::Error> {
|
||||||
match other {
|
match other {
|
||||||
0 => Ok(MessageType::Hello),
|
0 => Ok(MessageType::Initialize),
|
||||||
2 => Ok(MessageType::NodeAnnouncement),
|
2 => Ok(MessageType::NodeAnnouncement),
|
||||||
4 => Ok(MessageType::InventoryAnnouncement),
|
4 => Ok(MessageType::InventoryAnnouncement),
|
||||||
6 => Ok(MessageType::RefsAnnouncement),
|
6 => Ok(MessageType::RefsAnnouncement),
|
||||||
|
|
@ -337,8 +337,8 @@ impl wire::Decode for InventoryAnnouncement {
|
||||||
/// These are the messages peers send to each other.
|
/// These are the messages peers send to each other.
|
||||||
#[derive(Clone, PartialEq, Eq)]
|
#[derive(Clone, PartialEq, Eq)]
|
||||||
pub enum Message {
|
pub enum Message {
|
||||||
/// Say hello to a peer. This is the first message sent to a peer after connection.
|
/// The first message sent to a peer after connection.
|
||||||
Hello {
|
Initialize {
|
||||||
// TODO: This is currently untrusted.
|
// TODO: This is currently untrusted.
|
||||||
id: NodeId,
|
id: NodeId,
|
||||||
timestamp: Timestamp,
|
timestamp: Timestamp,
|
||||||
|
|
@ -384,8 +384,8 @@ pub enum Message {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Message {
|
impl Message {
|
||||||
pub fn hello(id: NodeId, timestamp: Timestamp, addrs: Vec<Address>, git: git::Url) -> Self {
|
pub fn init(id: NodeId, timestamp: Timestamp, addrs: Vec<Address>, git: git::Url) -> Self {
|
||||||
Self::Hello {
|
Self::Initialize {
|
||||||
id,
|
id,
|
||||||
timestamp,
|
timestamp,
|
||||||
version: PROTOCOL_VERSION,
|
version: PROTOCOL_VERSION,
|
||||||
|
|
@ -428,7 +428,7 @@ impl Message {
|
||||||
|
|
||||||
pub fn type_id(&self) -> u16 {
|
pub fn type_id(&self) -> u16 {
|
||||||
match self {
|
match self {
|
||||||
Self::Hello { .. } => MessageType::Hello,
|
Self::Initialize { .. } => MessageType::Initialize,
|
||||||
Self::Subscribe { .. } => MessageType::Subscribe,
|
Self::Subscribe { .. } => MessageType::Subscribe,
|
||||||
Self::NodeAnnouncement { .. } => MessageType::NodeAnnouncement,
|
Self::NodeAnnouncement { .. } => MessageType::NodeAnnouncement,
|
||||||
Self::InventoryAnnouncement { .. } => MessageType::InventoryAnnouncement,
|
Self::InventoryAnnouncement { .. } => MessageType::InventoryAnnouncement,
|
||||||
|
|
@ -441,7 +441,7 @@ impl Message {
|
||||||
impl fmt::Debug for Message {
|
impl fmt::Debug for Message {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
match self {
|
match self {
|
||||||
Self::Hello { id, .. } => write!(f, "Hello({})", id),
|
Self::Initialize { id, .. } => write!(f, "Initialize({})", id),
|
||||||
Self::Subscribe(Subscribe { since, until, .. }) => {
|
Self::Subscribe(Subscribe { since, until, .. }) => {
|
||||||
write!(f, "Subscribe({}..{})", since, until)
|
write!(f, "Subscribe({}..{})", since, until)
|
||||||
}
|
}
|
||||||
|
|
@ -477,7 +477,7 @@ impl wire::Encode for Message {
|
||||||
let mut n = self.type_id().encode(writer)?;
|
let mut n = self.type_id().encode(writer)?;
|
||||||
|
|
||||||
match self {
|
match self {
|
||||||
Self::Hello {
|
Self::Initialize {
|
||||||
id,
|
id,
|
||||||
timestamp,
|
timestamp,
|
||||||
version,
|
version,
|
||||||
|
|
@ -536,14 +536,14 @@ impl wire::Decode for Message {
|
||||||
let type_id = reader.read_u16::<NetworkEndian>()?;
|
let type_id = reader.read_u16::<NetworkEndian>()?;
|
||||||
|
|
||||||
match MessageType::try_from(type_id) {
|
match MessageType::try_from(type_id) {
|
||||||
Ok(MessageType::Hello) => {
|
Ok(MessageType::Initialize) => {
|
||||||
let id = NodeId::decode(reader)?;
|
let id = NodeId::decode(reader)?;
|
||||||
let timestamp = Timestamp::decode(reader)?;
|
let timestamp = Timestamp::decode(reader)?;
|
||||||
let version = u32::decode(reader)?;
|
let version = u32::decode(reader)?;
|
||||||
let addrs = Vec::<Address>::decode(reader)?;
|
let addrs = Vec::<Address>::decode(reader)?;
|
||||||
let git = git::Url::decode(reader)?;
|
let git = git::Url::decode(reader)?;
|
||||||
|
|
||||||
Ok(Self::Hello {
|
Ok(Self::Initialize {
|
||||||
id,
|
id,
|
||||||
timestamp,
|
timestamp,
|
||||||
version,
|
version,
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ impl Peer {
|
||||||
match (&self.state, envelope.msg) {
|
match (&self.state, envelope.msg) {
|
||||||
(
|
(
|
||||||
PeerState::Initial,
|
PeerState::Initial,
|
||||||
Message::Hello {
|
Message::Initialize {
|
||||||
id,
|
id,
|
||||||
timestamp,
|
timestamp,
|
||||||
version,
|
version,
|
||||||
|
|
@ -132,7 +132,7 @@ impl Peer {
|
||||||
return Err(PeerError::WrongVersion(version));
|
return Err(PeerError::WrongVersion(version));
|
||||||
}
|
}
|
||||||
// Nb. This is a very primitive handshake. Eventually we should have anyhow
|
// Nb. This is a very primitive handshake. Eventually we should have anyhow
|
||||||
// extra "acknowledgment" message sent when the `Hello` is well received.
|
// extra "acknowledgment" message sent when the `Initialize` is well received.
|
||||||
if self.link.is_inbound() {
|
if self.link.is_inbound() {
|
||||||
ctx.write_all(self.addr, ctx.handshake_messages());
|
ctx.write_all(self.addr, ctx.handshake_messages());
|
||||||
}
|
}
|
||||||
|
|
@ -236,7 +236,7 @@ impl Peer {
|
||||||
(PeerState::Negotiated { .. }, Message::Subscribe(subscribe)) => {
|
(PeerState::Negotiated { .. }, Message::Subscribe(subscribe)) => {
|
||||||
self.subscribe = Some(subscribe);
|
self.subscribe = Some(subscribe);
|
||||||
}
|
}
|
||||||
(PeerState::Negotiated { .. }, Message::Hello { .. }) => {
|
(PeerState::Negotiated { .. }, Message::Initialize { .. }) => {
|
||||||
debug!(
|
debug!(
|
||||||
"Disconnecting peer {} for sending us a redundant handshake message",
|
"Disconnecting peer {} for sending us a redundant handshake message",
|
||||||
self.ip()
|
self.ip()
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@ where
|
||||||
self.protocol.connected(remote, &local, Link::Inbound);
|
self.protocol.connected(remote, &local, Link::Inbound);
|
||||||
self.receive(
|
self.receive(
|
||||||
&remote,
|
&remote,
|
||||||
Message::hello(
|
Message::init(
|
||||||
peer.node_id(),
|
peer.node_id(),
|
||||||
self.local_time().as_secs(),
|
self.local_time().as_secs(),
|
||||||
vec![Address::from(remote)],
|
vec![Address::from(remote)],
|
||||||
|
|
@ -153,8 +153,8 @@ where
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut msgs = self.messages(&remote);
|
let mut msgs = self.messages(&remote);
|
||||||
msgs.find(|m| matches!(m, Message::Hello { .. }))
|
msgs.find(|m| matches!(m, Message::Initialize { .. }))
|
||||||
.expect("`hello` is sent");
|
.expect("`initialize` is sent");
|
||||||
msgs.find(|m| matches!(m, Message::InventoryAnnouncement { .. }))
|
msgs.find(|m| matches!(m, Message::InventoryAnnouncement { .. }))
|
||||||
.expect("`inventory-announcement` is sent");
|
.expect("`inventory-announcement` is sent");
|
||||||
}
|
}
|
||||||
|
|
@ -168,15 +168,15 @@ where
|
||||||
.connected(remote, &self.local_addr, Link::Outbound);
|
.connected(remote, &self.local_addr, Link::Outbound);
|
||||||
|
|
||||||
let mut msgs = self.messages(&remote);
|
let mut msgs = self.messages(&remote);
|
||||||
msgs.find(|m| matches!(m, Message::Hello { .. }))
|
msgs.find(|m| matches!(m, Message::Initialize { .. }))
|
||||||
.expect("`hello` is sent");
|
.expect("`initialize` is sent");
|
||||||
msgs.find(|m| matches!(m, Message::InventoryAnnouncement { .. }))
|
msgs.find(|m| matches!(m, Message::InventoryAnnouncement { .. }))
|
||||||
.expect("`inventory-announcement` is sent");
|
.expect("`inventory-announcement` is sent");
|
||||||
|
|
||||||
let git = peer.config().git_url.clone();
|
let git = peer.config().git_url.clone();
|
||||||
self.receive(
|
self.receive(
|
||||||
&remote,
|
&remote,
|
||||||
Message::hello(
|
Message::init(
|
||||||
peer.node_id(),
|
peer.node_id(),
|
||||||
self.local_time().as_secs(),
|
self.local_time().as_secs(),
|
||||||
peer.config().listen.clone(),
|
peer.config().listen.clone(),
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ fn test_handshake_invalid_timestamp() {
|
||||||
alice.connected(bob.addr(), &local, Link::Inbound);
|
alice.connected(bob.addr(), &local, Link::Inbound);
|
||||||
alice.receive(
|
alice.receive(
|
||||||
&bob.addr(),
|
&bob.addr(),
|
||||||
Message::hello(
|
Message::init(
|
||||||
bob.node_id(),
|
bob.node_id(),
|
||||||
alice.timestamp() - time_delta,
|
alice.timestamp() - time_delta,
|
||||||
vec![],
|
vec![],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue