diff --git a/libs/hbb_common/Cargo.toml b/libs/hbb_common/Cargo.toml index bc31223cc..000cbae96 100644 --- a/libs/hbb_common/Cargo.toml +++ b/libs/hbb_common/Cargo.toml @@ -7,7 +7,7 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -protobuf = "3.0.0-alpha.2" +protobuf = { version = "3.1.0", features = ["with-bytes"] } tokio = { version = "1.15", features = ["full"] } tokio-util = { version = "0.6", features = ["full"] } futures = "0.3" @@ -38,7 +38,7 @@ mac_address = "1.1" quic = [] [build-dependencies] -protobuf-codegen-pure = "3.0.0-alpha.2" +protobuf-codegen = { version = "3.1.0" } [target.'cfg(target_os = "windows")'.dependencies] winapi = { version = "0.3", features = ["winuser"] } diff --git a/libs/hbb_common/build.rs b/libs/hbb_common/build.rs index 99dacb7ec..5c1c6af22 100644 --- a/libs/hbb_common/build.rs +++ b/libs/hbb_common/build.rs @@ -1,6 +1,7 @@ fn main() { std::fs::create_dir_all("src/protos").unwrap(); - protobuf_codegen_pure::Codegen::new() + protobuf_codegen::Codegen::new() + .pure() .out_dir("src/protos") .inputs(&["protos/rendezvous.proto", "protos/message.proto"]) .include("protos") diff --git a/libs/hbb_common/src/fs.rs b/libs/hbb_common/src/fs.rs index 4512ce940..4880b4622 100644 --- a/libs/hbb_common/src/fs.rs +++ b/libs/hbb_common/src/fs.rs @@ -573,7 +573,7 @@ impl TransferJob { log::info!("file num truncated, ignoring"); } else { match r.union { - Some(file_transfer_send_confirm_request::Union::skip(s)) => { + Some(file_transfer_send_confirm_request::Union::Skip(s)) => { if s { log::debug!("skip file id:{}, file_num:{}", r.id, r.file_num); self.skip_current_file(); @@ -581,7 +581,7 @@ impl TransferJob { self.set_file_confirmed(true); } } - Some(file_transfer_send_confirm_request::Union::offset_blk(_offset)) => { + Some(file_transfer_send_confirm_request::Union::OffsetBlk(_offset)) => { self.set_file_confirmed(true); } _ => {} diff --git a/libs/hbb_common/src/lib.rs b/libs/hbb_common/src/lib.rs index 0a9dace0c..07c6a6868 100644 --- a/libs/hbb_common/src/lib.rs +++ b/libs/hbb_common/src/lib.rs @@ -1,8 +1,7 @@ pub mod compress; -#[path = "./protos/message.rs"] -pub mod message_proto; -#[path = "./protos/rendezvous.rs"] -pub mod rendezvous_proto; +pub mod protos; +pub use protos::message as message_proto; +pub use protos::rendezvous as rendezvous_proto; pub use bytes; pub use futures; pub use protobuf; diff --git a/libs/scrap/src/common/codec.rs b/libs/scrap/src/common/codec.rs index e06c0e29a..1d9deba68 100644 --- a/libs/scrap/src/common/codec.rs +++ b/libs/scrap/src/common/codec.rs @@ -251,11 +251,11 @@ impl Decoder { rgb: &mut Vec, ) -> ResultType { match frame { - video_frame::Union::vp9s(vp9s) => { + video_frame::Union::Vp9s(vp9s) => { Decoder::handle_vp9s_video_frame(&mut self.vpx, vp9s, rgb) } #[cfg(feature = "hwcodec")] - video_frame::Union::h264s(h264s) => { + video_frame::Union::H264s(h264s) => { if let Some(decoder) = &mut self.hw.h264 { Decoder::handle_hw_video_frame(decoder, h264s, rgb, &mut self.i420) } else { @@ -263,7 +263,7 @@ impl Decoder { } } #[cfg(feature = "hwcodec")] - video_frame::Union::h265s(h265s) => { + video_frame::Union::H265s(h265s) => { if let Some(decoder) = &mut self.hw.h265 { Decoder::handle_hw_video_frame(decoder, h265s, rgb, &mut self.i420) } else { diff --git a/src/client.rs b/src/client.rs index d63ce970c..33d966d2a 100644 --- a/src/client.rs +++ b/src/client.rs @@ -165,7 +165,7 @@ impl Client { for i in 1..=3 { log::info!("#{} punch attempt with {}, id: {}", i, my_addr, peer); let mut msg_out = RendezvousMessage::new(); - use hbb_common::protobuf::ProtobufEnum; + use hbb_common::protobuf::Enum; let nat_type = NatType::from_i32(my_nat_type).unwrap_or(NatType::UNKNOWN_NAT); msg_out.set_punch_hole_request(PunchHoleRequest { id: peer.to_owned(), @@ -179,7 +179,7 @@ impl Client { if let Some(Ok(bytes)) = socket.next_timeout(i * 6000).await { if let Ok(msg_in) = RendezvousMessage::parse_from_bytes(&bytes) { match msg_in.union { - Some(rendezvous_message::Union::punch_hole_response(ph)) => { + Some(rendezvous_message::Union::PunchHoleResponse(ph)) => { if ph.socket_addr.is_empty() { if !ph.other_failure.is_empty() { bail!(ph.other_failure); @@ -199,8 +199,8 @@ impl Client { } } } else { - peer_nat_type = ph.get_nat_type(); - is_local = ph.get_is_local(); + peer_nat_type = ph.nat_type(); + is_local = ph.is_local(); signed_id_pk = ph.pk; relay_server = ph.relay_server; peer_addr = AddrMangle::decode(&ph.socket_addr); @@ -208,13 +208,13 @@ impl Client { break; } } - Some(rendezvous_message::Union::relay_response(rr)) => { + Some(rendezvous_message::Union::RelayResponse(rr)) => { log::info!( "relay requested from peer, time used: {:?}, relay_server: {}", start.elapsed(), rr.relay_server ); - signed_id_pk = rr.get_pk().into(); + signed_id_pk = rr.pk().into(); let mut conn = Self::create_relay(peer, rr.uuid, rr.relay_server, key, conn_type) .await?; @@ -383,7 +383,7 @@ impl Client { Some(res) => { let bytes = res?; if let Ok(msg_in) = Message::parse_from_bytes(&bytes) { - if let Some(message::Union::signed_id(si)) = msg_in.union { + if let Some(message::Union::SignedId(si)) = msg_in.union { if let Ok((id, their_pk_b)) = decode_id_pk(&si.id, &sign_pk) { if id == peer_id { let their_pk_b = box_::PublicKey(their_pk_b); @@ -466,7 +466,7 @@ impl Client { socket.send(&msg_out).await?; if let Some(Ok(bytes)) = socket.next_timeout(CONNECT_TIMEOUT).await { if let Ok(msg_in) = RendezvousMessage::parse_from_bytes(&bytes) { - if let Some(rendezvous_message::Union::relay_response(rs)) = msg_in.union { + if let Some(rendezvous_message::Union::RelayResponse(rs)) = msg_in.union { if !rs.refuse_reason.is_empty() { bail!(rs.refuse_reason); } diff --git a/src/client/helper.rs b/src/client/helper.rs index ea12cb7ee..26dc37ba4 100644 --- a/src/client/helper.rs +++ b/src/client/helper.rs @@ -69,9 +69,9 @@ pub enum CodecFormat { impl From<&VideoFrame> for CodecFormat { fn from(it: &VideoFrame) -> Self { match it.union { - Some(video_frame::Union::vp9s(_)) => CodecFormat::VP9, - Some(video_frame::Union::h264s(_)) => CodecFormat::H264, - Some(video_frame::Union::h265s(_)) => CodecFormat::H265, + Some(video_frame::Union::Vp9s(_)) => CodecFormat::VP9, + Some(video_frame::Union::H264s(_)) => CodecFormat::H264, + Some(video_frame::Union::H265s(_)) => CodecFormat::H265, _ => CodecFormat::Unknown, } } diff --git a/src/clipboard_file.rs b/src/clipboard_file.rs index 39b2eb766..2f35065c9 100644 --- a/src/clipboard_file.rs +++ b/src/clipboard_file.rs @@ -17,8 +17,8 @@ pub fn clip_2_msg(clip: ClipbaordFile) -> Message { }); } Message { - union: Some(message::Union::cliprdr(Cliprdr { - union: Some(cliprdr::Union::format_list(CliprdrServerFormatList { + union: Some(message::Union::Cliprdr(Cliprdr { + union: Some(cliprdr::Union::FormatList(CliprdrServerFormatList { conn_id, formats, ..Default::default() @@ -29,8 +29,8 @@ pub fn clip_2_msg(clip: ClipbaordFile) -> Message { } } ClipbaordFile::ServerFormatListResponse { conn_id, msg_flags } => Message { - union: Some(message::Union::cliprdr(Cliprdr { - union: Some(cliprdr::Union::format_list_response( + union: Some(message::Union::Cliprdr(Cliprdr { + union: Some(cliprdr::Union::FormatListResponse( CliprdrServerFormatListResponse { conn_id, msg_flags, @@ -45,8 +45,8 @@ pub fn clip_2_msg(clip: ClipbaordFile) -> Message { conn_id, requested_format_id, } => Message { - union: Some(message::Union::cliprdr(Cliprdr { - union: Some(cliprdr::Union::format_data_request( + union: Some(message::Union::Cliprdr(Cliprdr { + union: Some(cliprdr::Union::FormatDataRequest( CliprdrServerFormatDataRequest { conn_id, requested_format_id, @@ -62,8 +62,8 @@ pub fn clip_2_msg(clip: ClipbaordFile) -> Message { msg_flags, format_data, } => Message { - union: Some(message::Union::cliprdr(Cliprdr { - union: Some(cliprdr::Union::format_data_response( + union: Some(message::Union::Cliprdr(Cliprdr { + union: Some(cliprdr::Union::FormatDataResponse( CliprdrServerFormatDataResponse { conn_id, msg_flags, @@ -86,8 +86,8 @@ pub fn clip_2_msg(clip: ClipbaordFile) -> Message { have_clip_data_id, clip_data_id, } => Message { - union: Some(message::Union::cliprdr(Cliprdr { - union: Some(cliprdr::Union::file_contents_request( + union: Some(message::Union::Cliprdr(Cliprdr { + union: Some(cliprdr::Union::FileContentsRequest( CliprdrFileContentsRequest { conn_id, stream_id, @@ -111,8 +111,8 @@ pub fn clip_2_msg(clip: ClipbaordFile) -> Message { stream_id, requested_data, } => Message { - union: Some(message::Union::cliprdr(Cliprdr { - union: Some(cliprdr::Union::file_contents_response( + union: Some(message::Union::Cliprdr(Cliprdr { + union: Some(cliprdr::Union::FileContentsResponse( CliprdrFileContentsResponse { conn_id, msg_flags, @@ -130,7 +130,7 @@ pub fn clip_2_msg(clip: ClipbaordFile) -> Message { pub fn msg_2_clip(msg: Cliprdr) -> Option { match msg.union { - Some(cliprdr::Union::format_list(data)) => { + Some(cliprdr::Union::FormatList(data)) => { let mut format_list: Vec<(i32, String)> = Vec::new(); for v in data.formats.iter() { format_list.push((v.id, v.format.clone())); @@ -140,26 +140,26 @@ pub fn msg_2_clip(msg: Cliprdr) -> Option { format_list, }) } - Some(cliprdr::Union::format_list_response(data)) => { + Some(cliprdr::Union::FormatListResponse(data)) => { Some(ClipbaordFile::ServerFormatListResponse { conn_id: data.conn_id, msg_flags: data.msg_flags, }) } - Some(cliprdr::Union::format_data_request(data)) => { + Some(cliprdr::Union::FormatDataRequest(data)) => { Some(ClipbaordFile::ServerFormatDataRequest { conn_id: data.conn_id, requested_format_id: data.requested_format_id, }) } - Some(cliprdr::Union::format_data_response(data)) => { + Some(cliprdr::Union::FormatDataResponse(data)) => { Some(ClipbaordFile::ServerFormatDataResponse { conn_id: data.conn_id, msg_flags: data.msg_flags, format_data: data.format_data, }) } - Some(cliprdr::Union::file_contents_request(data)) => { + Some(cliprdr::Union::FileContentsRequest(data)) => { Some(ClipbaordFile::FileContentsRequest { conn_id: data.conn_id, stream_id: data.stream_id, @@ -172,7 +172,7 @@ pub fn msg_2_clip(msg: Cliprdr) -> Option { clip_data_id: data.clip_data_id, }) } - Some(cliprdr::Union::file_contents_response(data)) => { + Some(cliprdr::Union::FileContentsResponse(data)) => { Some(ClipbaordFile::FileContentsResponse { conn_id: data.conn_id, msg_flags: data.msg_flags, diff --git a/src/common.rs b/src/common.rs index 667dd3e7e..9917a47f2 100644 --- a/src/common.rs +++ b/src/common.rs @@ -8,7 +8,7 @@ use hbb_common::{ get_version_number, log, message_proto::*, protobuf::Message as _, - protobuf::ProtobufEnum, + protobuf::Enum, rendezvous_proto::*, sleep, socket_client, tokio, ResultType, }; @@ -32,7 +32,7 @@ lazy_static::lazy_static! { #[inline] pub fn valid_for_numlock(evt: &KeyEvent) -> bool { - if let Some(key_event::Union::control_key(ck)) = evt.union { + if let Some(key_event::Union::ControlKey(ck)) = evt.union { let v = ck.value(); (v >= ControlKey::Numpad0.value() && v <= ControlKey::Numpad9.value()) || v == ControlKey::Decimal.value() @@ -284,7 +284,7 @@ async fn test_nat_type_() -> ResultType { socket.send(&msg_out).await?; if let Some(Ok(bytes)) = socket.next_timeout(RENDEZVOUS_TIMEOUT).await { if let Ok(msg_in) = RendezvousMessage::parse_from_bytes(&bytes) { - if let Some(rendezvous_message::Union::test_nat_response(tnr)) = msg_in.union { + if let Some(rendezvous_message::Union::TestNatResponse(tnr)) = msg_in.union { if i == 0 { port1 = tnr.port; } else { @@ -412,7 +412,7 @@ pub const POSTFIX_SERVICE: &'static str = "_service"; #[inline] pub fn is_control_key(evt: &KeyEvent, key: &ControlKey) -> bool { - if let Some(key_event::Union::control_key(ck)) = evt.union { + if let Some(key_event::Union::ControlKey(ck)) = evt.union { ck.value() == key.value() } else { false @@ -421,7 +421,7 @@ pub fn is_control_key(evt: &KeyEvent, key: &ControlKey) -> bool { #[inline] pub fn is_modifier(evt: &KeyEvent) -> bool { - if let Some(key_event::Union::control_key(ck)) = evt.union { + if let Some(key_event::Union::ControlKey(ck)) = evt.union { let v = ck.value(); v == ControlKey::Alt.value() || v == ControlKey::Shift.value() @@ -457,7 +457,7 @@ async fn _check_software_update() -> hbb_common::ResultType<()> { use hbb_common::protobuf::Message; if let Some(Ok((bytes, _))) = socket.next_timeout(30_000).await { if let Ok(msg_in) = RendezvousMessage::parse_from_bytes(&bytes) { - if let Some(rendezvous_message::Union::software_update(su)) = msg_in.union { + if let Some(rendezvous_message::Union::SoftwareUpdate(su)) = msg_in.union { let version = hbb_common::get_version_from_url(&su.url); if get_version_number(&version) > get_version_number(crate::VERSION) { *SOFTWARE_UPDATE_URL.lock().unwrap() = su.url; diff --git a/src/port_forward.rs b/src/port_forward.rs index afc65f236..36d011b37 100644 --- a/src/port_forward.rs +++ b/src/port_forward.rs @@ -120,21 +120,21 @@ async fn connect_and_login( Ok(Some(Ok(bytes))) => { let msg_in = Message::parse_from_bytes(&bytes)?; match msg_in.union { - Some(message::Union::hash(hash)) => { + Some(message::Union::Hash(hash)) => { interface.handle_hash(hash, &mut stream).await; } - Some(message::Union::login_response(lr)) => match lr.union { - Some(login_response::Union::error(err)) => { + Some(message::Union::LoginResponse(lr)) => match lr.union { + Some(login_response::Union::Error(err)) => { interface.handle_login_error(&err); return Ok(None); } - Some(login_response::Union::peer_info(pi)) => { + Some(login_response::Union::PeerInfo(pi)) => { interface.handle_peer_info(pi); break; } _ => {} } - Some(message::Union::test_delay(t)) => { + Some(message::Union::TestDelay(t)) => { interface.handle_test_delay(t, &mut stream).await; } _ => {} diff --git a/src/rendezvous_mediator.rs b/src/rendezvous_mediator.rs index a7f90b977..4381fbc74 100644 --- a/src/rendezvous_mediator.rs +++ b/src/rendezvous_mediator.rs @@ -157,7 +157,7 @@ impl RendezvousMediator { Some(Ok((bytes, _))) => { if let Ok(msg_in) = Message::parse_from_bytes(&bytes) { match msg_in.union { - Some(rendezvous_message::Union::register_peer_response(rpr)) => { + Some(rendezvous_message::Union::RegisterPeerResponse(rpr)) => { update_latency(); if rpr.request_pk { log::info!("request_pk received from {}", host); @@ -165,7 +165,7 @@ impl RendezvousMediator { continue; } } - Some(rendezvous_message::Union::register_pk_response(rpr)) => { + Some(rendezvous_message::Union::RegisterPkResponse(rpr)) => { update_latency(); match rpr.result.enum_value_or_default() { register_pk_response::Result::OK => { @@ -179,28 +179,28 @@ impl RendezvousMediator { _ => {} } } - Some(rendezvous_message::Union::punch_hole(ph)) => { + Some(rendezvous_message::Union::PunchHole(ph)) => { let rz = rz.clone(); let server = server.clone(); tokio::spawn(async move { allow_err!(rz.handle_punch_hole(ph, server).await); }); } - Some(rendezvous_message::Union::request_relay(rr)) => { + Some(rendezvous_message::Union::RequestRelay(rr)) => { let rz = rz.clone(); let server = server.clone(); tokio::spawn(async move { allow_err!(rz.handle_request_relay(rr, server).await); }); } - Some(rendezvous_message::Union::fetch_local_addr(fla)) => { + Some(rendezvous_message::Union::FetchLocalAddr(fla)) => { let rz = rz.clone(); let server = server.clone(); tokio::spawn(async move { allow_err!(rz.handle_intranet(fla, server).await); }); } - Some(rendezvous_message::Union::configure_update(cu)) => { + Some(rendezvous_message::Union::ConfigureUpdate(cu)) => { let v0 = Config::get_rendezvous_servers(); Config::set_option("rendezvous-servers".to_owned(), cu.rendezvous_servers.join(",")); Config::set_serial(cu.serial); @@ -367,7 +367,7 @@ impl RendezvousMediator { socket }; let mut msg_out = Message::new(); - use hbb_common::protobuf::ProtobufEnum; + use hbb_common::protobuf::Enum; let nat_type = NatType::from_i32(Config::get_nat_type()).unwrap_or(NatType::UNKNOWN_NAT); msg_out.set_punch_hole_sent(PunchHoleSent { socket_addr: ph.socket_addr, @@ -564,7 +564,7 @@ fn lan_discovery() -> ResultType<()> { if let Ok((len, addr)) = socket.recv_from(&mut buf) { if let Ok(msg_in) = Message::parse_from_bytes(&buf[0..len]) { match msg_in.union { - Some(rendezvous_message::Union::peer_discovery(p)) => { + Some(rendezvous_message::Union::PeerDiscovery(p)) => { if p.cmd == "ping" { let mut msg_out = Message::new(); let peer = PeerDiscovery { @@ -612,7 +612,7 @@ pub fn discover() -> ResultType<()> { if let Ok((len, _)) = socket.recv_from(&mut buf) { if let Ok(msg_in) = Message::parse_from_bytes(&buf[0..len]) { match msg_in.union { - Some(rendezvous_message::Union::peer_discovery(p)) => { + Some(rendezvous_message::Union::PeerDiscovery(p)) => { last_recv_time = Instant::now(); if p.cmd == "pong" { if p.mac != mac { diff --git a/src/server.rs b/src/server.rs index 3b68fc7dd..d437ce6d4 100644 --- a/src/server.rs +++ b/src/server.rs @@ -7,7 +7,7 @@ use hbb_common::{ config::{Config, Config2, CONNECT_TIMEOUT, RELAY_PORT}, log, message_proto::*, - protobuf::{Message as _, ProtobufEnum}, + protobuf::{Message as _, Enum}, rendezvous_proto::*, socket_client, sodiumoxide::crypto::{box_, secretbox, sign}, @@ -140,7 +140,7 @@ pub async fn create_tcp_connection( Some(res) => { let bytes = res?; if let Ok(msg_in) = Message::parse_from_bytes(&bytes) { - if let Some(message::Union::public_key(pk)) = msg_in.union { + if let Some(message::Union::PublicKey(pk)) = msg_in.union { if pk.asymmetric_value.len() == box_::PUBLICKEYBYTES { let nonce = box_::Nonce([0u8; box_::NONCEBYTES]); let mut pk_ = [0u8; box_::PUBLICKEYBYTES]; diff --git a/src/server/connection.rs b/src/server/connection.rs index 46c730092..e8344c4a7 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -91,7 +91,7 @@ impl Subscriber for ConnInner { #[inline] fn send(&mut self, msg: Arc) { match &msg.union { - Some(message::Union::video_frame(_)) => { + Some(message::Union::VideoFrame(_)) => { self.tx_video.as_mut().map(|tx| { allow_err!(tx.send((Instant::now(), msg))); }); @@ -354,7 +354,7 @@ impl Connection { if latency > 1000 { match &msg.union { - Some(message::Union::audio_frame(_)) => { + Some(message::Union::AudioFrame(_)) => { // log::info!("audio frame latency {}", instant.elapsed().as_secs_f32()); continue; } @@ -779,7 +779,7 @@ impl Connection { } async fn on_message(&mut self, msg: Message) -> bool { - if let Some(message::Union::login_request(lr)) = msg.union { + if let Some(message::Union::LoginRequest(lr)) = msg.union { if let Some(o) = lr.option.as_ref() { self.update_option(o).await; if let Some(q) = o.video_codec_state.clone().take() { @@ -804,7 +804,7 @@ impl Connection { return true; } match lr.union { - Some(login_request::Union::file_transfer(ft)) => { + Some(login_request::Union::FileTransfer(ft)) => { if !Config::get_option("enable-file-transfer").is_empty() { self.send_login_error("No permission of file transfer") .await; @@ -813,7 +813,7 @@ impl Connection { } self.file_transfer = Some((ft.dir, ft.show_hidden)); } - Some(login_request::Union::port_forward(mut pf)) => { + Some(login_request::Union::PortForward(mut pf)) => { if !Config::get_option("enable-tunnel").is_empty() { self.send_login_error("No permission of IP tunneling").await; sleep(1.).await; @@ -897,7 +897,7 @@ impl Connection { } } } - } else if let Some(message::Union::test_delay(t)) = msg.union { + } else if let Some(message::Union::TestDelay(t)) = msg.union { if t.from_client { let mut msg_out = Message::new(); msg_out.set_test_delay(t); @@ -912,7 +912,7 @@ impl Connection { } } else if self.authorized { match msg.union { - Some(message::Union::mouse_event(me)) => { + Some(message::Union::MouseEvent(me)) => { #[cfg(any(target_os = "android", target_os = "ios"))] if let Err(e) = call_main_service_mouse_input(me.mask, me.x, me.y) { log::debug!("call_main_service_mouse_input fail:{}", e); @@ -927,7 +927,7 @@ impl Connection { self.input_mouse(me, self.inner.id()); } } - Some(message::Union::key_event(me)) => { + Some(message::Union::KeyEvent(me)) => { #[cfg(not(any(target_os = "android", target_os = "ios")))] if self.keyboard { if is_enter(&me) { @@ -943,8 +943,8 @@ impl Connection { }; if is_press { match me.union { - Some(key_event::Union::unicode(_)) - | Some(key_event::Union::seq(_)) => { + Some(key_event::Union::Unicode(_)) + | Some(key_event::Union::Seq(_)) => { self.input_key(me, false); } _ => { @@ -956,14 +956,14 @@ impl Connection { } } } - Some(message::Union::clipboard(cb)) => + Some(message::Union::Clipboard(cb)) => { #[cfg(not(any(target_os = "android", target_os = "ios")))] if self.clipboard { update_clipboard(cb, None); } } - Some(message::Union::cliprdr(_clip)) => { + Some(message::Union::Cliprdr(_clip)) => { if self.file_transfer_enabled() { #[cfg(windows)] if let Some(clip) = msg_2_clip(_clip) { @@ -971,13 +971,13 @@ impl Connection { } } } - Some(message::Union::file_action(fa)) => { + Some(message::Union::FileAction(fa)) => { if self.file_transfer.is_some() { match fa.union { - Some(file_action::Union::read_dir(rd)) => { + Some(file_action::Union::ReadDir(rd)) => { self.read_dir(&rd.path, rd.include_hidden); } - Some(file_action::Union::all_files(f)) => { + Some(file_action::Union::AllFiles(f)) => { match fs::get_recursive_files(&f.path, f.include_hidden) { Err(err) => { self.send(fs::new_error(f.id, err, -1)).await; @@ -987,7 +987,7 @@ impl Connection { } } } - Some(file_action::Union::send(s)) => { + Some(file_action::Union::Send(s)) => { let id = s.id; let od = can_enable_overwrite_detection(get_version_number(VERSION)); @@ -1012,7 +1012,7 @@ impl Connection { } } } - Some(file_action::Union::receive(r)) => { + Some(file_action::Union::Receive(r)) => { self.send_fs(ipc::FS::NewWrite { path: r.path, id: r.id, @@ -1025,31 +1025,31 @@ impl Connection { .collect(), }); } - Some(file_action::Union::remove_dir(d)) => { + Some(file_action::Union::RemoveDir(d)) => { self.send_fs(ipc::FS::RemoveDir { path: d.path, id: d.id, recursive: d.recursive, }); } - Some(file_action::Union::remove_file(f)) => { + Some(file_action::Union::RemoveFile(f)) => { self.send_fs(ipc::FS::RemoveFile { path: f.path, id: f.id, file_num: f.file_num, }); } - Some(file_action::Union::create(c)) => { + Some(file_action::Union::Create(c)) => { self.send_fs(ipc::FS::CreateDir { path: c.path, id: c.id, }); } - Some(file_action::Union::cancel(c)) => { + Some(file_action::Union::Cancel(c)) => { self.send_fs(ipc::FS::CancelWrite { id: c.id }); fs::remove_job(c.id, &mut self.read_jobs); } - Some(file_action::Union::send_confirm(r)) => { + Some(file_action::Union::SendConfirm(r)) => { if let Some(job) = fs::get_job(r.id, &mut self.read_jobs) { job.confirm(&r); } @@ -1058,8 +1058,8 @@ impl Connection { } } } - Some(message::Union::file_response(fr)) => match fr.union { - Some(file_response::Union::block(block)) => { + Some(message::Union::FileResponse(fr)) => match fr.union { + Some(file_response::Union::Block(block)) => { self.send_fs(ipc::FS::WriteBlock { id: block.id, file_num: block.file_num, @@ -1067,13 +1067,13 @@ impl Connection { compressed: block.compressed, }); } - Some(file_response::Union::done(d)) => { + Some(file_response::Union::Done(d)) => { self.send_fs(ipc::FS::WriteDone { id: d.id, file_num: d.file_num, }); } - Some(file_response::Union::digest(d)) => self.send_fs(ipc::FS::CheckDigest { + Some(file_response::Union::Digest(d)) => self.send_fs(ipc::FS::CheckDigest { id: d.id, file_num: d.file_num, file_size: d.file_size, @@ -1082,22 +1082,22 @@ impl Connection { }), _ => {} }, - Some(message::Union::misc(misc)) => match misc.union { - Some(misc::Union::switch_display(s)) => { + Some(message::Union::Misc(misc)) => match misc.union { + Some(misc::Union::SwitchDisplay(s)) => { video_service::switch_display(s.display); } - Some(misc::Union::chat_message(c)) => { + Some(misc::Union::ChatMessage(c)) => { self.send_to_cm(ipc::Data::ChatMessage { text: c.text }); } - Some(misc::Union::option(o)) => { + Some(misc::Union::Option(o)) => { self.update_option(&o).await; } - Some(misc::Union::refresh_video(r)) => { + Some(misc::Union::RefreshVideo(r)) => { if r { video_service::refresh(); } } - Some(misc::Union::video_received(_)) => { + Some(misc::Union::VideoReceived(_)) => { video_service::notify_video_frame_feched( self.inner.id, Some(Instant::now().into()), diff --git a/src/server/input_service.rs b/src/server/input_service.rs index 8c5f3060b..3ec9c0f70 100644 --- a/src/server/input_service.rs +++ b/src/server/input_service.rs @@ -2,7 +2,7 @@ use super::*; #[cfg(target_os = "macos")] use dispatch::Queue; use enigo::{Enigo, Key, KeyboardControllable, MouseButton, MouseControllable}; -use hbb_common::{config::COMPRESS_LEVEL, protobuf::ProtobufEnumOrUnknown}; +use hbb_common::{config::COMPRESS_LEVEL, protobuf::EnumOrUnknown}; use std::{ convert::TryFrom, sync::atomic::{AtomicBool, Ordering}, @@ -68,7 +68,7 @@ impl Subscriber for MouseCursorSub { #[inline] fn send(&mut self, msg: Arc) { - if let Some(message::Union::cursor_data(cd)) = &msg.union { + if let Some(message::Union::CursorData(cd)) = &msg.union { if let Some(msg) = self.cached.get(&cd.id) { self.inner.send(msg.clone()); } else { @@ -299,12 +299,12 @@ fn fix_key_down_timeout(force: bool) { // e.g. current state of ctrl is down, but ctrl not in modifier, we should change ctrl to up, to make modifier state sync between remote and local #[inline] fn fix_modifier( - modifiers: &[ProtobufEnumOrUnknown], + modifiers: &[EnumOrUnknown], key0: ControlKey, key1: Key, en: &mut Enigo, ) { - if get_modifier_state(key1, en) && !modifiers.contains(&ProtobufEnumOrUnknown::new(key0)) { + if get_modifier_state(key1, en) && !modifiers.contains(&EnumOrUnknown::new(key0)) { #[cfg(windows)] if key0 == ControlKey::Control && get_modifier_state(Key::Alt, en) { // AltGr case @@ -315,7 +315,7 @@ fn fix_modifier( } } -fn fix_modifiers(modifiers: &[ProtobufEnumOrUnknown], en: &mut Enigo, ck: i32) { +fn fix_modifiers(modifiers: &[EnumOrUnknown], en: &mut Enigo, ck: i32) { if ck != ControlKey::Shift.value() { fix_modifier(modifiers, ControlKey::Shift, Key::Shift, en); } @@ -430,7 +430,7 @@ fn handle_mouse_(evt: &MouseEvent, conn: i32) { } pub fn is_enter(evt: &KeyEvent) -> bool { - if let Some(key_event::Union::control_key(ck)) = evt.union { + if let Some(key_event::Union::ControlKey(ck)) = evt.union { if ck.value() == ControlKey::Return.value() || ck.value() == ControlKey::NumpadEnter.value() { return true; @@ -598,7 +598,7 @@ fn handle_key_(evt: &KeyEvent) { #[cfg(windows)] let mut has_numlock = false; if evt.down { - let ck = if let Some(key_event::Union::control_key(ck)) = evt.union { + let ck = if let Some(key_event::Union::ControlKey(ck)) = evt.union { ck.value() } else { -1 @@ -653,7 +653,7 @@ fn handle_key_(evt: &KeyEvent) { } } match evt.union { - Some(key_event::Union::control_key(ck)) => { + Some(key_event::Union::ControlKey(ck)) => { if let Some(key) = KEY_MAP.get(&ck.value()) { #[cfg(windows)] if let Some(_) = NUMPAD_KEY_MAP.get(&ck.value()) { @@ -682,7 +682,7 @@ fn handle_key_(evt: &KeyEvent) { lock_screen(); } } - Some(key_event::Union::chr(chr)) => { + Some(key_event::Union::Chr(chr)) => { if evt.down { if en.key_down(get_layout(chr)).is_ok() { KEYS_DOWN @@ -708,12 +708,12 @@ fn handle_key_(evt: &KeyEvent) { .remove(&(chr as u64 + KEY_CHAR_START)); } } - Some(key_event::Union::unicode(chr)) => { + Some(key_event::Union::Unicode(chr)) => { if let Ok(chr) = char::try_from(chr) { en.key_sequence(&chr.to_string()); } } - Some(key_event::Union::seq(ref seq)) => { + Some(key_event::Union::Seq(ref seq)) => { en.key_sequence(&seq); } _ => {} diff --git a/src/ui.rs b/src/ui.rs index f0134aceb..a1f9093d0 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -1045,7 +1045,7 @@ async fn check_id( if let Some(Ok(bytes)) = socket.next_timeout(3_000).await { if let Ok(msg_in) = RendezvousMessage::parse_from_bytes(&bytes) { match msg_in.union { - Some(rendezvous_message::Union::register_pk_response(rpr)) => { + Some(rendezvous_message::Union::RegisterPkResponse(rpr)) => { match rpr.result.enum_value_or_default() { register_pk_response::Result::OK => { ok = true; diff --git a/src/ui/cm.rs b/src/ui/cm.rs index 90d066d62..c1acb6926 100644 --- a/src/ui/cm.rs +++ b/src/ui/cm.rs @@ -204,7 +204,7 @@ impl ConnectionManager { let mut req = FileTransferSendConfirmRequest { id, file_num, - union: Some(file_transfer_send_confirm_request::Union::offset_blk(0)), + union: Some(file_transfer_send_confirm_request::Union::OffsetBlk(0)), ..Default::default() }; let digest = FileTransferDigest { diff --git a/src/ui/remote.rs b/src/ui/remote.rs index f85e37d04..fc83a09a5 100644 --- a/src/ui/remote.rs +++ b/src/ui/remote.rs @@ -1067,7 +1067,7 @@ impl Handler { fn get_char(&mut self, name: String, code: i32) -> String { if let Some(key_event) = self.get_key_event(1, &name, code) { match key_event.union { - Some(key_event::Union::chr(chr)) => { + Some(key_event::Union::Chr(chr)) => { if let Some(chr) = std::char::from_u32(chr as _) { return chr.to_string(); } @@ -1810,9 +1810,9 @@ impl Remote { id, file_num, union: if need_override { - Some(file_transfer_send_confirm_request::Union::offset_blk(0)) + Some(file_transfer_send_confirm_request::Union::OffsetBlk(0)) } else { - Some(file_transfer_send_confirm_request::Union::skip(true)) + Some(file_transfer_send_confirm_request::Union::Skip(true)) }, ..Default::default() }); @@ -1828,9 +1828,9 @@ impl Remote { id, file_num, union: if need_override { - Some(file_transfer_send_confirm_request::Union::offset_blk(0)) + Some(file_transfer_send_confirm_request::Union::OffsetBlk(0)) } else { - Some(file_transfer_send_confirm_request::Union::skip(true)) + Some(file_transfer_send_confirm_request::Union::Skip(true)) }, ..Default::default() }); @@ -2017,7 +2017,7 @@ impl Remote { async fn handle_msg_from_peer(&mut self, data: &[u8], peer: &mut Stream) -> bool { if let Ok(msg_in) = Message::parse_from_bytes(&data) { match msg_in.union { - Some(message::Union::video_frame(vf)) => { + Some(message::Union::VideoFrame(vf)) => { if !self.first_frame { self.first_frame = true; self.handler.call2("closeSuccess", &make_args!()); @@ -2033,16 +2033,16 @@ impl Remote { }; self.video_sender.send(MediaData::VideoFrame(vf)).ok(); } - Some(message::Union::hash(hash)) => { + Some(message::Union::Hash(hash)) => { self.handler.handle_hash(hash, peer).await; } - Some(message::Union::login_response(lr)) => match lr.union { - Some(login_response::Union::error(err)) => { + Some(message::Union::LoginResponse(lr)) => match lr.union { + Some(login_response::Union::Error(err)) => { if !self.handler.handle_login_error(&err) { return false; } } - Some(login_response::Union::peer_info(pi)) => { + Some(login_response::Union::PeerInfo(pi)) => { self.handler.handle_peer_info(pi); self.check_clipboard_file_context(); if !(self.handler.is_file_transfer() @@ -2069,22 +2069,22 @@ impl Remote { } _ => {} }, - Some(message::Union::cursor_data(cd)) => { + Some(message::Union::CursorData(cd)) => { self.handler.set_cursor_data(cd); } - Some(message::Union::cursor_id(id)) => { + Some(message::Union::CursorId(id)) => { self.handler.set_cursor_id(id.to_string()); } - Some(message::Union::cursor_position(cp)) => { + Some(message::Union::CursorPosition(cp)) => { self.handler.set_cursor_position(cp); } - Some(message::Union::clipboard(cb)) => { + Some(message::Union::Clipboard(cb)) => { if !self.handler.lc.read().unwrap().disable_clipboard { update_clipboard(cb, Some(&self.old_clipboard)); } } #[cfg(windows)] - Some(message::Union::cliprdr(clip)) => { + Some(message::Union::Cliprdr(clip)) => { if !self.handler.lc.read().unwrap().disable_clipboard { if let Some(context) = &mut self.clipboard_file_context { if let Some(clip) = msg_2_clip(clip) { @@ -2093,9 +2093,9 @@ impl Remote { } } } - Some(message::Union::file_response(fr)) => { + Some(message::Union::FileResponse(fr)) => { match fr.union { - Some(file_response::Union::dir(fd)) => { + Some(file_response::Union::Dir(fd)) => { #[cfg(windows)] let entries = fd.entries.to_vec(); #[cfg(not(windows))] @@ -2118,7 +2118,7 @@ impl Remote { job.files = entries; } } - Some(file_response::Union::digest(digest)) => { + Some(file_response::Union::Digest(digest)) => { if digest.is_upload { if let Some(job) = fs::get_job(digest.id, &mut self.read_jobs) { if let Some(file) = job.files().get(digest.file_num as usize) { @@ -2129,9 +2129,9 @@ impl Remote { id: digest.id, file_num: digest.file_num, union: Some(if overwrite { - file_transfer_send_confirm_request::Union::offset_blk(0) + file_transfer_send_confirm_request::Union::OffsetBlk(0) } else { - file_transfer_send_confirm_request::Union::skip( + file_transfer_send_confirm_request::Union::Skip( true, ) }), @@ -2164,7 +2164,7 @@ impl Remote { let msg= new_send_confirm(FileTransferSendConfirmRequest { id: digest.id, file_num: digest.file_num, - union: Some(file_transfer_send_confirm_request::Union::skip(true)), + union: Some(file_transfer_send_confirm_request::Union::Skip(true)), ..Default::default() }); allow_err!(peer.send(&msg).await); @@ -2176,9 +2176,9 @@ impl Remote { id: digest.id, file_num: digest.file_num, union: Some(if overwrite { - file_transfer_send_confirm_request::Union::offset_blk(0) + file_transfer_send_confirm_request::Union::OffsetBlk(0) } else { - file_transfer_send_confirm_request::Union::skip(true) + file_transfer_send_confirm_request::Union::Skip(true) }), ..Default::default() }, @@ -2201,7 +2201,7 @@ impl Remote { FileTransferSendConfirmRequest { id: digest.id, file_num: digest.file_num, - union: Some(file_transfer_send_confirm_request::Union::offset_blk(0)), + union: Some(file_transfer_send_confirm_request::Union::OffsetBlk(0)), ..Default::default() }, ); @@ -2216,7 +2216,7 @@ impl Remote { } } } - Some(file_response::Union::block(block)) => { + Some(file_response::Union::Block(block)) => { log::info!( "file response block, file id:{}, file num: {}", block.id, @@ -2229,27 +2229,27 @@ impl Remote { self.update_jobs_status(); } } - Some(file_response::Union::done(d)) => { + Some(file_response::Union::Done(d)) => { if let Some(job) = fs::get_job(d.id, &mut self.write_jobs) { job.modify_time(); fs::remove_job(d.id, &mut self.write_jobs); } self.handle_job_status(d.id, d.file_num, None); } - Some(file_response::Union::error(e)) => { + Some(file_response::Union::Error(e)) => { self.handle_job_status(e.id, e.file_num, Some(e.error)); } _ => {} } } - Some(message::Union::misc(misc)) => match misc.union { - Some(misc::Union::audio_format(f)) => { + Some(message::Union::Misc(misc)) => match misc.union { + Some(misc::Union::AudioFormat(f)) => { self.audio_sender.send(MediaData::AudioFormat(f)).ok(); } - Some(misc::Union::chat_message(c)) => { + Some(misc::Union::ChatMessage(c)) => { self.handler.call("newMessage", &make_args!(c.text)); } - Some(misc::Union::permission_info(p)) => { + Some(misc::Union::PermissionInfo(p)) => { log::info!("Change permission {:?} -> {}", p.permission, p.enabled); match p.permission.enum_value_or_default() { Permission::Keyboard => { @@ -2277,7 +2277,7 @@ impl Remote { } } } - Some(misc::Union::switch_display(s)) => { + Some(misc::Union::SwitchDisplay(s)) => { self.handler.call("switchDisplay", &make_args!(s.display)); self.video_sender.send(MediaData::Reset).ok(); if s.width > 0 && s.height > 0 { @@ -2293,27 +2293,27 @@ impl Remote { self.handler.set_display(s.x, s.y, s.width, s.height); } } - Some(misc::Union::close_reason(c)) => { + Some(misc::Union::CloseReason(c)) => { self.handler.msgbox("error", "Connection Error", &c); return false; } - Some(misc::Union::back_notification(notification)) => { + Some(misc::Union::BackNotification(notification)) => { if !self.handle_back_notification(notification).await { return false; } } _ => {} }, - Some(message::Union::test_delay(t)) => { + Some(message::Union::TestDelay(t)) => { self.handler.handle_test_delay(t, peer).await; } - Some(message::Union::audio_frame(frame)) => { + Some(message::Union::AudioFrame(frame)) => { if !self.handler.lc.read().unwrap().disable_audio { self.audio_sender.send(MediaData::AudioFrame(frame)).ok(); } } - Some(message::Union::file_action(action)) => match action.union { - Some(file_action::Union::send_confirm(c)) => { + Some(message::Union::FileAction(action)) => match action.union { + Some(file_action::Union::SendConfirm(c)) => { if let Some(job) = fs::get_job(c.id, &mut self.read_jobs) { job.confirm(&c); } @@ -2328,13 +2328,13 @@ impl Remote { async fn handle_back_notification(&mut self, notification: BackNotification) -> bool { match notification.union { - Some(back_notification::Union::block_input_state(state)) => { + Some(back_notification::Union::BlockInputState(state)) => { self.handle_back_msg_block_input( state.enum_value_or(back_notification::BlockInputState::StateUnknown), ) .await; } - Some(back_notification::Union::privacy_mode_state(state)) => { + Some(back_notification::Union::PrivacyModeState(state)) => { if !self .handle_back_msg_privacy_mode( state.enum_value_or(back_notification::PrivacyModeState::StateUnknown),