Esempio n. 1
0
CryptoPlayer::CryptoPlayer(const Names& Nms, int id_base) :
        MultiPlayer<ssl_socket*>(Nms, id_base), plaintext_player(Nms, id_base),
        ctx(boost::asio::ssl::context::tlsv12)
{
    string prefix = PREP_DIR "P" + to_string(my_num());
    ctx.use_certificate_file(prefix + ".pem", ctx.pem);
    ctx.use_private_key_file(prefix + ".key", ctx.pem);
    ctx.add_verify_path("Player-Data");

    sockets.resize(num_players());

    for (int i = 0; i < (int)sockets.size(); i++)
    {
        if (i == my_num())
        {
            sockets[i] = 0;
            continue;
        }

        sockets[i] = new ssl_socket(io_service, ctx);
        sockets[i]->lowest_layer().assign(boost::asio::ip::tcp::v4(), plaintext_player.socket(i));
        sockets[i]->set_verify_mode(boost::asio::ssl::verify_peer);
        sockets[i]->set_verify_callback(boost::asio::ssl::rfc2818_verification("P" + to_string(i)));
        if (i < my_num())
            sockets[i]->handshake(ssl_socket::client);
        if (i > my_num())
            sockets[i]->handshake(ssl_socket::server);
    }
}
Esempio n. 2
0
void quote_view_remove_rejected_quotes(QuoteView * qv)
{
	gint idx;

	for (idx = 0; idx < num_players(); idx++) {
		Player *player = player_get(idx);
		quote_found_flag = FALSE;
		gtk_tree_model_foreach(GTK_TREE_MODEL(qv->store),
				       trade_locate_reject, player);
		if (quote_found_flag)
			gtk_list_store_remove(qv->store,
					      &quote_found_iter);
	}
}
Esempio n. 3
0
CryptoPlayer::~CryptoPlayer()
{
    plaintext_player.sockets.clear();
    for (int i = 0; i < num_players(); i++)
        delete sockets[i];
}