From bc255f923687ff2f98cc0216bec6ca74d411b8a4 Mon Sep 17 00:00:00 2001 From: Axel Viala Date: Thu, 20 Jul 2023 17:53:06 +0200 Subject: [PATCH] Export replica/slave host/port for reporting Followup of https://github.com/blackbeam/rust_mysql_common/pull/96 it's possible to inspect them with show slave hosts/ show replicas --- src/conn/mod.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/conn/mod.rs b/src/conn/mod.rs index 7289d21e..98fd6842 100644 --- a/src/conn/mod.rs +++ b/src/conn/mod.rs @@ -1169,12 +1169,19 @@ impl Conn { Ok(self) } - async fn register_as_slave(&mut self, server_id: u32) -> Result<()> { + async fn register_as_slave<'a>( + &mut self, + server_id: u32, + hostname: impl Into>, + port: u16, + ) -> Result<()> { use mysql_common::packets::ComRegisterSlave; + let cmd_register_slave = ComRegisterSlave::new(server_id) + .with_hostname(hostname) + .with_port(port); self.query_drop("SET @master_binlog_checksum='ALL'").await?; - self.write_command(&ComRegisterSlave::new(server_id)) - .await?; + self.write_command(&cmd_register_slave).await?; // Server will respond with OK. self.read_packet().await?; @@ -1183,7 +1190,8 @@ impl Conn { } async fn request_binlog(&mut self, request: BinlogRequest<'_>) -> Result<()> { - self.register_as_slave(request.server_id()).await?; + self.register_as_slave(request.server_id(), request.hostname_raw(), request.port()) + .await?; self.write_command(&request.as_cmd()).await?; Ok(()) }