From 5afc641ea90b8ed49f99aa5d5fd40f1d6fb6e873 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Wed, 22 Jan 2014 09:08:18 -0500 Subject: [PATCH] Peer network code NYW. --- main.cpp | 8 +++-- peer.cpp | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ trie.cpp | 2 ++ 3 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 peer.cpp diff --git a/main.cpp b/main.cpp index e082b6cac..2ef451662 100644 --- a/main.cpp +++ b/main.cpp @@ -28,15 +28,17 @@ int daggerTest(); int cryptoTest(); int stateTest(); int hexPrefixTest(); +int peerTest(int argc, char** argv); -int main() +int main(int argc, char** argv) { // hexPrefixTest(); // rlpTest(); -// trieTest(); + trieTest(); // daggerTest(); // cryptoTest(); - stateTest(); +// stateTest(); + peerTest(argc, argv); return 0; } diff --git a/peer.cpp b/peer.cpp new file mode 100644 index 000000000..667f132f3 --- /dev/null +++ b/peer.cpp @@ -0,0 +1,99 @@ +/* + This file is part of cpp-ethereum. + + cpp-ethereum is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Foobar is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Foobar. If not, see . +*/ +/** @file peer.cpp + * @author Gav Wood + * @date 2014 + * Peer Network test functions. + */ + +#include +using namespace std; +using namespace eth; +using boost::asio::ip::tcp; + +int peerTest(int argc, char** argv) +{ + int port = 30303; + PeerServer s(0, port); + s.run(); + /* + if (argc == 1) + { + boost::asio::io_service io_service; + tcp::acceptor acceptor_(io_service, tcp::endpoint(tcp::v4(), port)); + tcp::socket socket_(io_service); + function do_accept; + do_accept = [&]() + { + acceptor_.async_accept(socket_, [&](boost::system::error_code ec) + { + if (!ec) + { + auto s = move(socket_); + enum { max_length = 1024 }; + char data_[max_length]; + + function do_read; + do_read = [&]() + { + s.async_read_some(boost::asio::buffer(data_, max_length), [&](boost::system::error_code ec, std::size_t length) + { + if (!ec) + boost::asio::async_write(s, boost::asio::buffer(data_, length), [&](boost::system::error_code ec, std::size_t) + { + if (!ec) + do_read(); + }); + }); + }; + } + do_accept(); + }); + }; + io_service.run(); + } + else + { + + }*/ + + + +/* if (argc == 1) + { + PeerNetwork pn(0, 30303); + while (true) + { + usleep(100000); + pn.process(); + } + } + else + { + PeerNetwork pn(0); + if (pn.connect("127.0.0.1", 30303)) + cout << "CONNECTED" << endl; + while (true) + { + usleep(100000); + pn.process(); + } + }*/ + + return 0; +} + diff --git a/trie.cpp b/trie.cpp index bb41c12cf..8fe596a7f 100644 --- a/trie.cpp +++ b/trie.cpp @@ -121,6 +121,7 @@ int trieTest() assert(d.root() == hash256(s)); for (auto const& i: s) { + (void)i; assert(t.at(i.first) == i.second); assert(d.at(i.first) == i.second); } @@ -145,6 +146,7 @@ int trieTest() assert(d.root() == hash256(s)); for (auto const& i: s) { + (void)i; assert(t.at(i.first) == i.second); assert(d.at(i.first) == i.second); }