summaryrefslogtreecommitdiffstats
path: root/src/Net
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-02-24 22:03:34 +0100
committerMatthias Schiffer <matthias@gamezock.de>2009-02-24 22:03:34 +0100
commitf85b6d5ab264910f272e69ce5997cebec54886ce (patch)
tree06b801d5b11c2d8a2dfae16b698ebaf0b74f429b /src/Net
parent8d629ca48e9b5530416127e2e52c945fe1f9ee52 (diff)
downloadmad-f85b6d5ab264910f272e69ce5997cebec54886ce.tar
mad-f85b6d5ab264910f272e69ce5997cebec54886ce.zip
Requests Status, DaemonStatus und UserList in XmlRequests umgewandelt
Diffstat (limited to 'src/Net')
-rw-r--r--src/Net/Packet.h3
-rw-r--r--src/Net/Packets/HostStatusPacket.cpp75
-rw-r--r--src/Net/Packets/HostStatusPacket.h123
-rw-r--r--src/Net/Packets/Makefile.am4
-rw-r--r--src/Net/Packets/Makefile.in9
-rw-r--r--src/Net/Packets/UserListPacket.cpp85
-rw-r--r--src/Net/Packets/UserListPacket.h79
7 files changed, 6 insertions, 372 deletions
diff --git a/src/Net/Packet.h b/src/Net/Packet.h
index 7baa454..37df13a 100644
--- a/src/Net/Packet.h
+++ b/src/Net/Packet.h
@@ -34,11 +34,10 @@ class Packet {
OK = 0x0000, ERROR = 0x0001, DISCONNECT = 0x0002, LOG = 0x0003,
GSSAPI_AUTH = 0x0010, IDENTIFY = 0x0011,
LIST_DAEMONS = 0x0020,
- STATUS = 0x0030, DAEMON_STATUS = 0x0031, FS_INFO = 0x0032, DAEMON_FS_INFO = 0x0033,
+ FS_INFO = 0x0032, DAEMON_FS_INFO = 0x0033,
COMMAND_SHUTDOWN = 0x0040, COMMAND_REBOOT = 0x0041,
DAEMON_COMMAND_SHUTDOWN = 0x0050, DAEMON_COMMAND_REBOOT = 0x0051,
DAEMON_STATE_UPDATE = 0x0060,
- USERS_LIST = 0x0070,
XML = 0xFFFF
};
diff --git a/src/Net/Packets/HostStatusPacket.cpp b/src/Net/Packets/HostStatusPacket.cpp
deleted file mode 100644
index f998c2c..0000000
--- a/src/Net/Packets/HostStatusPacket.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * HostStatusPacket.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 "HostStatusPacket.h"
-
-#include <cstdio>
-#include <cstring>
-#include <string>
-
-
-namespace Mad {
-namespace Net {
-namespace Packets {
-
-HostStatusPacket::HostStatusPacket(Type type, uint16_t requestId, uint32_t uptime, uint32_t idleTime,
- uint32_t totalMem, uint32_t freeMem, uint32_t totalSwap, uint32_t freeSwap,
- uint32_t currentLoad, uint32_t nProcesses, float loadAvg1val, float loadAvg5val, float loadAvg15val)
-: Packet(type, requestId), loadAvg1(loadAvg1val), loadAvg5(loadAvg5val), loadAvg15(loadAvg15val)
-{
- char buf[20];
- std::snprintf(buf, sizeof(buf), "%.2f %.2f %.2f", loadAvg1, loadAvg5, loadAvg15);
-
- setLength(sizeof(CoreStatusData) + strlen(buf));
- coreStatusData = (CoreStatusData*)&rawData->data;
-
- coreStatusData->uptime = htonl(uptime);
- coreStatusData->idleTime = htonl(idleTime);
-
- coreStatusData->totalMem = htonl(totalMem);
- coreStatusData->freeMem = htonl(freeMem);
- coreStatusData->totalSwap = htonl(totalSwap);
- coreStatusData->freeSwap = htonl(freeSwap);
-
- coreStatusData->currentLoad = htonl(currentLoad);
- coreStatusData->nProcesses = htonl(nProcesses);
-
- std::memcpy(coreStatusData->charData, buf, strlen(buf));
-}
-
-HostStatusPacket& HostStatusPacket::operator=(const Packet &p) {
- Packet::operator=(p);
- if(getLength() < sizeof(CoreStatusData))
- setLength(sizeof(CoreStatusData));
- coreStatusData = (CoreStatusData*)&rawData->data;
-
- parsePacket();
-
- return *this;
-}
-
-void HostStatusPacket::parsePacket() {
- coreStatusData = (CoreStatusData*)&rawData->data;
-
- std::sscanf(std::string((char*)coreStatusData->charData, getLength()-sizeof(coreStatusData)).c_str(), "%f %f %f", &loadAvg1, &loadAvg5, &loadAvg15);
-}
-
-}
-}
-}
diff --git a/src/Net/Packets/HostStatusPacket.h b/src/Net/Packets/HostStatusPacket.h
deleted file mode 100644
index fa0910c..0000000
--- a/src/Net/Packets/HostStatusPacket.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * HostStatusPacket.h
- *
- * 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/>.
- */
-
-#ifndef MAD_NET_PACKETS_HOSTSTATUSPACKET_H_
-#define MAD_NET_PACKETS_HOSTSTATUSPACKET_H_
-
-#include "../Packet.h"
-
-namespace Mad {
-namespace Net {
-namespace Packets {
-
-class HostStatusPacket : public Packet {
- protected:
- struct CoreStatusData {
- uint32_t uptime;
- uint32_t idleTime;
-
- uint32_t totalMem;
- uint32_t freeMem;
- uint32_t totalSwap;
- uint32_t freeSwap;
-
- uint32_t currentLoad;
- uint32_t nProcesses;
-
- uint8_t charData[0];
- };
-
- CoreStatusData *coreStatusData;
-
- float loadAvg1, loadAvg5, loadAvg15;
-
- void parsePacket();
-
- public:
- HostStatusPacket(Type type, uint16_t requestId, uint32_t uptime = 0, uint32_t idleTime = 0,
- uint32_t totalMem = 0, uint32_t freeMem = 0, uint32_t totalSwap = 0, uint32_t freeSwap = 0,
- uint32_t currentLoad = 0, uint32_t nProcesses = 0, float loadAvg1val = 0, float loadAvg5val = 0, float loadAvg15val = 0);
-
- HostStatusPacket(const Packet &p) : Packet(p) {
- if(getLength() < sizeof(CoreStatusData))
- setLength(sizeof(CoreStatusData));
-
- parsePacket();
- }
-
- HostStatusPacket(const HostStatusPacket &p) : Packet(p) {
- parsePacket();
- }
-
- HostStatusPacket& operator=(const Packet &p);
-
- HostStatusPacket& operator=(const HostStatusPacket &p) {
- return (*this = (Packet)p);
- }
-
- uint32_t getUptime() const {
- return ntohl(coreStatusData->uptime);
- }
-
- uint32_t getIdleTime() const {
- return ntohl(coreStatusData->idleTime);
- }
-
- uint32_t getTotalMem() const {
- return ntohl(coreStatusData->totalMem);
- }
-
- uint32_t getFreeMem() const {
- return ntohl(coreStatusData->freeMem);
- }
-
- uint32_t getTotalSwap() const {
- return ntohl(coreStatusData->totalSwap);
- }
-
- uint32_t getFreeSwap() const {
- return ntohl(coreStatusData->freeSwap);
- }
-
- uint32_t getCurrentLoad() const {
- return ntohl(coreStatusData->currentLoad);
- }
-
- uint32_t getProcessNumber() const {
- return ntohl(coreStatusData->nProcesses);
- }
-
- float getLoadAverage1() const {
- return loadAvg1;
- }
-
- float getLoadAverage5() const {
- return loadAvg5;
- }
-
- float getLoadAverage15() const {
- return loadAvg15;
- }
-};
-
-}
-}
-}
-
-#endif /* MAD_NET_PACKETS_HOSTSTATUSPACKET_H_ */
diff --git a/src/Net/Packets/Makefile.am b/src/Net/Packets/Makefile.am
index b8ebfc0..6f950c9 100644
--- a/src/Net/Packets/Makefile.am
+++ b/src/Net/Packets/Makefile.am
@@ -1,4 +1,4 @@
noinst_LTLIBRARIES = libpackets.la
-libpackets_la_SOURCES = ErrorPacket.cpp FSInfoPacket.cpp HostListPacket.cpp HostStatePacket.cpp HostStatusPacket.cpp LogPacket.cpp UserListPacket.cpp
+libpackets_la_SOURCES = ErrorPacket.cpp FSInfoPacket.cpp HostListPacket.cpp HostStatePacket.cpp LogPacket.cpp
-noinst_HEADERS = ErrorPacket.h FSInfoPacket.h HostListPacket.h HostStatePacket.h HostStatusPacket.h LogPacket.h UserListPacket.h
+noinst_HEADERS = ErrorPacket.h FSInfoPacket.h HostListPacket.h HostStatePacket.h LogPacket.h
diff --git a/src/Net/Packets/Makefile.in b/src/Net/Packets/Makefile.in
index 47641fb..2fb4fca 100644
--- a/src/Net/Packets/Makefile.in
+++ b/src/Net/Packets/Makefile.in
@@ -51,8 +51,7 @@ CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libpackets_la_LIBADD =
am_libpackets_la_OBJECTS = ErrorPacket.lo FSInfoPacket.lo \
- HostListPacket.lo HostStatePacket.lo HostStatusPacket.lo \
- LogPacket.lo UserListPacket.lo
+ HostListPacket.lo HostStatePacket.lo LogPacket.lo
libpackets_la_OBJECTS = $(am_libpackets_la_OBJECTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
@@ -218,8 +217,8 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
noinst_LTLIBRARIES = libpackets.la
-libpackets_la_SOURCES = ErrorPacket.cpp FSInfoPacket.cpp HostListPacket.cpp HostStatePacket.cpp HostStatusPacket.cpp LogPacket.cpp UserListPacket.cpp
-noinst_HEADERS = ErrorPacket.h FSInfoPacket.h HostListPacket.h HostStatePacket.h HostStatusPacket.h LogPacket.h UserListPacket.h
+libpackets_la_SOURCES = ErrorPacket.cpp FSInfoPacket.cpp HostListPacket.cpp HostStatePacket.cpp LogPacket.cpp
+noinst_HEADERS = ErrorPacket.h FSInfoPacket.h HostListPacket.h HostStatePacket.h LogPacket.h
all: all-am
.SUFFIXES:
@@ -275,9 +274,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FSInfoPacket.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HostListPacket.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HostStatePacket.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HostStatusPacket.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LogPacket.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UserListPacket.Plo@am__quote@
.cpp.o:
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/src/Net/Packets/UserListPacket.cpp b/src/Net/Packets/UserListPacket.cpp
deleted file mode 100644
index d7415c3..0000000
--- a/src/Net/Packets/UserListPacket.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * UserListPacket.cpp
- *
- * Copyright (C) 2009 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 "UserListPacket.h"
-#include <cstring>
-#include <sstream>
-
-namespace Mad {
-namespace Net {
-namespace Packets {
-
-void UserListPacket::assemblePacket() {
- std::string str;
-
- for(std::vector<Common::UserInfo>::iterator user = userList.begin(); user != userList.end(); ++user)
- str += user->getUsername() + "\n" + user->getFullName() + "\n";
-
- setLength(sizeof(uint32_t) + sizeof(UserData)*userList.size() + str.length());
-
- nUsers = (uint32_t*)rawData->data;
- userData = (UserData*)(rawData->data + sizeof(uint32_t));
- charData = (char*)(rawData->data + sizeof(uint32_t) + sizeof(UserData)*userList.size());
-
- std::memcpy(charData, str.c_str(), str.length());
-
- *nUsers = htonl(userList.size());
-
- for(size_t i = 0; i < userList.size(); ++i) {
- userData[i].uid = htonl((uint32_t)userList[i].getUid());
- userData[i].gid = htonl((uint32_t)userList[i].getGid());
- }
-}
-
-void UserListPacket::parsePacket() {
- userList.clear();
-
- if(getLength() < sizeof(uint16_t))
- return;
-
- nUsers = (uint32_t*)rawData->data;
- userList.resize(ntohl(*nUsers));
-
- if(getLength() < sizeof(uint32_t) + sizeof(UserData)*userList.size())
- setLength(sizeof(uint32_t) + sizeof(UserData)*userList.size());
-
- nUsers = (uint32_t*)rawData->data;
- userData = (UserData*)(rawData->data + sizeof(uint32_t));
- charData = (char*)(rawData->data + sizeof(uint32_t) + sizeof(UserData)*userList.size());
-
- std::istringstream stream(std::string(charData, getLength() - (sizeof(uint32_t)+sizeof(UserData)*userList.size())));
-
- for(size_t i = 0; i < userList.size(); ++i) {
- userList[i].setUid(ntohl(userData[i].uid));
- userList[i].setGid(ntohl(userData[i].gid));
-
- if(!stream.eof()) {
- std::string str;
-
- std::getline(stream, str);
- userList[i].setUsername(str);
- std::getline(stream, str);
- userList[i].setFullName(str);
- }
- }
-}
-
-}
-}
-}
diff --git a/src/Net/Packets/UserListPacket.h b/src/Net/Packets/UserListPacket.h
deleted file mode 100644
index 364a36d..0000000
--- a/src/Net/Packets/UserListPacket.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * UserListPacket.h
- *
- * Copyright (C) 2009 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/>.
- */
-
-#ifndef MAD_NET_PACKETS_USERLISTPACKET_H_
-#define MAD_NET_PACKETS_USERLISTPACKET_H_
-
-#include "../Packet.h"
-#include <Common/UserInfo.h>
-#include <vector>
-
-namespace Mad {
-namespace Net {
-namespace Packets {
-
-class UserListPacket : public Packet {
- protected:
- struct UserData {
- uint32_t uid;
- uint32_t gid;
- };
-
- uint32_t *nUsers;
- UserData *userData;
- char *charData;
-
- std::vector<Common::UserInfo> userList;
-
- void assemblePacket();
- void parsePacket();
-
- public:
- UserListPacket(Type type, uint16_t requestId, const std::vector<Common::UserInfo> &users) : Packet(type, requestId), userList(users) {
- assemblePacket();
- }
-
- UserListPacket(const Packet &p) : Packet(p) {
- parsePacket();
- }
-
- UserListPacket& operator=(const Packet &p) {
- Packet::operator=(p);
- parsePacket();
-
- return *this;
- }
-
- UserListPacket& operator=(const UserListPacket &p) {
- Packet::operator=(p);
- parsePacket();
-
- return *this;
- }
-
- const std::vector<Common::UserInfo>& getUserInfo() const {
- return userList;
- }
-};
-
-}
-}
-}
-
-#endif /* MAD_NET_PACKETS_USERLISTPACKET_H_ */