summaryrefslogtreecommitdiff
path: root/src/network.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/network.cc')
-rw-r--r--src/network.cc63
1 files changed, 28 insertions, 35 deletions
diff --git a/src/network.cc b/src/network.cc
index 67ad413..05835c0 100644
--- a/src/network.cc
+++ b/src/network.cc
@@ -8,29 +8,36 @@
****************************************************************************/
/*
- * 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 2 of the License, or
- * (at your option) any later version.
+ * This file is part of MIaV.
*
- * 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 Library General Public License for more details.
+ * MIaV 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
+ * (at your option) any later version.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * MIaV 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 MIaV; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
+
/*
* $Id$
*/
+
/*
* $Log$
+ * Revision 1.4 2005/05/03 08:31:59 deva
+ * Removed the error object, and replaced it with a more generic info object.
+ *
* Revision 1.3 2005/05/01 09:56:26 deva
* Added Id and Log tags to all files
- *
*/
+
#include <config.h>
#include "network.h"
@@ -39,9 +46,9 @@
#include <string.h>
#include <sys/socket.h>
-Network::Network(Socket *gs, Error* err)
+Network::Network(Socket *gs, Info *ginfo)
{
- error = err;
+ info = ginfo;
s = gs;
}
@@ -52,17 +59,13 @@ Network::~Network()
int Network::write(void *buf, int size)
{
if(!s->isConnected()) {
- char errbuf[] = "Write attempted to a socket not connected!\0";
- if(error) error->pushError(errbuf);
- else fprintf(stderr, errbuf);
+ info->error("Write attempted to a socket not connected!");
return 0;
}
int n = send(s->ssocket, buf, size, MSG_WAITALL);
if(n == -1) {
- char errbuf[] = "An error occurred!\0";
- if(error) error->pushError(errbuf);
- else fprintf(stderr, errbuf);
+ info->error("An error occurred!");
}
return n;
@@ -71,17 +74,13 @@ int Network::write(void *buf, int size)
int Network::read(void *buf, int size)
{
if(!s->isConnected()) {
- char errbuf[] = "Read attempted from a socket not connected!\0";
- if(error) error->pushError(errbuf);
- else fprintf(stderr, errbuf);
+ info->error("Read attempted from a socket not connected!");
return 0;
}
int n = recv(s->ssocket, buf, size, MSG_WAITALL);
if(n == -1) {
- char errbuf[] = "An error occurred!\0";
- if(error) error->pushError(errbuf);
- else fprintf(stderr, errbuf);
+ info->error("An error occurred!");
}
return n;
@@ -117,9 +116,7 @@ int Network::sendPackage(n_header *h, void* buf, int bufsz)
int n = sendmsg(s->ssocket, &msg, 0);
if(n < 0) {
- char errbuf[] = "A network error ocurred during sendPackage!\0";
- if(error) error->pushError(errbuf);
- else perror(errbuf);
+ info->error("A network error ocurred during sendPackage!");
return -1;
}
@@ -145,16 +142,12 @@ int Network::recvPackage(n_header *h, void* buf, int bufsz)
int n = recvmsg(s->ssocket, &msg, MSG_WAITALL);
if(n < 0) {
- char errbuf[] = "A network error ocurred during recvPackage!\0";
- if(error) error->pushError(errbuf);
- else perror(errbuf);
+ info->error("A network error ocurred during recvPackage!");
return -1;
}
if(msg.msg_iovlen != 2) {
- char errbuf[] = "Wrong package format!\0";
- if(error) error->pushError(errbuf);
- else perror(errbuf);
+ info->error("Wrong package format!");
return -1;
}
return n;