#include "ThreadPool.H"
#include "SocketInput.H"
-
+#include "Exception.H"
// create unix domain socket for input
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);
// 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);
}