36 lines
1.3 KiB
Rust
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)
|
|
}
|
|
}
|