PaperTrader/src/libtrader/server/network/cmd/register.rs

36 lines
1.3 KiB
Rust

use std::io::Write;
use crate::common::message::message::Message;
use crate::common::message::message_type::MessageType;
use crate::common::message::message_builder::message_builder;
use crate::server::network::tls_connection::TlsConnection;
use crate::server::account::creation::acc_create;
#[cfg(feature="server")]
pub fn register(tls_connection: &mut TlsConnection, message: &Message) {
/* assert recieved message */
if message.msgtype != MessageType::Command || message.argument_count != 5
|| message.data_message_number != 0 || message.data_message_max != 0
|| message.data.len() == 0 {
warn!("REGISTER_INVALID_MESSAGE");
return;
}
/* call acc_create() server version */
match acc_create(message) {
Ok(_) => {
match message_builder(MessageType::ServerReturn, 1, 0, 0, 0, Vec::new()) {
Ok(msg) => {
match tls_connection.tls_session.write(bincode::serialize(&msg).unwrap().as_slice()) {
Ok(_) => return,
Err(err) => warn!("REGISTER_FAILED_SENDING_RESPONSE: {}", err)
}
},
Err(_) => {}
}
},
Err(err) => warn!("REGISTER_FAILED: {}", err)
}
}