summaryrefslogtreecommitdiff
path: root/src/anytun.cpp
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2009-01-17 20:47:22 +0000
committerChristian Pointner <equinox@anytun.org>2009-01-17 20:47:22 +0000
commitd634f32f4b2dc1be2842b98d796d8d7b410b79e1 (patch)
tree60e50b4ce5c0551bf37e5b4b86d1e12da4688d83 /src/anytun.cpp
parentsmall cleanup (diff)
options parser refactoring
Diffstat (limited to 'src/anytun.cpp')
-rw-r--r--src/anytun.cpp36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/anytun.cpp b/src/anytun.cpp
index 8c7c239..2c06a46 100644
--- a/src/anytun.cpp
+++ b/src/anytun.cpp
@@ -111,7 +111,7 @@ void syncConnector(void* p )
{
ThreadParam* param = reinterpret_cast<ThreadParam*>(p);
- SyncClient sc ( param->connto.host, param->connto.port);
+ SyncClient sc ( param->connto.addr, param->connto.port);
sc.run();
}
@@ -330,22 +330,26 @@ int main(int argc, char* argv[])
{
cLog.msg(Log::PRIO_NOTICE) << "anytun started...";
/// std::cout << "anytun - secure anycast tunneling protocol" << std::endl;
- int32_t result = gOpt.parse(argc, argv);
- if(result) {
- if(result > 0) {
- std::cerr << "syntax error near: " << argv[result] << std::endl << std::endl;
- cLog.msg(Log::PRIO_ERR) << "syntax error, exitting";
- }
- if(result == -2) {
- std::cerr << "can't parse host-port definition" << std::endl << std::endl;
- cLog.msg(Log::PRIO_ERR) << "can't parse host-port definition, exitting";
+
+ try
+ {
+ bool result = gOpt.parse(argc, argv);
+ if(!result) {
+ gOpt.printUsage();
+ exit(0);
}
-
+ }
+ catch(syntax_error& e)
+ {
+ std::cerr << e << std::endl;
gOpt.printUsage();
-
- exit(result);
+ exit(-1);
}
+ gOpt.printOptions();
+ exit(0);
+
+
std::ofstream pidFile;
if(gOpt.getPidFile() != "") {
pidFile.open(gOpt.getPidFile().c_str());
@@ -379,7 +383,7 @@ int main(int argc, char* argv[])
else
src = new UDPPacketSource(gOpt.getLocalAddr(), gOpt.getLocalPort());
- ConnectToList connect_to = gOpt.getConnectTo();
+ HostList connect_to = gOpt.getRemoteSyncHosts();
SyncQueue queue;
if(gOpt.getRemoteAddr() != "")
@@ -430,7 +434,7 @@ int main(int argc, char* argv[])
sig.init();
#endif
- OptionConnectTo* connTo = new OptionConnectTo();
+ OptionHost* connTo = new OptionHost();
ThreadParam p(dev, *src, *connTo);
boost::thread senderThread(boost::bind(sender,&p));
@@ -443,7 +447,7 @@ int main(int argc, char* argv[])
syncListenerThread = new boost::thread(boost::bind(syncListener,&queue));
std::list<boost::thread *> connectThreads;
- for(ConnectToList::iterator it = connect_to.begin() ;it != connect_to.end(); ++it) {
+ for(HostList::iterator it = connect_to.begin() ;it != connect_to.end(); ++it) {
ThreadParam * point = new ThreadParam(dev, *src, *it);
connectThreads.push_back(new boost::thread(boost::bind(syncConnector,point)));
}