From 8ec5a47027a82e3b6d499ba381d2c1fd63e48240 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Tue, 4 Jun 2019 20:15:37 -0700 Subject: [PATCH] Add EntryWriter::write() stub for windows (#4546) --- core/src/blockstream.rs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/core/src/blockstream.rs b/core/src/blockstream.rs index c93e1c78d8..4480d5de0e 100644 --- a/core/src/blockstream.rs +++ b/core/src/blockstream.rs @@ -10,10 +10,6 @@ use serde_json::json; use solana_sdk::hash::Hash; use solana_sdk::pubkey::Pubkey; use std::cell::RefCell; -use std::io::prelude::*; -use std::net::Shutdown; -use std::os::unix::net::UnixStream; -use std::path::Path; pub trait EntryWriter: std::fmt::Debug { fn write(&self, payload: String) -> Result<()>; @@ -48,16 +44,29 @@ pub struct EntrySocket { socket: String, } -const MESSAGE_TERMINATOR: &str = "\n"; - impl EntryWriter for EntrySocket { + #[cfg(not(windows))] fn write(&self, payload: String) -> Result<()> { + use std::io::prelude::*; + use std::net::Shutdown; + use std::os::unix::net::UnixStream; + use std::path::Path; + + const MESSAGE_TERMINATOR: &str = "\n"; + let mut socket = UnixStream::connect(Path::new(&self.socket))?; socket.write_all(payload.as_bytes())?; socket.write_all(MESSAGE_TERMINATOR.as_bytes())?; socket.shutdown(Shutdown::Write)?; Ok(()) } + #[cfg(windows)] + fn write(&self, _payload: String) -> Result<()> { + Err(crate::result::Error::from(std::io::Error::new( + std::io::ErrorKind::Other, + "EntryWriter::write() not implemented for windows", + ))) + } } pub trait BlockstreamEvents {