Update for YAZ 3s new OID system.
[metaproxy-moved-to-github.git] / src / pipe.cpp
index e5ad991..4b3dde1 100644 (file)
@@ -1,8 +1,7 @@
+/* $Id: pipe.cpp,v 1.11 2007-02-26 13:19:23 adam Exp $
+   Copyright (c) 2005-2007, Index Data.
 
-/* $Id: pipe.cpp,v 1.4 2005-11-08 08:55:41 adam Exp $
-   Copyright (c) 2005, Index Data.
-
-%LICENSE%
+   See the LICENSE file for details
  */
 #include "config.hpp"
 
@@ -10,6 +9,7 @@
 #include <unistd.h>
 #endif
 
+#include <signal.h>
 #include <errno.h>
 #ifdef WIN32
 #include <winsock.h>
 
 #include <deque>
 
-#include <yaz++/socket-observer.h>
+#include <yazpp/socket-observer.h>
 #include <yaz/log.h>
 
 #include "pipe.hpp"
 
-namespace yp2 {
+namespace mp = metaproxy_1;
+
+namespace metaproxy_1 {
     class Pipe::Rep : public boost::noncopyable {
         friend class Pipe;
         Rep();
@@ -53,7 +55,7 @@ namespace yp2 {
     };
 }
 
-using namespace yp2;
+using namespace mp;
 
 void Pipe::Rep::close(int &fd)
 {
@@ -96,6 +98,8 @@ Pipe::Pipe(int port_to_use) : m_p(new Rep)
     WORD wVersionRequested = MAKEWORD(2, 0);
     if (WSAStartup( wVersionRequested, &wsaData ))
         throw Pipe::Error("WSAStartup failed");
+#else
+    port_to_use = 0;  // we'll just use pipe on Unix
 #endif
     if (port_to_use)
     {
@@ -171,7 +175,13 @@ Pipe::Pipe(int port_to_use) : m_p(new Rep)
     else
     {
 #ifndef WIN32
-        pipe(m_p->m_fd);
+        if (pipe(m_p->m_fd))
+            throw Pipe::Error("pipe failed");
+        else
+        {
+            assert(m_p->m_fd[0] >= 0);
+            assert(m_p->m_fd[1] >= 0);
+        }
 #endif
     }
 }