fixing buts appearing after some time being connected

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/hilnius@13158 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
hilnius
2013-07-09 23:46:09 +00:00
parent 72ed28a992
commit 6199524440
14 changed files with 30 additions and 34 deletions

View File

@@ -58,7 +58,7 @@ Event::Event(ENetEvent* event)
peer = NULL;
for (unsigned int i = 0; i < peers.size(); i++)
{
if (*peers[i] == event->peer)
if (peers[i]->m_peer == event->peer)
{
peer = peers[i];
return;
@@ -69,6 +69,7 @@ Event::Event(ENetEvent* event)
STKPeer* new_peer = new STKPeer();
new_peer->m_peer = event->peer;
peer = new_peer;
Log::verbose("Event", "Creating a new peer, address are STKPeer:%ld, Peer:%ld", (long int)(new_peer), (long int)(event->peer));
}
}

View File

@@ -92,21 +92,21 @@ void NetworkManager::notifyEvent(Event* event)
switch (event->type)
{
case EVENT_TYPE_MESSAGE:
Log::info("NetworkManager", "Message, Sender : %i.%i.%i.%i, message = \"%s\"", event->peer->getAddress()>>24&0xff, event->peer->getAddress()>>16&0xff, event->peer->getAddress()>>8&0xff, event->peer->getAddress()&0xff, event->data.c_str());
Log::debug("NetworkManager", "Message, Sender : %i.%i.%i.%i, message = \"%s\"", event->peer->getAddress()>>24&0xff, event->peer->getAddress()>>16&0xff, event->peer->getAddress()>>8&0xff, event->peer->getAddress()&0xff, event->data.c_str());
break;
case EVENT_TYPE_DISCONNECTED:
{
Log::info("NetworkManager", "Somebody is now disconnected. There are now %lu peers.", m_peers.size());
Log::info("NetworkManager", "Disconnected host: %i.%i.%i.%i:%i", event->peer->getAddress()>>24&0xff, event->peer->getAddress()>>16&0xff, event->peer->getAddress()>>8&0xff, event->peer->getAddress()&0xff,event->peer->getPort());
Log::debug("NetworkManager", "Disconnected host: %i.%i.%i.%i:%i", event->peer->getAddress()>>24&0xff, event->peer->getAddress()>>16&0xff, event->peer->getAddress()>>8&0xff, event->peer->getAddress()&0xff,event->peer->getPort());
// remove the peer:
bool removed = false;
for (unsigned int i = 0; i < m_peers.size(); i++)
{
Log::error("NetworkManager", "Saved : %ld, Sender : %ld", (long int)(m_peers[i]), (long int)(event->peer));
if (m_peers[i] == event->peer && !removed) // remove only one
{
delete m_peers[i];
m_peers.erase(m_peers.begin()+i, m_peers.begin()+i+1);
Log::info("NetworkManager", "The peer has been removed from the Network Manager.");
Log::verbose("NetworkManager", "The peer has been removed from the Network Manager.");
removed = true;
}
else if (m_peers[i] == event->peer)
@@ -115,11 +115,15 @@ void NetworkManager::notifyEvent(Event* event)
}
}
if (!removed)
Log::fatal("NetworkManager", "The peer that has been disconnected was not registered by the Network Manager.");
Log::warn("NetworkManager", "The peer that has been disconnected was not registered by the Network Manager.");
Log::debug("NetworkManager", "Somebody is now disconnected. There are now %lu peers.", m_peers.size());
break;
}
case EVENT_TYPE_CONNECTED:
Log::info("NetworkManager", "A client has just connected. There are now %lu peers.", m_peers.size() + 1);
Log::debug("NetworkManager", "A client has just connected. There are now %lu peers.", m_peers.size() + 1);
Log::verbose("NetworkManager", "Address of event->peer after connection : %ld", (long int)(event->peer));
// create the new peer:
m_peers.push_back(event->peer);
break;

View File

