X-Git-Url: https://git.syn-net.org/debian/?p=anytun.git;a=blobdiff_plain;f=src%2FconnectionList.cpp;h=4287a2169d8146b23cf8261d3c179318cadc54e0;hp=9ddb2778c8c580023e1e509f31d9713465f6126b;hb=ef0cacf2508418915d3f64b04003be3c13fed3cc;hpb=ece844834d2cecc028ce81ca283f5d441088580e diff --git a/src/connectionList.cpp b/src/connectionList.cpp index 9ddb277..4287a21 100644 --- a/src/connectionList.cpp +++ b/src/connectionList.cpp @@ -11,7 +11,7 @@ * tunneling and relaying of packets of any protocol. * * - * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, + * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, * Christian Pointner * * This file is part of Anytun. @@ -47,8 +47,9 @@ ConnectionList& ConnectionList::instance() { Lock lock(instMutex); static instanceCleaner c; - if(!inst) + if(!inst) { inst = new ConnectionList(); + } return *inst; } @@ -59,22 +60,21 @@ ConnectionList::ConnectionList() ConnectionList::~ConnectionList() { -// TODO: comment this in as soon as threads @ main get cleaned up properly -// Lock lock(mutex_); -// ConnectionMap::iterator it; -// for(it = connections_.begin(); it != connections_.end(); ++it) { -// delete &it->second.kd_; -// delete &it->second.seq_window_; -// } -} - -void ConnectionList::addConnection(ConnectionParam &conn, u_int16_t mux ) + // TODO: comment this in as soon as threads @ main get cleaned up properly + // Lock lock(mutex_); + // ConnectionMap::iterator it; + // for(it = connections_.begin(); it != connections_.end(); ++it) { + // delete &it->second.kd_; + // delete &it->second.seq_window_; + // } +} + +void ConnectionList::addConnection(ConnectionParam& conn, uint16_t mux) { Lock lock(mutex_); std::pair ret = connections_.insert(ConnectionMap::value_type(mux, conn)); - if(!ret.second) - { + if(!ret.second) { connections_.erase(ret.first); connections_.insert(ConnectionMap::value_type(mux, conn)); } @@ -82,8 +82,8 @@ void ConnectionList::addConnection(ConnectionParam &conn, u_int16_t mux ) const ConnectionMap::iterator ConnectionList::getEnd() { - Lock lock(mutex_); - return connections_.end(); + Lock lock(mutex_); + return connections_.end(); } ConnectionMap::iterator ConnectionList::getBeginUnlocked() @@ -103,50 +103,51 @@ ConnectionMap::iterator ConnectionList::getEndUnlocked() return connections_.end(); } -const ConnectionMap::iterator ConnectionList::getConnection(u_int16_t mux) +const ConnectionMap::iterator ConnectionList::getConnection(uint16_t mux) { - Lock lock(mutex_); - ConnectionMap::iterator it = connections_.find(mux); - return it; + Lock lock(mutex_); + ConnectionMap::iterator it = connections_.find(mux); + return it; } -ConnectionParam & ConnectionList::getOrNewConnectionUnlocked(u_int16_t mux) +ConnectionParam& ConnectionList::getOrNewConnectionUnlocked(uint16_t mux) { - ConnectionMap::iterator it = connections_.find(mux); - if(it!=connections_.end()) - return it->second; + ConnectionMap::iterator it = connections_.find(mux); + if(it!=connections_.end()) { + return it->second; + } - u_int8_t key[] = { - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', - 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p' + uint8_t key[] = { + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', + 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p' }; - - u_int8_t salt[] = { - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', - 'i', 'j', 'k', 'l', 'm', 'n' + + uint8_t salt[] = { + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', + 'i', 'j', 'k', 'l', 'm', 'n' }; - SeqWindow * seq= new SeqWindow(0); + SeqWindow* seq= new SeqWindow(0); seq_nr_t seq_nr_=0; - KeyDerivation * kd = KeyDerivationFactory::create(gOpt.getKdPrf()); + KeyDerivation* kd = KeyDerivationFactory::create(gOpt.getKdPrf()); kd->init(Buffer(key, sizeof(key)), Buffer(salt, sizeof(salt))); - ConnectionParam conn ((*kd), (*seq), seq_nr_, PacketSourceEndpoint()); - connections_.insert(ConnectionMap::value_type(mux, conn)); - it = connections_.find(mux); - return it->second; + ConnectionParam conn((*kd), (*seq), seq_nr_, PacketSourceEndpoint()); + connections_.insert(ConnectionMap::value_type(mux, conn)); + it = connections_.find(mux); + return it->second; } void ConnectionList::clear() { Lock lock(mutex_); - connections_.clear(); + connections_.clear(); } bool ConnectionList::empty() { Lock lock(mutex_); - return connections_.empty(); + return connections_.empty(); } Mutex& ConnectionList::getMutex()