From 9f32afad9da79eea298fb5288096efc8307d26fa Mon Sep 17 00:00:00 2001 From: Othmar Gsenger Date: Thu, 11 Dec 2008 18:00:23 +0000 Subject: fixed bug in routing initialisation --- src/anytun.cpp | 17 ++++++++++------- src/networkAddress.cpp | 2 +- src/networkAddress.h | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/anytun.cpp b/src/anytun.cpp index ba1a6ab..bdb7a5d 100644 --- a/src/anytun.cpp +++ b/src/anytun.cpp @@ -94,15 +94,18 @@ void createConnection(const PacketSourceEndpoint & remote_end, ConnectionList & ConnectionParam connparam ( (*kd), (*seq), seq_nr_, remote_end); cl.addConnection(connparam,mux); -#ifndef NOROUTING - NetworkAddress addr(ipv4,gOpt.getIfconfigParamRemoteNetmask().c_str()); - NetworkPrefix prefix(addr,32); - gRoutingTable.addRoute(prefix,mux); -#endif SyncCommand sc (cl,mux); queue.push(sc); - SyncCommand sc2 (prefix); - queue.push(sc2); +#ifndef NOROUTING + if (gOpt.getIfconfigParamRemoteNetmask() != "") + { + NetworkAddress addr(gOpt.getIfconfigParamRemoteNetmask()); + NetworkPrefix prefix(addr,32); + gRoutingTable.addRoute(prefix,mux); + SyncCommand sc2 (prefix); + queue.push(sc2); + } +#endif } bool checkPacketSeqNr(EncryptedPacket& pack,ConnectionParam& conn) diff --git a/src/networkAddress.cpp b/src/networkAddress.cpp index 5b94224..0ec1c38 100644 --- a/src/networkAddress.cpp +++ b/src/networkAddress.cpp @@ -80,7 +80,7 @@ NetworkAddress::~NetworkAddress() { } -NetworkAddress::NetworkAddress(const network_address_type_t type, const char * address ) +NetworkAddress::NetworkAddress(const network_address_type_t type, const std::string & address ) { setNetworkAddress( type, address); } diff --git a/src/networkAddress.h b/src/networkAddress.h index 81fbe59..e2228d5 100644 --- a/src/networkAddress.h +++ b/src/networkAddress.h @@ -56,7 +56,7 @@ public: NetworkAddress(boost::asio::ip::address_v6); NetworkAddress(boost::asio::ip::address_v4); NetworkAddress(u_int64_t); - NetworkAddress(const network_address_type_t type, const char * address ); + NetworkAddress(const network_address_type_t type, const std::string & address ); ~NetworkAddress(); void setNetworkAddress(const network_address_type_t type, const std::string & address ); network_address_type_t getNetworkAddressType(); -- cgit v1.2.3