@@ -232,11 +232,13 @@ void ProtocolManager::protocolTerminated(ProtocolInfo protocol)
void ProtocolManager::update()
{
// before updating, notice protocols that they have received information
pthread_mutex_lock(&m_events_mutex); // secure threads
int size = m_events_to_process.size();
for (int i = 0; i < size; i++)
{
pthread_mutex_lock(&m_events_mutex); // secure threads
Event* event = m_events_to_process.back();
m_events_to_process.pop_back();
pthread_mutex_unlock(&m_events_mutex); // release the mutex
PROTOCOL_TYPE searchedProtocol = PROTOCOL_NONE;
if (event->type == EVENT_TYPE_MESSAGE)
@@ -255,9 +257,7 @@ void ProtocolManager::update()
m_protocols[i].protocol->notifyEvent(event);
}
delete event;
m_events_to_process.pop_back();
}
pthread_mutex_unlock(&m_events_mutex); // release the mutex
// now update all protocols
pthread_mutex_lock(&m_protocols_mutex);

View File

@@ -50,8 +50,7 @@ void ConnectToPeer::notifyEvent(Event* event)
{
if (event->type == EVENT_TYPE_CONNECTED)
{
Log::info("ConnectToPeer", "The Connect To Server protocol has\
received an event notifying that he's connected to the peer.");
Log::debug("ConnectToPeer", "Received event notifying peer connection.");
m_state = CONNECTED; // we received a message, we are connected
}
}
@@ -97,15 +96,6 @@ void ConnectToPeer::update()
}
break;
case CONNECTING: // waiting the peer to connect
{
static double timer = 0;
if (Time::getRealTime() > timer+5.0) // every 5 seconds
{
timer = Time::getRealTime();
NetworkManager::getInstance()->connect(m_peer_address);
}
break;
}
case CONNECTED:
{
m_listener->requestTerminate( m_listener->getProtocol(m_current_protocol_id)); // kill the ping protocol because we're connected

View File

@@ -64,7 +64,7 @@ void GetPeerAddress::update()
TransportAddress* addr = static_cast<TransportAddress*>(m_callback_object);
result->get("ip", &addr->ip);
result->get("port", &addr->port);
Log::info("GetPeerAddress", "Address gotten successfully.");
Log::debug("GetPeerAddress", "Address gotten successfully.");
}
else
{

View File

@@ -97,7 +97,7 @@ void GetPublicAddress::update()
bytes[19] = (uint8_t)(m_stun_tansaction_id[2]);
bytes[20] = '\0';
Log::info("GetPublicAddress", "Querrying STUN server 132.177.123.6");
Log::verbose("GetPublicAddress", "Querrying STUN server 132.177.123.6");
unsigned int dst = (132<<24)+(177<<16)+(123<<8)+6;
NetworkManager::getInstance()->setManualSocketsMode(true);
NetworkManager::getInstance()->getHost()->sendRawPacket(bytes, 20, TransportAddress(dst, 3478));
@@ -131,7 +131,7 @@ void GetPublicAddress::update()
data[18] == (uint8_t)(m_stun_tansaction_id[2]>>8 ) &&
data[19] == (uint8_t)(m_stun_tansaction_id[2] ))
{
Log::info("GetPublicAddress", "The STUN server responded with a valid answer");
Log::verbose("GetPublicAddress", "The STUN server responded with a valid answer");
int message_size = data[2]*256+data[3];
// parse the stun message now:
@@ -182,7 +182,7 @@ void GetPublicAddress::update()
// finished parsing, we know our public transport address
if (valid)
{
Log::info("GetPublicAddress", "The public address has been found : %i.%i.%i.%i:%i", address>>24&0xff, address>>16&0xff, address>>8&0xff, address&0xff, port);
Log::debug("GetPublicAddress", "The public address has been found : %i.%i.%i.%i:%i", address>>24&0xff, address>>16&0xff, address>>8&0xff, address&0xff, port);
m_state = ADDRESS_KNOWN;
NetworkManager::getInstance()->setManualSocketsMode(false);
TransportAddress* addr = static_cast<TransportAddress*>(m_callback_object);

View File

@@ -56,7 +56,7 @@ void HidePublicAddress::update()
{
if(rec_success == "yes")
{
Log::info("ShowPublicAddress", "Address hidden successfully.");
Log::debug("ShowPublicAddress", "Address hidden successfully.");
}
else
{

View File

@@ -270,7 +270,7 @@ void ServerLobbyRoomProtocol::update()
NetworkManager::getInstance()->setPublicAddress(m_public_address);
m_current_protocol_id = m_listener->requestStart(new StartServer());
m_state = LAUNCHING_SERVER;
Log::info("ServerLobbyRoomProtocol", "Public address known.");
Log::debug("ServerLobbyRoomProtocol", "Public address known.");
}
break;
case LAUNCHING_SERVER:
@@ -306,7 +306,7 @@ void ServerLobbyRoomProtocol::update()
for (unsigned int i = 0; i < users_xml->getNumNodes(); i++)
{
users_xml->getNode(i)->get("id", &id);
Log::info("ServerLobbyRoomProtocol", "User with id %d wants to connect.", id);
Log::debug("ServerLobbyRoomProtocol", "User with id %d wants to connect.", id);
m_incoming_peers_ids.push_back(id);
}
}

View File

@@ -41,7 +41,7 @@ void RequestConnection::update()
{
if (rec_success == "yes")
{
Log::info("RequestConnection", "Connection Request made successfully.");
Log::debug("RequestConnection", "Connection Request made successfully.");
}
else
{

View File

@@ -60,7 +60,7 @@ void ShowPublicAddress::update()
{
if(rec_success == "yes")
{
Log::info("ShowPublicAddress", "Address shown successfully.");
Log::debug("ShowPublicAddress", "Address shown successfully.");
}
else
{

View File

@@ -140,7 +140,7 @@ void STKHost::sendRawPacket(uint8_t* data, int length, TransportAddress dst)
to.sin_addr.s_addr = htonl(dst.ip);
sendto(m_host->socket, (char*)data, length, 0,(sockaddr*)&to, to_len);
printf("Raw packet sent to %u:%u\n", dst.ip, dst.port);
Log::verbose("STKHost", "Raw packet sent to %u:%u\n", dst.ip, dst.port);
}
// ----------------------------------------------------------------------------

View File

@@ -52,7 +52,7 @@ bool STKPeer::connectToHost(STKHost* localhost, TransportAddress host, uint32_t
Log::error("STKPeer", "Could not try to connect to server.\n");
return false;
}
Log::info("STKPeer", "Connecting to %i.%i.%i.%i:%i.\n", (peer->address.host>>0)&0xff,(peer->address.host>>8)&0xff,(peer->address.host>>16)&0xff,(peer->address.host>>24)&0xff,peer->address.port);
Log::verbose("STKPeer", "Connecting to %i.%i.%i.%i:%i.\nENetPeer address is %ld", (peer->address.host>>0)&0xff,(peer->address.host>>8)&0xff,(peer->address.host>>16)&0xff,(peer->address.host>>24)&0xff,peer->address.port, (long int)(peer));
return true;
}
@@ -63,7 +63,7 @@ void STKPeer::disconnect()
void STKPeer::sendPacket(NetworkString const& data)
{
Log::info("STKPeer", "sending packet of size %d to %i.%i.%i.%i:%i", data.size(), (m_peer->address.host>>0)&0xff,(m_peer->address.host>>8)&0xff,(m_peer->address.host>>16)&0xff,(m_peer->address.host>>24)&0xff,m_peer->address.port);
Log::verbose("STKPeer", "sending packet of size %d to %i.%i.%i.%i:%i", data.size(), (m_peer->address.host>>0)&0xff,(m_peer->address.host>>8)&0xff,(m_peer->address.host>>16)&0xff,(m_peer->address.host>>24)&0xff,m_peer->address.port);
ENetPacket* packet = enet_packet_create(data.c_str(), data.size()+1,ENET_PACKET_FLAG_RELIABLE);
enet_peer_send(m_peer, 0, packet);

View File

@@ -33,6 +33,7 @@ class STKPeer
virtual void sendPacket(const NetworkString& data);
static bool connectToHost(STKHost* localhost, TransportAddress host, uint32_t channel_count, uint32_t data);
void disconnect();
bool isConnected() const;

View File

@@ -82,7 +82,7 @@ std::string HTTPConnector::getPage()
if(res != CURLE_OK)
Log::error("online/http_functions", "curl_easy_perform() failed: \"%s\"", curl_easy_strerror(res));
else
Log::info("online/http_functions", "Received : \"%s\"", readBuffer.c_str());
Log::verbose("online/http_functions", "Received : \"%s\"", readBuffer.c_str());
m_parameters.clear();
return readBuffer;
}