adding command line features for a client to connect to a server
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/hilnius@13155 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
54aaa39309
commit
4446f530db
@ -34,19 +34,23 @@ void* waitInput(void* data)
|
||||
{
|
||||
std::string str = "";
|
||||
bool stop = false;
|
||||
int n = 0;
|
||||
|
||||
while(!stop)
|
||||
{
|
||||
getline(std::cin, str);
|
||||
if (str == "connect=")
|
||||
{
|
||||
int id = 0;
|
||||
std::cin >> id;
|
||||
ProtocolManager::getInstance()->requestStart(new ConnectToServer(id));
|
||||
}
|
||||
if (str == "quit")
|
||||
{
|
||||
stop = true;
|
||||
}
|
||||
else if (str == "connect")
|
||||
{
|
||||
ProtocolManager::getInstance()->requestStart(new ConnectToServer());
|
||||
}
|
||||
else if (sscanf(str.c_str(), "connect=%d", &n))
|
||||
{
|
||||
ProtocolManager::getInstance()->requestStart(new ConnectToServer(n));
|
||||
}
|
||||
}
|
||||
|
||||
exit(0);
|
||||
|
@ -47,8 +47,12 @@ Event::Event(ENetEvent* event)
|
||||
{
|
||||
}
|
||||
|
||||
m_packet = NULL;
|
||||
if (event->packet)
|
||||
m_packet = event->packet;
|
||||
|
||||
if (m_packet)
|
||||
enet_packet_destroy(m_packet); // we got all we need, just remove the data.
|
||||
|
||||
std::vector<STKPeer*> peers = NetworkManager::getInstance()->getPeers();
|
||||
peer = NULL;
|
||||
@ -70,8 +74,6 @@ Event::Event(ENetEvent* event)
|
||||
|
||||
Event::~Event()
|
||||
{
|
||||
if (m_packet)
|
||||
enet_packet_destroy(m_packet);
|
||||
}
|
||||
|
||||
void Event::removeFront(int size)
|
||||
|
@ -92,7 +92,7 @@ void NetworkManager::notifyEvent(Event* event)
|
||||
switch (event->type)
|
||||
{
|
||||
case EVENT_TYPE_MESSAGE:
|
||||
Log::info("NetworkManager", "Message, Sender : %u, message = \"%s\"", event->peer->getAddress(), event->data.c_str());
|
||||
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());
|
||||
break;
|
||||
case EVENT_TYPE_DISCONNECTED:
|
||||
{
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <assert.h>
|
||||
#include <cstdlib>
|
||||
#include <errno.h>
|
||||
#include <typeinfo>
|
||||
|
||||
void* protocolManagerUpdate(void* data)
|
||||
{
|
||||
@ -175,7 +176,7 @@ void ProtocolManager::requestTerminate(Protocol* protocol)
|
||||
|
||||
void ProtocolManager::startProtocol(ProtocolInfo protocol)
|
||||
{
|
||||
Log::info("ProtocolManager", "A new protocol with id=%u has been started. There are %ld protocols running.", protocol.id, m_protocols.size()+1);
|
||||
Log::info("ProtocolManager", "A %s protocol with id=%u has been started. There are %ld protocols running.", typeid(*protocol.protocol).name(), protocol.id, m_protocols.size()+1);
|
||||
// add the protocol to the protocol vector so that it's updated
|
||||
pthread_mutex_lock(&m_protocols_mutex);
|
||||
m_protocols.push_back(protocol);
|
||||
@ -214,6 +215,7 @@ void ProtocolManager::protocolTerminated(ProtocolInfo protocol)
|
||||
{
|
||||
pthread_mutex_lock(&m_protocols_mutex); // be sure that noone accesses the protocols vector while we erase a protocol
|
||||
int offset = 0;
|
||||
std::string protocol_type = typeid(*protocol.protocol).name();
|
||||
for (unsigned int i = 0; i < m_protocols.size(); i++)
|
||||
{
|
||||
if (m_protocols[i-offset].protocol == protocol.protocol)
|
||||
@ -223,7 +225,7 @@ void ProtocolManager::protocolTerminated(ProtocolInfo protocol)
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
Log::info("ProtocolManager", "A protocol has been terminated. There are %ld protocols running.", m_protocols.size());
|
||||
Log::info("ProtocolManager", "A %s protocol has been terminated. There are %ld protocols running.", protocol_type.c_str(), m_protocols.size());
|
||||
pthread_mutex_unlock(&m_protocols_mutex);
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ void ConnectToPeer::notifyEvent(Event* event)
|
||||
{
|
||||
if (event->type == EVENT_TYPE_CONNECTED)
|
||||
{
|
||||
Log::info("ConnectToPeer", "The Connect To Server protocol has \
|
||||
Log::info("ConnectToPeer", "The Connect To Server protocol has\
|
||||
received an event notifying that he's connected to the peer.");
|
||||
m_state = CONNECTED; // we received a message, we are connected
|
||||
}
|
||||
|
@ -312,12 +312,12 @@ void ServerLobbyRoomProtocol::update()
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::error("ServerLobbyRoomProtocol", "INSERT SOME ERROR MESSAGE");
|
||||
Log::error("ServerLobbyRoomProtocol", "Error while reading the list.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Log::error("ServerLobbyRoomProtocol", "Cannot retrieve the list");
|
||||
Log::error("ServerLobbyRoomProtocol", "Cannot retrieve the list.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,7 @@ void* waitInput2(void* data)
|
||||
{
|
||||
std::string str = "";
|
||||
bool stop = false;
|
||||
int n = 0;
|
||||
while(!stop)
|
||||
{
|
||||
getline(std::cin, str);
|
||||
|
@ -58,7 +58,7 @@ bool STKPeer::connectToHost(STKHost* localhost, TransportAddress host, uint32_t
|
||||
|
||||
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>>24)&0xff,(m_peer->address.host>>16)&0xff,(m_peer->address.host>>8)&0xff,(m_peer->address.host>>0)&0xff,m_peer->address.port);
|
||||
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);
|
||||
ENetPacket* packet = enet_packet_create(data.c_str(), data.size()+1,ENET_PACKET_FLAG_RELIABLE);
|
||||
|
||||
enet_peer_send(m_peer, 0, packet);
|
||||
@ -66,7 +66,7 @@ void STKPeer::sendPacket(NetworkString const& data)
|
||||
|
||||
uint32_t STKPeer::getAddress() const
|
||||
{
|
||||
return m_peer->address.host;
|
||||
return turnEndianness(m_peer->address.host);
|
||||
}
|
||||
|
||||
uint16_t STKPeer::getPort() const
|
||||
|
Loading…
Reference in New Issue
Block a user