mirror of https://github.com/SeanOMik/libki.git
protocol: Rename control messages to SESSION_OFFER and SESSION_ACCEPT
I like these names better
This commit is contained in:
parent
00b404f132
commit
38e0547e84
|
@ -10,11 +10,11 @@ namespace control
|
||||||
enum class Opcode : uint8_t
|
enum class Opcode : uint8_t
|
||||||
{
|
{
|
||||||
NONE = 0,
|
NONE = 0,
|
||||||
SERVER_HELLO = 0,
|
SESSION_OFFER = 0,
|
||||||
UDP_HELLO = 1,
|
UDP_HELLO = 1,
|
||||||
PING = 3,
|
PING = 3,
|
||||||
PING_RSP = 4,
|
PING_RSP = 4,
|
||||||
CLIENT_HELLO = 5
|
SESSION_ACCEPT = 5
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,12 @@ namespace protocol
|
||||||
{
|
{
|
||||||
namespace control
|
namespace control
|
||||||
{
|
{
|
||||||
class ServerHello final : public util::Serializable
|
class SessionAccept final : public util::Serializable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ServerHello(uint16_t session_id = 0,
|
SessionAccept(uint16_t session_id = 0,
|
||||||
int32_t timestamp = 0, uint32_t milliseconds = 0);
|
int32_t timestamp = 0, uint32_t milliseconds = 0);
|
||||||
virtual ~ServerHello() = default;
|
virtual ~SessionAccept() = default;
|
||||||
|
|
||||||
uint16_t get_session_id() const;
|
uint16_t get_session_id() const;
|
||||||
void set_session_id(uint16_t session_id);
|
void set_session_id(uint16_t session_id);
|
|
@ -9,12 +9,12 @@ namespace protocol
|
||||||
{
|
{
|
||||||
namespace control
|
namespace control
|
||||||
{
|
{
|
||||||
class ClientHello final : public util::Serializable
|
class SessionOffer final : public util::Serializable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ClientHello(uint16_t session_id = 0,
|
SessionOffer(uint16_t session_id = 0,
|
||||||
int32_t timestamp = 0, uint32_t milliseconds = 0);
|
int32_t timestamp = 0, uint32_t milliseconds = 0);
|
||||||
virtual ~ClientHello() = default;
|
virtual ~SessionOffer() = default;
|
||||||
|
|
||||||
uint16_t get_session_id() const;
|
uint16_t get_session_id() const;
|
||||||
void set_session_id(uint16_t session_id);
|
void set_session_id(uint16_t session_id);
|
|
@ -1,8 +1,8 @@
|
||||||
target_sources(${PROJECT_NAME}
|
target_sources(${PROJECT_NAME}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
${PROJECT_SOURCE_DIR}/src/protocol/control/ClientHello.cpp
|
|
||||||
${PROJECT_SOURCE_DIR}/src/protocol/control/ServerHello.cpp
|
|
||||||
${PROJECT_SOURCE_DIR}/src/protocol/control/Ping.cpp
|
${PROJECT_SOURCE_DIR}/src/protocol/control/Ping.cpp
|
||||||
|
${PROJECT_SOURCE_DIR}/src/protocol/control/SessionAccept.cpp
|
||||||
|
${PROJECT_SOURCE_DIR}/src/protocol/control/SessionOffer.cpp
|
||||||
${PROJECT_SOURCE_DIR}/src/protocol/dml/Message.cpp
|
${PROJECT_SOURCE_DIR}/src/protocol/dml/Message.cpp
|
||||||
${PROJECT_SOURCE_DIR}/src/protocol/dml/MessageBuilder.cpp
|
${PROJECT_SOURCE_DIR}/src/protocol/dml/MessageBuilder.cpp
|
||||||
${PROJECT_SOURCE_DIR}/src/protocol/dml/MessageManager.cpp
|
${PROJECT_SOURCE_DIR}/src/protocol/dml/MessageManager.cpp
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include "ki/protocol/control/ClientHello.h"
|
#include "ki/protocol/control/SessionAccept.h"
|
||||||
#include "ki/dml/Record.h"
|
#include "ki/dml/Record.h"
|
||||||
#include "ki/protocol/exception.h"
|
#include "ki/protocol/exception.h"
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ namespace protocol
|
||||||
{
|
{
|
||||||
namespace control
|
namespace control
|
||||||
{
|
{
|
||||||
ClientHello::ClientHello(const uint16_t session_id,
|
SessionAccept::SessionAccept(const uint16_t session_id,
|
||||||
const int32_t timestamp, const uint32_t milliseconds)
|
const int32_t timestamp, const uint32_t milliseconds)
|
||||||
{
|
{
|
||||||
m_session_id = session_id;
|
m_session_id = session_id;
|
||||||
|
@ -16,37 +16,37 @@ namespace control
|
||||||
m_milliseconds = milliseconds;
|
m_milliseconds = milliseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t ClientHello::get_session_id() const
|
uint16_t SessionAccept::get_session_id() const
|
||||||
{
|
{
|
||||||
return m_session_id;
|
return m_session_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientHello::set_session_id(const uint16_t session_id)
|
void SessionAccept::set_session_id(const uint16_t session_id)
|
||||||
{
|
{
|
||||||
m_session_id = session_id;
|
m_session_id = session_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t ClientHello::get_timestamp() const
|
int32_t SessionAccept::get_timestamp() const
|
||||||
{
|
{
|
||||||
return m_timestamp;
|
return m_timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientHello::set_timestamp(const int32_t timestamp)
|
void SessionAccept::set_timestamp(const int32_t timestamp)
|
||||||
{
|
{
|
||||||
m_timestamp = timestamp;
|
m_timestamp = timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t ClientHello::get_milliseconds() const
|
uint32_t SessionAccept::get_milliseconds() const
|
||||||
{
|
{
|
||||||
return m_milliseconds;
|
return m_milliseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientHello::set_milliseconds(const uint32_t milliseconds)
|
void SessionAccept::set_milliseconds(const uint32_t milliseconds)
|
||||||
{
|
{
|
||||||
m_milliseconds = milliseconds;
|
m_milliseconds = milliseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientHello::write_to(std::ostream& ostream) const
|
void SessionAccept::write_to(std::ostream& ostream) const
|
||||||
{
|
{
|
||||||
dml::Record record;
|
dml::Record record;
|
||||||
record.add_field<dml::USHRT>("unknown");
|
record.add_field<dml::USHRT>("unknown");
|
||||||
|
@ -57,7 +57,7 @@ namespace control
|
||||||
record.write_to(ostream);
|
record.write_to(ostream);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientHello::read_from(std::istream& istream)
|
void SessionAccept::read_from(std::istream& istream)
|
||||||
{
|
{
|
||||||
dml::Record record;
|
dml::Record record;
|
||||||
record.add_field<dml::USHRT>("unknown");
|
record.add_field<dml::USHRT>("unknown");
|
||||||
|
@ -72,7 +72,7 @@ namespace control
|
||||||
catch (dml::parse_error &e)
|
catch (dml::parse_error &e)
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << "Error reading ClientHello payload: " << e.what();
|
oss << "Error reading SessionAccept payload: " << e.what();
|
||||||
throw parse_error(oss.str());
|
throw parse_error(oss.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ namespace control
|
||||||
m_session_id = session_id->get_value();
|
m_session_id = session_id->get_value();
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ClientHello::get_size() const
|
size_t SessionAccept::get_size() const
|
||||||
{
|
{
|
||||||
return sizeof(dml::USHRT) + sizeof(dml::UINT) +
|
return sizeof(dml::USHRT) + sizeof(dml::UINT) +
|
||||||
sizeof(dml::INT) + sizeof(dml::UINT) +
|
sizeof(dml::INT) + sizeof(dml::UINT) +
|
|
@ -1,4 +1,4 @@
|
||||||
#include "ki/protocol/control/ServerHello.h"
|
#include "ki/protocol/control/SessionOffer.h"
|
||||||
#include "ki/dml/Record.h"
|
#include "ki/dml/Record.h"
|
||||||
#include "ki/protocol/exception.h"
|
#include "ki/protocol/exception.h"
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ namespace protocol
|
||||||
{
|
{
|
||||||
namespace control
|
namespace control
|
||||||
{
|
{
|
||||||
ServerHello::ServerHello(const uint16_t session_id,
|
SessionOffer::SessionOffer(const uint16_t session_id,
|
||||||
const int32_t timestamp, const uint32_t milliseconds)
|
const int32_t timestamp, const uint32_t milliseconds)
|
||||||
{
|
{
|
||||||
m_session_id = session_id;
|
m_session_id = session_id;
|
||||||
|
@ -16,37 +16,37 @@ namespace control
|
||||||
m_milliseconds = milliseconds;
|
m_milliseconds = milliseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t ServerHello::get_session_id() const
|
uint16_t SessionOffer::get_session_id() const
|
||||||
{
|
{
|
||||||
return m_session_id;
|
return m_session_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerHello::set_session_id(const uint16_t session_id)
|
void SessionOffer::set_session_id(const uint16_t session_id)
|
||||||
{
|
{
|
||||||
m_session_id = session_id;
|
m_session_id = session_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t ServerHello::get_timestamp() const
|
int32_t SessionOffer::get_timestamp() const
|
||||||
{
|
{
|
||||||
return m_timestamp;
|
return m_timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerHello::set_timestamp(const int32_t timestamp)
|
void SessionOffer::set_timestamp(const int32_t timestamp)
|
||||||
{
|
{
|
||||||
m_timestamp = timestamp;
|
m_timestamp = timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t ServerHello::get_milliseconds() const
|
uint32_t SessionOffer::get_milliseconds() const
|
||||||
{
|
{
|
||||||
return m_milliseconds;
|
return m_milliseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerHello::set_milliseconds(const uint32_t milliseconds)
|
void SessionOffer::set_milliseconds(const uint32_t milliseconds)
|
||||||
{
|
{
|
||||||
m_milliseconds = milliseconds;
|
m_milliseconds = milliseconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerHello::write_to(std::ostream& ostream) const
|
void SessionOffer::write_to(std::ostream& ostream) const
|
||||||
{
|
{
|
||||||
dml::Record record;
|
dml::Record record;
|
||||||
record.add_field<dml::USHRT>("m_session_id")->set_value(m_session_id);
|
record.add_field<dml::USHRT>("m_session_id")->set_value(m_session_id);
|
||||||
|
@ -56,7 +56,7 @@ namespace control
|
||||||
record.write_to(ostream);
|
record.write_to(ostream);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerHello::read_from(std::istream& istream)
|
void SessionOffer::read_from(std::istream& istream)
|
||||||
{
|
{
|
||||||
dml::Record record;
|
dml::Record record;
|
||||||
auto *session_id = record.add_field<dml::USHRT>("m_session_id");
|
auto *session_id = record.add_field<dml::USHRT>("m_session_id");
|
||||||
|
@ -70,7 +70,7 @@ namespace control
|
||||||
catch (dml::parse_error &e)
|
catch (dml::parse_error &e)
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << "Error reading ServerHello payload: " << e.what();
|
oss << "Error reading SessionOffer payload: " << e.what();
|
||||||
throw parse_error(oss.str());
|
throw parse_error(oss.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ namespace control
|
||||||
m_milliseconds = milliseconds->get_value();
|
m_milliseconds = milliseconds->get_value();
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ServerHello::get_size() const
|
size_t SessionOffer::get_size() const
|
||||||
{
|
{
|
||||||
return sizeof(dml::USHRT) + sizeof(dml::UINT) +
|
return sizeof(dml::USHRT) + sizeof(dml::UINT) +
|
||||||
sizeof(dml::INT) + sizeof(dml::UINT);
|
sizeof(dml::INT) + sizeof(dml::UINT);
|
|
@ -1,7 +1,7 @@
|
||||||
#include "ki/protocol/net/Session.h"
|
#include "ki/protocol/net/Session.h"
|
||||||
#include "ki/protocol/exception.h"
|
#include "ki/protocol/exception.h"
|
||||||
#include "ki/protocol/control/ServerHello.h"
|
#include "ki/protocol/control/SessionOffer.h"
|
||||||
#include "ki/protocol/control/ClientHello.h"
|
#include "ki/protocol/control/SessionAccept.h"
|
||||||
#include "ki/protocol/control/Ping.h"
|
#include "ki/protocol/control/Ping.h"
|
||||||
|
|
||||||
namespace ki
|
namespace ki
|
||||||
|
@ -75,7 +75,7 @@ namespace net
|
||||||
void Session::on_connected()
|
void Session::on_connected()
|
||||||
{
|
{
|
||||||
// If this is the server-side of a Session
|
// If this is the server-side of a Session
|
||||||
// we need to send SERVER_HELLO first.
|
// we need to send SESSION_OFFER first.
|
||||||
if (get_type() == ParticipantType::SERVER)
|
if (get_type() == ParticipantType::SERVER)
|
||||||
{
|
{
|
||||||
// Work out the current timestamp and how many milliseconds
|
// Work out the current timestamp and how many milliseconds
|
||||||
|
@ -88,9 +88,9 @@ namespace net
|
||||||
now.time_since_epoch()
|
now.time_since_epoch()
|
||||||
).count() - (timestamp * 1000);
|
).count() - (timestamp * 1000);
|
||||||
|
|
||||||
// Send a SERVER_HELLO packet to the client
|
// Send a SESSION_OFFER packet to the client
|
||||||
const control::ServerHello hello(m_id, timestamp, milliseconds);
|
const control::SessionOffer hello(m_id, timestamp, milliseconds);
|
||||||
send_packet(true, control::Opcode::SERVER_HELLO, hello);
|
send_packet(true, control::Opcode::SESSION_OFFER, hello);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,11 +122,11 @@ namespace net
|
||||||
{
|
{
|
||||||
switch ((control::Opcode)header.get_opcode())
|
switch ((control::Opcode)header.get_opcode())
|
||||||
{
|
{
|
||||||
case (control::Opcode::SERVER_HELLO):
|
case (control::Opcode::SESSION_OFFER):
|
||||||
on_server_hello();
|
on_server_hello();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case (control::Opcode::CLIENT_HELLO):
|
case (control::Opcode::SESSION_ACCEPT):
|
||||||
on_client_hello();
|
on_client_hello();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ namespace net
|
||||||
void Session::on_server_hello()
|
void Session::on_server_hello()
|
||||||
{
|
{
|
||||||
// If this is the server-side of a Session
|
// If this is the server-side of a Session
|
||||||
// we can't handle a SERVER_HELLO
|
// we can't handle a SESSION_OFFER
|
||||||
if (get_type() != ParticipantType::CLIENT)
|
if (get_type() != ParticipantType::CLIENT)
|
||||||
{
|
{
|
||||||
close();
|
close();
|
||||||
|
@ -157,7 +157,7 @@ namespace net
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// We've been given our id from the server now
|
// We've been given our id from the server now
|
||||||
const auto server_hello = read_data<control::ServerHello>();
|
const auto server_hello = read_data<control::SessionOffer>();
|
||||||
m_id = server_hello.get_session_id();
|
m_id = server_hello.get_session_id();
|
||||||
on_hello(m_id,
|
on_hello(m_id,
|
||||||
server_hello.get_timestamp(),
|
server_hello.get_timestamp(),
|
||||||
|
@ -173,13 +173,13 @@ namespace net
|
||||||
now.time_since_epoch()
|
now.time_since_epoch()
|
||||||
).count() - (timestamp * 1000);
|
).count() - (timestamp * 1000);
|
||||||
|
|
||||||
// Send a CLIENT_HELLO packet to the server
|
// Send a SESSION_ACCEPT packet to the server
|
||||||
const control::ClientHello hello(m_id, timestamp, milliseconds);
|
const control::SessionAccept hello(m_id, timestamp, milliseconds);
|
||||||
send_packet(true, control::Opcode::CLIENT_HELLO, hello);
|
send_packet(true, control::Opcode::SESSION_ACCEPT, hello);
|
||||||
}
|
}
|
||||||
catch (parse_error &e)
|
catch (parse_error &e)
|
||||||
{
|
{
|
||||||
// The CLIENT_HELLO wasn't valid...
|
// The SESSION_ACCEPT wasn't valid...
|
||||||
// Close the session
|
// Close the session
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ namespace net
|
||||||
void Session::on_client_hello()
|
void Session::on_client_hello()
|
||||||
{
|
{
|
||||||
// If this is the client-side of a Session
|
// If this is the client-side of a Session
|
||||||
// we can't handle a CLIENT_HELLO
|
// we can't handle a SESSION_ACCEPT
|
||||||
if (get_type() != ParticipantType::SERVER)
|
if (get_type() != ParticipantType::SERVER)
|
||||||
{
|
{
|
||||||
close();
|
close();
|
||||||
|
@ -199,14 +199,14 @@ namespace net
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// The session is now established!
|
// The session is now established!
|
||||||
const auto client_hello = read_data<control::ClientHello>();
|
const auto client_hello = read_data<control::SessionAccept>();
|
||||||
on_hello(client_hello.get_session_id(),
|
on_hello(client_hello.get_session_id(),
|
||||||
client_hello.get_timestamp(),
|
client_hello.get_timestamp(),
|
||||||
client_hello.get_milliseconds());
|
client_hello.get_milliseconds());
|
||||||
}
|
}
|
||||||
catch (parse_error &e)
|
catch (parse_error &e)
|
||||||
{
|
{
|
||||||
// The CLIENT_HELLO wasn't valid...
|
// The SESSION_ACCEPT wasn't valid...
|
||||||
// Close the session
|
// Close the session
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
@ -234,7 +234,7 @@ namespace net
|
||||||
}
|
}
|
||||||
catch (parse_error &e)
|
catch (parse_error &e)
|
||||||
{
|
{
|
||||||
// The CLIENT_HELLO wasn't valid...
|
// The SESSION_ACCEPT wasn't valid...
|
||||||
// Close the session
|
// Close the session
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
@ -249,7 +249,7 @@ namespace net
|
||||||
}
|
}
|
||||||
catch (parse_error &e)
|
catch (parse_error &e)
|
||||||
{
|
{
|
||||||
// The CLIENT_HELLO wasn't valid...
|
// The SESSION_ACCEPT wasn't valid...
|
||||||
// Close the session
|
// Close the session
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue