@@ -273,7 +273,8 @@ impl InnerConnection {
273
273
options. push ( ( "database" . to_owned ( ) , database) ) ;
274
274
}
275
275
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) ) ) ;
277
278
try!( conn. stream . flush ( ) ) ;
278
279
279
280
try!( conn. handle_auth ( user) ) ;
@@ -369,15 +370,15 @@ impl InnerConnection {
369
370
let pass = try!( user. password . ok_or_else ( || {
370
371
ConnectError :: ConnectParams ( "a password was requested but not provided" . into ( ) )
371
372
} ) ) ;
372
- try!( self . stream . write_message ( & frontend:: PasswordMessage { password : & pass } ) ) ;
373
+ try!( self . stream . write_message2 ( |buf| frontend:: password_message ( & pass, buf ) ) ) ;
373
374
try!( self . stream . flush ( ) ) ;
374
375
}
375
376
backend:: Message :: AuthenticationMD5Password { salt } => {
376
377
let pass = try!( user. password . ok_or_else ( || {
377
378
ConnectError :: ConnectParams ( "a password was requested but not provided" . into ( ) )
378
379
} ) ) ;
379
380
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 ) ) ) ;
381
382
try!( self . stream . flush ( ) ) ;
382
383
}
383
384
backend:: Message :: AuthenticationKerberosV5 |
@@ -405,11 +406,7 @@ impl InnerConnection {
405
406
fn raw_prepare ( & mut self , stmt_name : & str , query : & str ) -> Result < ( Vec < Type > , Vec < Column > ) > {
406
407
debug ! ( "preparing query with name `{}`: {}" , stmt_name, query) ;
407
408
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) ) ) ;
413
410
try!( self . stream . write_message2 ( |buf| frontend:: describe ( b'S' , stmt_name, buf) ) ) ;
414
411
try!( self . stream . write_message ( & frontend:: Sync ) ) ;
415
412
try!( self . stream . flush ( ) ) ;
@@ -800,7 +797,7 @@ impl InnerConnection {
800
797
fn quick_query ( & mut self , query : & str ) -> Result < Vec < Vec < Option < String > > > > {
801
798
check_desync ! ( self ) ;
802
799
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 ) ) ) ;
804
801
try!( self . stream . flush ( ) ) ;
805
802
806
803
let mut result = vec ! [ ] ;
0 commit comments