rbdc_mysql/protocol/connect/
ssl_request.rs1use crate::protocol::Capabilities;
2use rbdc::io::Encode;
3
4#[derive(Debug)]
8pub struct SslRequest {
9 pub max_packet_size: u32,
10 pub collation: u8,
11}
12
13impl Encode<'_, Capabilities> for SslRequest {
14 fn encode_with(&self, buf: &mut Vec<u8>, capabilities: Capabilities) {
15 buf.extend(&(capabilities.bits() as u32).to_le_bytes());
16 buf.extend(&self.max_packet_size.to_le_bytes());
17 buf.push(self.collation);
18
19 buf.extend(&[0_u8; 19]);
21
22 if capabilities.contains(Capabilities::MYSQL) {
23 buf.extend(&[0_u8; 4]);
25 } else {
26 buf.extend(&((capabilities.bits() >> 32) as u32).to_le_bytes());
28 }
29 }
30}