From fd419ce4f2bcadae313f4f368361c733c1249ae9 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 22 Mar 2009 17:50:10 +0000 Subject: added error callback to resolver for better handling of resolvCallback exceptions --- src/anytun.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/anytun.cpp') diff --git a/src/anytun.cpp b/src/anytun.cpp index 99f1560..5715d5a 100644 --- a/src/anytun.cpp +++ b/src/anytun.cpp @@ -97,6 +97,11 @@ void createConnection(const PacketSourceEndpoint & remote_end, window_size_t seq #endif } +void createConnectionError(const std::exception& e) +{ + gSignalController.inject(SIGERROR, e.what()); +} + #ifndef ANYTUN_NOSYNC void syncConnector(const OptionHost& connto) { @@ -463,7 +468,7 @@ int main(int argc, char* argv[]) src = new UDPPacketSource(gOpt.getLocalAddr(), gOpt.getLocalPort()); if(gOpt.getRemoteAddr() != "") - gResolver.resolveUdp(gOpt.getRemoteAddr(), gOpt.getRemotePort(), boost::bind(createConnection, _1, gOpt.getSeqWindowSize(), gOpt.getMux()), gOpt.getResolvAddrType()); + gResolver.resolveUdp(gOpt.getRemoteAddr(), gOpt.getRemotePort(), boost::bind(createConnection, _1, gOpt.getSeqWindowSize(), gOpt.getMux()), boost::bind(createConnectionError, _1), gOpt.getResolvAddrType()); HostList connect_to = gOpt.getRemoteSyncHosts(); #ifndef NO_ROUTING -- cgit v1.2.3