Skip to content

Commit cb418e3

Browse files
debugging, correctly set session id
1 parent 8ec080b commit cb418e3

File tree

3 files changed

+29
-18
lines changed

3 files changed

+29
-18
lines changed

src/davetest/dave.cpp

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,24 @@
2727
int main() {
2828
using namespace std::chrono_literals;
2929
char* t = getenv("DPP_UNIT_TEST_TOKEN");
30-
if (t != nullptr) {
31-
dpp::snowflake TEST_GUILD_ID(std::string(getenv("TEST_GUILD_ID")));
32-
dpp::snowflake TEST_VC_ID(std::string(getenv("TEST_VC_ID")));
33-
std::cout << "Test Guild ID: " << TEST_GUILD_ID << " Test VC ID: " << TEST_VC_ID << "\n\n";
34-
dpp::cluster dave_test(t, dpp::i_default_intents | dpp::i_guild_members);
35-
dave_test.set_websocket_protocol(dpp::ws_etf);
36-
dave_test.on_log(dpp::utility::cout_logger());
37-
38-
dave_test.on_guild_create([&](const dpp::guild_create_t & event) {
39-
if (event.created->id == TEST_GUILD_ID) {
40-
dpp::discord_client* s = dave_test.get_shard(0);
41-
s->connect_voice(TEST_GUILD_ID, TEST_VC_ID, false, false, true);
42-
}
43-
});
44-
dave_test.start(false);
30+
if (t == nullptr || getenv("TEST_GUILD_ID") == nullptr || getenv("TEST_VC_ID") == nullptr) {
31+
std::cerr << "Missing unit test environment. Set DPP_UNIT_TEST_TOKEN, TEST_GUILD_ID, and TEST_VC_ID\n";
32+
exit(1);
4533
}
34+
dpp::snowflake TEST_GUILD_ID(std::string(getenv("TEST_GUILD_ID")));
35+
dpp::snowflake TEST_VC_ID(std::string(getenv("TEST_VC_ID")));
36+
std::cout << "Test Guild ID: " << TEST_GUILD_ID << " Test VC ID: " << TEST_VC_ID << "\n\n";
37+
dpp::cluster dave_test(t, dpp::i_default_intents, 1, 0, 1, false, dpp::cache_policy_t{ dpp::cp_none, dpp::cp_none, dpp::cp_none, dpp::cp_none, dpp::cp_none });
38+
39+
dave_test.on_log([&](const dpp::log_t& log) {
40+
std::cout << "[" << dpp::utility::current_date_time() << "] " << dpp::utility::loglevel(log.severity) << ": " << log.message << std::endl;
41+
});
42+
43+
dave_test.on_guild_create([&](const dpp::guild_create_t & event) {
44+
if (event.created->id == TEST_GUILD_ID) {
45+
dpp::discord_client* s = dave_test.get_shard(0);
46+
s->connect_voice(TEST_GUILD_ID, TEST_VC_ID, false, false, true);
47+
}
48+
});
49+
dave_test.start(false);
4650
}

src/dpp/discordvoiceclient.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -488,16 +488,14 @@ int discord_voice_client::udp_recv(char* data, size_t max_length)
488488

489489
bool discord_voice_client::handle_frame(const std::string &data, ws_opcode opcode)
490490
{
491-
log(dpp::ll_trace, std::string("R: ") + data);
492491
json j;
493492

494493
/**
495494
* MLS frames come in as type OP_BINARY, we can also reply to them as type OP_BINARY.
496495
*/
497496
if (opcode == OP_BINARY && data.size() >= sizeof(dave_binary_header_t)) {
498497

499-
/* Debug, remove once this is working */
500-
std::cout << dpp::utility::debug_dump((uint8_t*)(data.data()), data.length()) << "\n";
498+
log(dpp::ll_trace, "R: " + dpp::utility::debug_dump((uint8_t*)(data.data()), data.length()));
501499

502500
dave_binary_header_t dave_header{};
503501
std::memcpy(&dave_header, data.data(), sizeof(dave_binary_header_t));
@@ -528,6 +526,7 @@ bool discord_voice_client::handle_frame(const std::string &data, ws_opcode opcod
528526
}
529527

530528
try {
529+
log(dpp::ll_trace, std::string("R: ") + data);
531530
j = json::parse(data);
532531
}
533532
catch (const std::exception &e) {
@@ -670,6 +669,9 @@ bool discord_voice_client::handle_frame(const std::string &data, ws_opcode opcod
670669
send_silence(20);
671670
}
672671

672+
/* Set the session id */
673+
this->sessionid = j["d"]["media_session_id"];
674+
673675
/* Fire on_voice_ready */
674676
if (!creator->on_voice_ready.empty()) {
675677
voice_ready_t rdy(nullptr, data);

src/dpp/wsclient.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,11 @@ size_t websocket_client::fill_header(unsigned char* outbuf, size_t sendlength, w
113113

114114
void websocket_client::write(const std::string_view data, ws_opcode _opcode)
115115
{
116+
if ((_opcode == OP_AUTO ? this->data_opcode : _opcode) == OP_TEXT) {
117+
log(dpp::ll_trace, std::string("W: ") + data.data());
118+
} else {
119+
log(dpp::ll_trace, "W: " + dpp::utility::debug_dump((uint8_t*)(data.data()), data.length()));
120+
}
116121
if (state == HTTP_HEADERS) {
117122
/* Simple write */
118123
ssl_client::socket_write(data);

0 commit comments

Comments
 (0)