added some error checking
authorMichal Voců <michal@ruk.cuni.cz>
Wed, 20 Jun 2007 09:06:55 +0000 (09:06 +0000)
committerMichal Voců <michal@ruk.cuni.cz>
Wed, 20 Jun 2007 09:06:55 +0000 (09:06 +0000)
org.glite.lb.logger/src-nt/SocketInput.cpp

index f38cabb..14e8df1 100644 (file)
@@ -6,7 +6,7 @@
 
 #include "ThreadPool.H"
 #include "SocketInput.H"
-
+#include "Exception.H"
 
 
 // create unix domain socket for input
@@ -21,6 +21,7 @@ SocketInput::SocketInput(const char *path,
        saddr.sun_family = AF_UNIX;
        strcpy(saddr.sun_path, path);
        fd = socket(PF_UNIX, SOCK_STREAM, 0);
+       if(fd < 0) throw new Exception;
        if(connect(fd, (struct sockaddr*)&saddr, sizeof(saddr.sun_path)) < 0) {
                if(errno == ECONNREFUSED) {
                        unlink(saddr.sun_path);
@@ -29,8 +30,10 @@ SocketInput::SocketInput(const char *path,
                // another instance running
                // throw new Exception
        }
-       bind(fd, (struct sockaddr *)&saddr, sizeof(saddr));
-       listen(fd, SOCK_QUEUE_MAX);
+       if(bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) 
+               throw new Exception;
+       if(listen(fd, SOCK_QUEUE_MAX) < 0)
+               throw new Exception;
        ThreadPool::instance()->setWorkAccept(this);
 }