From 4eba89add8db804c33e8692edf5b27c2d3a2e365 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 7 Apr 2017 21:49:36 +0200 Subject: o Cleaning up code, fixing many small bugs. o Making a better envelope format. o Reading out the interface's channel. --- src/receiver.cpp | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) (limited to 'src/receiver.cpp') diff --git a/src/receiver.cpp b/src/receiver.cpp index c6c5bdc..7ac940a 100644 --- a/src/receiver.cpp +++ b/src/receiver.cpp @@ -9,15 +9,9 @@ using namespace std; using namespace wifi_triangulator; -void on_probe_request(const pb::probe &p) { - cerr << "PROBE REQUEST" - << ", src=" << eth_mac(p.src()).to_string() - << ", dst=" << eth_mac(p.dst()).to_string() - << ", rssi=" << p.rssi() - << endl; -} - int main(int argc, char *argv[]) { + app_name = argv[0]; + if (argc != 1) { fprintf(stderr, "usage: %s\n", argv[0]); return EXIT_FAILURE; @@ -48,23 +42,12 @@ int main(int argc, char *argv[]) { struct sockaddr_in si_other; socklen_t addr_len; if ((n_read = ::recvfrom(s, bytes, len, 0, reinterpret_cast(&si_other), &addr_len)) == -1) { - throw std::runtime_error("recvfrom"); + throw std::runtime_error("recvfrom: " + string(strerror(errno))); } - string str; - for (socklen_t i = 0; i < n_read; i++) { - str += bytes[i]; - } - - istringstream ss{str}; - bool ok = envelope.ParseFromIstream(&ss); - if (ok) { - if (envelope.type() == pb::probe_request) { - on_probe_request(envelope.probe()); - } - } else { - cerr << "FAIL n_read=" << n_read << flush << endl; - } + uint16_t size = static_cast(n_read); + write_stdout(reinterpret_cast(&size), 2); + write_stdout(bytes, static_cast(n_read)); } google::protobuf::ShutdownProtobufLibrary(); -- cgit v1.2.3