#include "args.hpp"
#include "pan/pan.hpp"
#ifndef _WIN32
#include "server.hpp"
#include "client.hpp"
#else
#include "server_win32.hpp"
#include "client_win32.hpp"
#endif
#include <boost/asio.hpp>
#include <iostream>
#include <cstddef>
using namespace boost;
int main(int argc, char* argv[])
{
Arguments args;
if (!parseArgs(argc, argv, args)) {
return EXIT_FAILURE;
}
try {
if (args.remoteAddr.empty()) {
return Server().listen(args);
}
else {
return Client().connect(args);
}
}
catch (Pan::Exception &e) {
std::cout << "PAN error: " << e.what() << std::endl;
return EXIT_FAILURE;
}
}