More moves

This commit is contained in:
Steven Fackler 2016-09-11 16:29:28 -07:00
parent 52991387e5
commit ad6fa4d0b1
3 changed files with 13 additions and 26 deletions

View File

@ -167,11 +167,14 @@ pub fn cancel_query<T>(params: T,
let params = try!(params.into_connect_params().map_err(ConnectError::ConnectParams)); let params = try!(params.into_connect_params().map_err(ConnectError::ConnectParams));
let mut socket = try!(priv_io::initialize_stream(&params, tls)); let mut socket = try!(priv_io::initialize_stream(&params, tls));
try!(socket.write_message(&Frontend::CancelRequest { let message = frontend::CancelRequest {
code: message::CANCEL_CODE, process_id: data.process_id as i32,
process_id: data.process_id, secret_key: data.secret_key as i32,
secret_key: data.secret_key, };
})); let mut buf = vec![];
try!(frontend::Message::write(&message, &mut buf));
try!(socket.write_all(&buf));
try!(socket.flush()); try!(socket.flush());
Ok(()) Ok(())

View File

@ -7,9 +7,6 @@ use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt};
use types::Oid; use types::Oid;
use priv_io::StreamOptions; use priv_io::StreamOptions;
pub const CANCEL_CODE: u32 = 80877102;
pub const SSL_CODE: u32 = 80877103;
pub enum Backend { pub enum Backend {
AuthenticationCleartextPassword, AuthenticationCleartextPassword,
AuthenticationGSS, AuthenticationGSS,
@ -85,11 +82,6 @@ pub struct RowDescriptionEntry {
} }
pub enum Frontend<'a> { pub enum Frontend<'a> {
CancelRequest {
code: u32,
process_id: u32,
secret_key: u32,
},
CopyData { CopyData {
data: &'a [u8], data: &'a [u8],
}, },
@ -101,9 +93,6 @@ pub enum Frontend<'a> {
portal: &'a str, portal: &'a str,
max_rows: i32, max_rows: i32,
}, },
SslRequest {
code: u32,
},
Sync, Sync,
} }
@ -128,14 +117,9 @@ impl<W: Write> WriteMessage for W {
#[allow(cyclomatic_complexity)] #[allow(cyclomatic_complexity)]
fn write_message(&mut self, message: &Frontend) -> io::Result<()> { fn write_message(&mut self, message: &Frontend) -> io::Result<()> {
let mut buf = vec![]; let mut buf = vec![];
let mut ident = None; let ident;
match *message { match *message {
Frontend::CancelRequest { code, process_id, secret_key } => {
try!(buf.write_u32::<BigEndian>(code));
try!(buf.write_u32::<BigEndian>(process_id));
try!(buf.write_u32::<BigEndian>(secret_key));
}
Frontend::CopyData { data } => { Frontend::CopyData { data } => {
ident = Some(b'd'); ident = Some(b'd');
try!(buf.write_all(data)); try!(buf.write_all(data));
@ -150,7 +134,6 @@ impl<W: Write> WriteMessage for W {
try!(buf.write_cstr(portal)); try!(buf.write_cstr(portal));
try!(buf.write_i32::<BigEndian>(max_rows)); try!(buf.write_i32::<BigEndian>(max_rows));
} }
Frontend::SslRequest { code } => try!(buf.write_u32::<BigEndian>(code)),
Frontend::Sync => ident = Some(b'S'), Frontend::Sync => ident = Some(b'S'),
} }

View File

@ -11,13 +11,12 @@ use std::os::unix::net::UnixStream;
use std::os::unix::io::{AsRawFd, RawFd}; use std::os::unix::io::{AsRawFd, RawFd};
#[cfg(windows)] #[cfg(windows)]
use std::os::windows::io::{AsRawSocket, RawSocket}; use std::os::windows::io::{AsRawSocket, RawSocket};
use postgres_protocol::message::frontend;
use TlsMode; use TlsMode;
use params::{ConnectParams, ConnectTarget}; use params::{ConnectParams, ConnectTarget};
use error::ConnectError; use error::ConnectError;
use io::TlsStream; use io::TlsStream;
use message::{self, WriteMessage};
use message::Frontend;
const DEFAULT_PORT: u16 = 5432; const DEFAULT_PORT: u16 = 5432;
@ -171,7 +170,9 @@ pub fn initialize_stream(params: &ConnectParams,
TlsMode::Require(handshaker) => (true, handshaker), TlsMode::Require(handshaker) => (true, handshaker),
}; };
try!(socket.write_message(&Frontend::SslRequest { code: message::SSL_CODE })); let mut buf = vec![];
try!(frontend::Message::write(&frontend::SslRequest, &mut buf));
try!(socket.write_all(&buf));
try!(socket.flush()); try!(socket.flush());
if try!(socket.read_u8()) == b'N' { if try!(socket.read_u8()) == b'N' {