#include "db.h" #include int main(int argc, char **argv) { if (argc != 3) return 1; voicecat::server::Database database(argv[2]); std::string error; if (!database.open(error)) return 1; if (std::string(argv[1]) == "create-protected") { voicecat::server::ChannelRecord channel; channel.name = "Native protected"; channel.audio.set_sample_rate(48000); channel.audio.set_bitrate_bps(24000); channel.audio.set_frame_ms(20); return database.create_channel(channel, "channel password", error) ? 0 : 1; } if (std::string(argv[1]) == "verify-protected") { for (const auto& channel : database.list_channels()) { if (channel.name == "Managed protected") return database.check_channel_password(channel.id, "channel password") && !database.check_channel_password(channel.id, "wrong") ? 0 : 1; } return 1; } if (std::string(argv[1]) == "create") { if (!database.create_account("legacy", "legacy password", true, error)) return 1; voicecat::server::ChannelRecord lobby; lobby.name = "Lobby"; lobby.topic = "Preserved native topic"; lobby.max_users = 7; lobby.audio.set_sample_rate(48000); lobby.audio.set_bitrate_bps(32000); lobby.audio.set_frame_ms(20); return database.create_channel(lobby, "", error) ? 0 : 1; } if (std::string(argv[1]) == "verify") { auto account = database.authenticate("managed", "managed password"); return account && account->is_admin ? 0 : 1; } return 1; }