diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-03-01 00:51:00 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-03-01 00:51:00 +0100 |
commit | 63907817cb057f497f03a28016d408885cbe41ea (patch) | |
tree | a9ad6b0b19bff7722b21375137ba6e53c8869c91 /src/Net/Packets/FSInfoPacket.cpp | |
parent | 46c110f7a14e4b5d0e8bd27259f7744ae8a36382 (diff) | |
download | mad-63907817cb057f497f03a28016d408885cbe41ea.tar mad-63907817cb057f497f03a28016d408885cbe41ea.zip |
Alle uebrigen Requests ausser GSSAPIAuthRequest in XmlRequests umgewandelt
Diffstat (limited to 'src/Net/Packets/FSInfoPacket.cpp')
-rw-r--r-- | src/Net/Packets/FSInfoPacket.cpp | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/src/Net/Packets/FSInfoPacket.cpp b/src/Net/Packets/FSInfoPacket.cpp deleted file mode 100644 index c328f8a..0000000 --- a/src/Net/Packets/FSInfoPacket.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * FSInfoPacket.cpp - * - * Copyright (C) 2008 Matthias Schiffer <matthias@gamezock.de> - * - * This program 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 3 of the License, or - * (at your option) any later version. - * - * This program 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 this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "FSInfoPacket.h" -#include <cstring> -#include <sstream> - -namespace Mad { -namespace Net { -namespace Packets { - -void FSInfoPacket::assemblePacket() { - std::string str; - - for(std::vector<Common::SystemBackend::FSInfo>::iterator fs = fsList.begin(); fs != fsList.end(); ++fs) - str += fs->fsName + "\n" + fs->mountedOn + "\n"; - - setLength(sizeof(uint16_t) + sizeof(FSData)*fsList.size() + str.length()); - - nFS = (uint16_t*)rawData->data; - fsData = (FSData*)(rawData->data + sizeof(uint16_t)); - charData = (char*)(rawData->data + sizeof(uint16_t) + sizeof(FSData)*fsList.size()); - - std::memcpy(charData, str.c_str(), str.length()); - - *nFS = htons(fsList.size()); - - for(size_t i = 0; i < fsList.size(); ++i) { - fsData[i].total = htonll(fsList[i].total); - fsData[i].used = htonll(fsList[i].used); - fsData[i].available = htonll(fsList[i].available); - } -} - -void FSInfoPacket::parsePacket() { - fsList.clear(); - - if(getLength() < sizeof(uint16_t)) - return; - - nFS = (uint16_t*)rawData->data; - fsList.resize(ntohs(*nFS)); - - if(getLength() < sizeof(uint16_t) + sizeof(FSData)*fsList.size()) - setLength(sizeof(uint16_t) + sizeof(FSData)*fsList.size()); - - nFS = (uint16_t*)rawData->data; - fsData = (FSData*)(rawData->data + sizeof(uint16_t)); - charData = (char*)(rawData->data + sizeof(uint16_t) + sizeof(FSData)*fsList.size()); - - std::istringstream stream(std::string(charData, getLength() - (sizeof(uint16_t)+sizeof(FSData)*fsList.size()))); - - for(size_t i = 0; i < fsList.size(); ++i) { - fsList[i].total = ntohll(fsData[i].total); - fsList[i].used = ntohll(fsData[i].used); - fsList[i].available = ntohll(fsData[i].available); - - if(!stream.eof()) { - std::string str; - - std::getline(stream, str); - fsList[i].fsName = str; - std::getline(stream, str); - fsList[i].mountedOn = str; - } - } -} - -} -} -} |