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

36 lines
1.3 KiB
Rust
Raw Normal View History

2020-08-12 03:41:02 +00:00
use std::io::Write;
2020-08-11 14:51:11 +00:00
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")]
2020-08-12 03:41:02 +00:00
pub fn register(tls_connection: &mut TlsConnection, message: &Message) {
/* assert recieved message */
2020-08-12 03:41:02 +00:00
if message.msgtype != MessageType::Command || message.argument_count != 5
|| message.data_message_number != 0 || message.data_message_max != 0
2020-08-12 03:41:02 +00:00
|| message.data.len() == 0 {
warn!("REGISTER_INVALID_MESSAGE");
return;
}
/* call acc_create() server version */
2020-08-11 14:51:11 +00:00
match acc_create(message) {
Ok(_) => {
match message_builder(MessageType::ServerReturn, 1, 0, 0, 0, Vec::new()) {
2020-08-12 03:41:02 +00:00
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)
}
}