aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/salticidae/network.h10
-rw-r--r--src/util.cpp1
2 files changed, 5 insertions, 6 deletions
diff --git a/include/salticidae/network.h b/include/salticidae/network.h
index 0a0ccb9..0f7ed7d 100644
--- a/include/salticidae/network.h
+++ b/include/salticidae/network.h
@@ -505,7 +505,7 @@ void PeerNetwork<O, _, __>::Conn::on_teardown() {
if (this != p->conn.get()) return;
p->ev_ping_timer.del();
p->connected = false;
- p->conn = nullptr;
+ //p->conn = nullptr;
SALTICIDAE_LOG_INFO("connection lost: %s", std::string(*this).c_str());
// try to reconnect
p->ev_retry_timer = TimerEvent(pn->disp_ec,
@@ -603,7 +603,7 @@ void PeerNetwork<O, _, __>::start_active_conn(const NetAddr &addr) {
auto p = id2peer.find(addr)->second.get();
if (p->connected) return;
auto conn = static_pointer_cast<Conn>(MsgNet::_connect(addr));
- assert(p->conn == nullptr);
+ //assert(p->conn == nullptr);
p->conn = conn;
conn->peer_id = addr;
if (id_mode == IP_BASED)
@@ -714,7 +714,6 @@ void ClientNetwork<OpcodeType>::Conn::on_setup() {
template<typename OpcodeType>
void ClientNetwork<OpcodeType>::Conn::on_teardown() {
MsgNet::Conn::on_teardown();
- assert(this->get_mode() == Conn::PASSIVE);
get_net()->addr2conn.erase(this->get_addr());
}
@@ -724,9 +723,8 @@ void ClientNetwork<OpcodeType>::send_msg(MsgType &&msg, const NetAddr &addr) {
this->disp_tcall->async_call(
[this, addr, msg=std::forward<MsgType>(msg)](ThreadCall::Handle &) {
auto it = addr2conn.find(addr);
- if (it == addr2conn.end())
- throw PeerNetworkError("client does not exist");
- send_msg(msg, it->second);
+ if (it != addr2conn.end())
+ send_msg(msg, it->second);
});
}
diff --git a/src/util.cpp b/src/util.cpp
index 2a6a381..a0d5044 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -236,6 +236,7 @@ bool Config::load(const std::string &fname) {
}
update(optname, optval.c_str());
}
+ fclose(conf_f);
return true;
}
else