Skip to content

Commit 248af3b

Browse files
committed
More protocol updates
1 parent 63790cf commit 248af3b

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

src/lib.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,8 @@ impl InnerConnection {
273273
options.push(("database".to_owned(), database));
274274
}
275275

276-
try!(conn.stream.write_message(&frontend::StartupMessage { parameters: &options }));
276+
let options = options.iter().map(|&(ref a, ref b)| (&**a, &**b));
277+
try!(conn.stream.write_message2(|buf| frontend::startup_message(options, buf)));
277278
try!(conn.stream.flush());
278279

279280
try!(conn.handle_auth(user));
@@ -369,15 +370,15 @@ impl InnerConnection {
369370
let pass = try!(user.password.ok_or_else(|| {
370371
ConnectError::ConnectParams("a password was requested but not provided".into())
371372
}));
372-
try!(self.stream.write_message(&frontend::PasswordMessage { password: &pass }));
373+
try!(self.stream.write_message2(|buf| frontend::password_message(&pass, buf)));
373374
try!(self.stream.flush());
374375
}
375376
backend::Message::AuthenticationMD5Password { salt } => {
376377
let pass = try!(user.password.ok_or_else(|| {
377378
ConnectError::ConnectParams("a password was requested but not provided".into())
378379
}));
379380
let output = authentication::md5_hash(user.user.as_bytes(), pass.as_bytes(), salt);
380-
try!(self.stream.write_message(&frontend::PasswordMessage { password: &output }));
381+
try!(self.stream.write_message2(|buf| frontend::password_message(&output, buf)));
381382
try!(self.stream.flush());
382383
}
383384
backend::Message::AuthenticationKerberosV5 |
@@ -405,11 +406,7 @@ impl InnerConnection {
405406
fn raw_prepare(&mut self, stmt_name: &str, query: &str) -> Result<(Vec<Type>, Vec<Column>)> {
406407
debug!("preparing query with name `{}`: {}", stmt_name, query);
407408

408-
try!(self.stream.write_message(&frontend::Parse {
409-
name: stmt_name,
410-
query: query,
411-
param_types: &[],
412-
}));
409+
try!(self.stream.write_message2(|buf| frontend::parse(stmt_name, query, None, buf)));
413410
try!(self.stream.write_message2(|buf| frontend::describe(b'S', stmt_name, buf)));
414411
try!(self.stream.write_message(&frontend::Sync));
415412
try!(self.stream.flush());
@@ -800,7 +797,7 @@ impl InnerConnection {
800797
fn quick_query(&mut self, query: &str) -> Result<Vec<Vec<Option<String>>>> {
801798
check_desync!(self);
802799
debug!("executing query: {}", query);
803-
try!(self.stream.write_message(&frontend::Query { query: query }));
800+
try!(self.stream.write_message2(|buf| frontend::query(query, buf)));
804801
try!(self.stream.flush());
805802

806803
let mut result = vec![];

src/priv_io.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ pub fn initialize_stream(params: &ConnectParams,
255255
};
256256

257257
let mut buf = vec![];
258-
try!(frontend::Message::write(&frontend::SslRequest, &mut buf));
258+
frontend::ssl_request(&mut buf);
259259
try!(socket.write_all(&buf));
260260
try!(socket.flush());
261261

0 commit comments

Comments
 (0)