summaryrefslogtreecommitdiff
path: root/src/client.cpp
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2015-03-13 22:01:49 +0100
committerLoic Blot <loic.blot@unix-experience.fr>2015-03-13 22:01:49 +0100
commit083c8c734e8af037d8ad3a1a35475a5d4756572c (patch)
tree4265ace09d605b3d1fbcde7dde2e2510798171ea /src/client.cpp
parent74d34da6cbb06a4d5659eb3287a87239c31da22c (diff)
downloadminetest-083c8c734e8af037d8ad3a1a35475a5d4756572c.tar.gz
minetest-083c8c734e8af037d8ad3a1a35475a5d4756572c.tar.bz2
minetest-083c8c734e8af037d8ad3a1a35475a5d4756572c.zip
Replace NetworkPacket pointers to references
Diffstat (limited to 'src/client.cpp')
-rw-r--r--src/client.cpp153
1 files changed, 74 insertions, 79 deletions
diff --git a/src/client.cpp b/src/client.cpp
index 8e0f657e2..dce89eb1c 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -407,15 +407,15 @@ void Client::step(float dtime)
snprintf(pName, PLAYERNAME_SIZE, "%s", myplayer->getName());
snprintf(pPassword, PASSWORD_SIZE, "%s", m_password.c_str());
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_INIT_LEGACY,
+ NetworkPacket pkt(TOSERVER_INIT_LEGACY,
1 + PLAYERNAME_SIZE + PASSWORD_SIZE + 2 + 2);
- *pkt << (u8) SER_FMT_VER_HIGHEST_READ;
- pkt->putRawString(pName,PLAYERNAME_SIZE);
- pkt->putRawString(pPassword, PASSWORD_SIZE);
- *pkt << (u16) CLIENT_PROTOCOL_VERSION_MIN << (u16) CLIENT_PROTOCOL_VERSION_MAX;
+ pkt << (u8) SER_FMT_VER_HIGHEST_READ;
+ pkt.putRawString(pName,PLAYERNAME_SIZE);
+ pkt.putRawString(pPassword, PASSWORD_SIZE);
+ pkt << (u16) CLIENT_PROTOCOL_VERSION_MIN << (u16) CLIENT_PROTOCOL_VERSION_MAX;
- Send(pkt);
+ Send(&pkt);
}
// Not connected, return
@@ -455,19 +455,19 @@ void Client::step(float dtime)
[3+6] v3s16 pos_1
...
*/
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_DELETEDBLOCKS, 1 + sizeof(v3s16) * sendlist.size());
+ NetworkPacket pkt(TOSERVER_DELETEDBLOCKS, 1 + sizeof(v3s16) * sendlist.size());
- *pkt << (u8) sendlist.size();
+ pkt << (u8) sendlist.size();
u32 k = 0;
for(std::vector<v3s16>::iterator
j = sendlist.begin();
j != sendlist.end(); ++j) {
- *pkt << *j;
+ pkt << *j;
k++;
}
- Send(pkt);
+ Send(&pkt);
if(i == deleted_blocks.end())
break;
@@ -575,9 +575,9 @@ void Client::step(float dtime)
[0] u8 count
[1] v3s16 pos_0
*/
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_GOTBLOCKS, 1 + 6);
- *pkt << (u8) 1 << r.p;
- Send(pkt);
+ NetworkPacket pkt(TOSERVER_GOTBLOCKS, 1 + 6);
+ pkt << (u8) 1 << r.p;
+ Send(&pkt);
}
}
@@ -666,15 +666,15 @@ void Client::step(float dtime)
size_t server_ids = removed_server_ids.size();
assert(server_ids <= 0xFFFF);
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_REMOVED_SOUNDS, 2 + server_ids * 4);
+ NetworkPacket pkt(TOSERVER_REMOVED_SOUNDS, 2 + server_ids * 4);
- *pkt << (u16) (server_ids & 0xFFFF);
+ pkt << (u16) (server_ids & 0xFFFF);
for(std::set<s32>::iterator i = removed_server_ids.begin();
i != removed_server_ids.end(); i++)
- *pkt << *i;
+ pkt << *i;
- Send(pkt);
+ Send(&pkt);
}
}
@@ -794,27 +794,27 @@ void Client::request_media(const std::vector<std::string> &file_requests)
FATAL_ERROR_IF(file_requests_size > 0xFFFF, "Unsupported number of file requests");
// Packet dynamicly resized
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_REQUEST_MEDIA, 2 + 0);
+ NetworkPacket pkt(TOSERVER_REQUEST_MEDIA, 2 + 0);
- *pkt << (u16) (file_requests_size & 0xFFFF);
+ pkt << (u16) (file_requests_size & 0xFFFF);
for(std::vector<std::string>::const_iterator i = file_requests.begin();
i != file_requests.end(); ++i) {
- *pkt << (*i);
+ pkt << (*i);
}
- Send(pkt);
+ Send(&pkt);
- infostream<<"Client: Sending media request list to server ("
- <<file_requests.size()<<" files. packet size)"<<std::endl;
+ infostream << "Client: Sending media request list to server ("
+ << file_requests.size() << " files. packet size)" << std::endl;
}
void Client::received_media()
{
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_RECEIVED_MEDIA, 0);
- Send(pkt);
- infostream<<"Client: Notifying server that we received all media"
- <<std::endl;
+ NetworkPacket pkt(TOSERVER_RECEIVED_MEDIA, 0);
+ Send(&pkt);
+ infostream << "Client: Notifying server that we received all media"
+ << std::endl;
}
void Client::initLocalMapSaving(const Address &address,
@@ -891,9 +891,9 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
return;
}
- NetworkPacket* pkt = new NetworkPacket(data, datasize, sender_peer_id);
+ NetworkPacket pkt(data, datasize, sender_peer_id);
- ToClientCommand command = (ToClientCommand) pkt->getCommand();
+ ToClientCommand command = (ToClientCommand) pkt.getCommand();
//infostream<<"Client: received command="<<command<<std::endl;
m_packetcounter.add((u16)command);
@@ -906,7 +906,6 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
infostream << "Client::ProcessData(): Discarding data not "
"coming from server: peer_id=" << sender_peer_id
<< std::endl;
- delete pkt;
return;
}
@@ -922,8 +921,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
* as a byte mask
*/
if(toClientCommandTable[command].state == TOCLIENT_STATE_NOT_CONNECTED) {
- handleCommand(pkt);
- delete pkt;
+ handleCommand(&pkt);
return;
}
@@ -931,7 +929,6 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
infostream << "Client: Server serialization"
" format invalid or not initialized."
" Skipping incoming command=" << command << std::endl;
- delete pkt;
return;
}
@@ -939,8 +936,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
Handle runtime commands
*/
- handleCommand(pkt);
- delete pkt;
+ handleCommand(&pkt);
}
void Client::Send(NetworkPacket* pkt)
@@ -949,7 +945,6 @@ void Client::Send(NetworkPacket* pkt)
serverCommandFactoryTable[pkt->getCommand()].channel,
pkt,
serverCommandFactoryTable[pkt->getCommand()].reliable);
- delete pkt;
}
void Client::interact(u8 action, const PointedThing& pointed)
@@ -975,17 +970,17 @@ void Client::interact(u8 action, const PointedThing& pointed)
4: use item
*/
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_INTERACT, 1 + 2 + 0);
+ NetworkPacket pkt(TOSERVER_INTERACT, 1 + 2 + 0);
- *pkt << action;
- *pkt << (u16)getPlayerItem();
+ pkt << action;
+ pkt << (u16)getPlayerItem();
std::ostringstream tmp_os(std::ios::binary);
pointed.serialize(tmp_os);
- pkt->putLongString(tmp_os.str());
+ pkt.putLongString(tmp_os.str());
- Send(pkt);
+ Send(&pkt);
}
void Client::sendNodemetaFields(v3s16 p, const std::string &formname,
@@ -995,19 +990,19 @@ void Client::sendNodemetaFields(v3s16 p, const std::string &formname,
FATAL_ERROR_IF(fields_size > 0xFFFF, "Unsupported number of nodemeta fields");
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_NODEMETA_FIELDS, 0);
+ NetworkPacket pkt(TOSERVER_NODEMETA_FIELDS, 0);
- *pkt << p << formname << (u16) (fields_size & 0xFFFF);
+ pkt << p << formname << (u16) (fields_size & 0xFFFF);
for(std::map<std::string, std::string>::const_iterator
i = fields.begin(); i != fields.end(); i++) {
const std::string &name = i->first;
const std::string &value = i->second;
- *pkt << name;
- pkt->putLongString(value);
+ pkt << name;
+ pkt.putLongString(value);
}
- Send(pkt);
+ Send(&pkt);
}
void Client::sendInventoryFields(const std::string &formname,
@@ -1016,18 +1011,18 @@ void Client::sendInventoryFields(const std::string &formname,
size_t fields_size = fields.size();
FATAL_ERROR_IF(fields_size > 0xFFFF, "Unsupported number of inventory fields");
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_INVENTORY_FIELDS, 0);
- *pkt << formname << (u16) (fields_size & 0xFFFF);
+ NetworkPacket pkt(TOSERVER_INVENTORY_FIELDS, 0);
+ pkt << formname << (u16) (fields_size & 0xFFFF);
for(std::map<std::string, std::string>::const_iterator
i = fields.begin(); i != fields.end(); i++) {
const std::string &name = i->first;
const std::string &value = i->second;
- *pkt << name;
- pkt->putLongString(value);
+ pkt << name;
+ pkt.putLongString(value);
}
- Send(pkt);
+ Send(&pkt);
}
void Client::sendInventoryAction(InventoryAction *a)
@@ -1039,19 +1034,19 @@ void Client::sendInventoryAction(InventoryAction *a)
// Make data buffer
std::string s = os.str();
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_INVENTORY_ACTION, s.size());
- pkt->putRawString(s.c_str(),s.size());
+ NetworkPacket pkt(TOSERVER_INVENTORY_ACTION, s.size());
+ pkt.putRawString(s.c_str(),s.size());
- Send(pkt);
+ Send(&pkt);
}
void Client::sendChatMessage(const std::wstring &message)
{
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_CHAT_MESSAGE, 2 + message.size() * sizeof(u16));
+ NetworkPacket pkt(TOSERVER_CHAT_MESSAGE, 2 + message.size() * sizeof(u16));
- *pkt << message;
+ pkt << message;
- Send(pkt);
+ Send(&pkt);
}
void Client::sendChangePassword(const std::wstring &oldpassword,
@@ -1065,17 +1060,17 @@ void Client::sendChangePassword(const std::wstring &oldpassword,
std::string oldpwd = translatePassword(playername, oldpassword);
std::string newpwd = translatePassword(playername, newpassword);
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_PASSWORD_LEGACY, 2 * PASSWORD_SIZE);
+ NetworkPacket pkt(TOSERVER_PASSWORD_LEGACY, 2 * PASSWORD_SIZE);
for(u8 i = 0; i < PASSWORD_SIZE; i++) {
- *pkt << (u8) (i < oldpwd.length() ? oldpwd[i] : 0);
+ pkt << (u8) (i < oldpwd.length() ? oldpwd[i] : 0);
}
for(u8 i = 0; i < PASSWORD_SIZE; i++) {
- *pkt << (u8) (i < newpwd.length() ? newpwd[i] : 0);
+ pkt << (u8) (i < newpwd.length() ? newpwd[i] : 0);
}
- Send(pkt);
+ Send(&pkt);
}
@@ -1083,40 +1078,40 @@ void Client::sendDamage(u8 damage)
{
DSTACK(__FUNCTION_NAME);
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_DAMAGE, sizeof(u8));
- *pkt << damage;
- Send(pkt);
+ NetworkPacket pkt(TOSERVER_DAMAGE, sizeof(u8));
+ pkt << damage;
+ Send(&pkt);
}
void Client::sendBreath(u16 breath)
{
DSTACK(__FUNCTION_NAME);
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_BREATH, sizeof(u16));
- *pkt << breath;
- Send(pkt);
+ NetworkPacket pkt(TOSERVER_BREATH, sizeof(u16));
+ pkt << breath;
+ Send(&pkt);
}
void Client::sendRespawn()
{
DSTACK(__FUNCTION_NAME);
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_RESPAWN, 0);
- Send(pkt);
+ NetworkPacket pkt(TOSERVER_RESPAWN, 0);
+ Send(&pkt);
}
void Client::sendReady()
{
DSTACK(__FUNCTION_NAME);
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_CLIENT_READY,
+ NetworkPacket pkt(TOSERVER_CLIENT_READY,
1 + 1 + 1 + 1 + 2 + sizeof(char) * strlen(minetest_version_hash));
- *pkt << (u8) VERSION_MAJOR << (u8) VERSION_MINOR << (u8) VERSION_PATCH_ORIG
+ pkt << (u8) VERSION_MAJOR << (u8) VERSION_MINOR << (u8) VERSION_PATCH_ORIG
<< (u8) 0 << (u16) strlen(minetest_version_hash);
- pkt->putRawString(minetest_version_hash, (u16) strlen(minetest_version_hash));
- Send(pkt);
+ pkt.putRawString(minetest_version_hash, (u16) strlen(minetest_version_hash));
+ Send(&pkt);
}
void Client::sendPlayerPos()
@@ -1168,11 +1163,11 @@ void Client::sendPlayerPos()
[12+12+4+4] u32 keyPressed
*/
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_PLAYERPOS, 12 + 12 + 4 + 4 + 4);
+ NetworkPacket pkt(TOSERVER_PLAYERPOS, 12 + 12 + 4 + 4 + 4);
- *pkt << position << speed << pitch << yaw << keyPressed;
+ pkt << position << speed << pitch << yaw << keyPressed;
- Send(pkt);
+ Send(&pkt);
}
void Client::sendPlayerItem(u16 item)
@@ -1188,11 +1183,11 @@ void Client::sendPlayerItem(u16 item)
myplayer->peer_id = our_peer_id;
assert(myplayer->peer_id == our_peer_id);
- NetworkPacket* pkt = new NetworkPacket(TOSERVER_PLAYERITEM, 2);
+ NetworkPacket pkt(TOSERVER_PLAYERITEM, 2);
- *pkt << item;
+ pkt << item;
- Send(pkt);
+ Send(&pkt);
}
void Client::removeNode(v3s16 p)