diff options
author | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2006-12-29 13:43:24 +0000 |
---|---|---|
committer | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2006-12-29 13:43:24 +0000 |
commit | 291ad04d5b5c4ab08d85eadde116f968cd579b77 (patch) | |
tree | e4dced5715a5d9792cfdc0455a6b3ee6d3116079 /src/netcomputer.cpp | |
parent | 3d404e743105bb9168c89e3451cf35d7d59120b1 (diff) | |
download | manaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.tar.gz manaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.tar.bz2 manaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.tar.xz manaserv-291ad04d5b5c4ab08d85eadde116f968cd579b77.zip |
Physically split the server into one tmwserv-acount program (account +
chat + database) and multiple tmwserv-game programs (selected with
respect to the maps). Cleaned the repository by moving server-specific
source files into dedicated directories.
Diffstat (limited to 'src/netcomputer.cpp')
-rw-r--r-- | src/netcomputer.cpp | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/src/netcomputer.cpp b/src/netcomputer.cpp deleted file mode 100644 index c27dd327..00000000 --- a/src/netcomputer.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* - * The Mana World Server - * Copyright 2004 The Mana World Development Team - * - * This file is part of The Mana World. - * - * The Mana World is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * The Mana World is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with The Mana World; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * $Id$ - */ - -#include "netcomputer.h" - -#include <iosfwd> -#include <queue> - -#include <enet/enet.h> - -#include "defines.h" -#include "messageout.h" - -#include "utils/logger.h" - -NetComputer::NetComputer(ENetPeer *peer): - mPeer(peer) -{ -} - -bool -NetComputer::isConnected() -{ - return (mPeer->state == ENET_PEER_STATE_CONNECTED); -} - -void -NetComputer::disconnect(const MessageOut &msg) -{ - if (isConnected()) - { - /* ChannelID 0xFF is the channel used by enet_peer_disconnect. - * If a reliable packet is send over this channel ENet guaranties - * that the message is recieved before the disconnect request. - */ - send(msg, ENET_PACKET_FLAG_RELIABLE, 0xFF); - - /* ENet generates a disconnect event - * (notifying the connection handler). - */ - enet_peer_disconnect(mPeer, 0); - } -} - -void -NetComputer::send(const MessageOut &msg, bool reliable, - unsigned int channel) -{ - LOG_INFO("Sending packet of length " << msg.getLength() << " to " - << *this, 2); - - ENetPacket *packet; - packet = enet_packet_create(msg.getData(), - msg.getLength(), - reliable ? ENET_PACKET_FLAG_RELIABLE : 0); - - if (packet) - { - enet_peer_send(mPeer, channel, packet); - } - else - { - LOG_WARN("Failure to create packet!", 0); - } -} - -std::ostream& -operator <<(std::ostream &os, const NetComputer &comp) -{ - // address.host contains the ip-address in network-byte-order - - os << ((comp.mPeer->address.host & 0xff000000) >> 24) << "." - << ((comp.mPeer->address.host & 0x00ff0000) >> 16) << "." - << ((comp.mPeer->address.host & 0x0000ff00) >> 8) << "." - << ((comp.mPeer->address.host & 0x000000ff) >> 0); - return os; -} |