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 mut socket = try!(priv_io::initialize_stream(&params, tls));
try!(socket.write_message(&Frontend::CancelRequest {
code: message::CANCEL_CODE,
process_id: data.process_id,
secret_key: data.secret_key,
}));
let message = frontend::CancelRequest {
process_id: data.process_id as i32,
secret_key: data.secret_key as i32,
};
let mut buf = vec![];
try!(frontend::Message::write(&message, &mut buf));
try!(socket.write_all(&buf));
try!(socket.flush());
Ok(())

View File

@ -7,9 +7,6 @@ use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt};
use types::Oid;
use priv_io::StreamOptions;
pub const CANCEL_CODE: u32 = 80877102;
pub const SSL_CODE: u32 = 80877103;
pub enum Backend {
AuthenticationCleartextPassword,
AuthenticationGSS,
@ -85,11 +82,6 @@ pub struct RowDescriptionEntry {
}
pub enum Frontend<'a> {
CancelRequest {
code: u32,
process_id: u32,
secret_key: u32,
},
CopyData {
data: &'a [u8],
},
@ -101,9 +93,6 @@ pub enum Frontend<'a> {
portal: &'a str,
max_rows: i32,
},
SslRequest {
code: u32,
},
Sync,
}
@ -128,14 +117,9 @@ impl<W: Write> WriteMessage for W {
#[allow(cyclomatic_complexity)]
fn write_message(&mut self, message: &Frontend) -> io::Result<()> {
let mut buf = vec![];
let mut ident = None;
let ident;
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 } => {
ident = Some(b'd');
try!(buf.write_all(data));
@ -150,7 +134,6 @@ impl<W: Write> WriteMessage for W {
try!(buf.write_cstr(portal));
try!(buf.write_i32::<BigEndian>(max_rows));
}
Frontend::SslRequest { code } => try!(buf.write_u32::<BigEndian>(code)),
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};
#[cfg(windows)]
use std::os::windows::io::{AsRawSocket, RawSocket};
use postgres_protocol::message::frontend;
use TlsMode;
use params::{ConnectParams, ConnectTarget};
use error::ConnectError;
use io::TlsStream;
use message::{self, WriteMessage};
use message::Frontend;
const DEFAULT_PORT: u16 = 5432;
@ -171,7 +170,9 @@ pub fn initialize_stream(params: &ConnectParams,
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());
if try!(socket.read_u8()) == b'N' {