Added back in eq stream ident timeout, also fixed bug with opcode manager

This commit is contained in:
KimLS 2016-11-05 16:38:57 -07:00
parent 1ada60b611
commit d83e8b7d8f
3 changed files with 12 additions and 14 deletions

View File

@ -45,13 +45,12 @@ void EQStreamIdentifier::Process() {
Record &r = *cur;
//first see if this stream has expired
//if(r.expire.Check(false)) {
// //this stream has failed to match any pattern in our timeframe.
// Log.Out(Logs::General, Logs::Netcode, "[IDENTIFY] Unable to identify stream from %s:%d before timeout.", long2ip(r.stream->GetRemoteIP()).c_str(), ntohs(r.stream->GetRemotePort()));
// r.stream->ReleaseFromUse();
// cur = m_streams.erase(cur);
// continue;
//}
if(r.expire.Check(false)) {
Log.Out(Logs::General, Logs::Netcode, "[IDENTIFY] Unable to identify stream from %s:%d before timeout.", r.stream->GetRemoteAddr().c_str(), ntohs(r.stream->GetRemotePort()));
r.stream->Close();
cur = m_streams.erase(cur);
continue;
}
//then make sure the stream is still active
//if stream hasn't finished initializing then continue;

View File

@ -57,6 +57,7 @@ void EQ::Net::DaybreakConnectionManager::Attach(uv_loop_t *loop)
rc = uv_udp_recv_start(&m_socket,
[](uv_handle_t* handle, size_t suggested_size, uv_buf_t* buf) {
buf->base = new char[suggested_size];
memset(buf->base, 0, suggested_size);
buf->len = suggested_size;
},
[](uv_udp_t* handle, ssize_t nread, const uv_buf_t* buf, const struct sockaddr* addr, unsigned flags) {

View File

@ -42,14 +42,12 @@ void EQ::Net::EQStreamManager::DaybreakPacketRecv(std::shared_ptr<DaybreakConnec
auto iter = m_streams.find(connection);
if (iter != m_streams.end()) {
auto &stream = iter->second;
if (stream->m_opcode_manager && stream->m_opcode_manager) {
std::unique_ptr<EQ::Net::Packet> t(new EQ::Net::WritablePacket());
t->PutPacket(0, p);
stream->m_packet_queue.push_back(std::move(t));
std::unique_ptr<EQ::Net::Packet> t(new EQ::Net::WritablePacket());
t->PutPacket(0, p);
stream->m_packet_queue.push_back(std::move(t));
if (m_on_data_avail) {
m_on_data_avail(stream);
}
if (m_on_data_avail) {
m_on_data_avail(stream);
}
}
}