projects
/
metaproxy-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update for YAZ 3s new OID system.
[metaproxy-moved-to-github.git]
/
src
/
pipe.cpp
diff --git
a/src/pipe.cpp
b/src/pipe.cpp
index
227f31d
..
4b3dde1
100644
(file)
--- a/
src/pipe.cpp
+++ b/
src/pipe.cpp
@@
-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.3 2005-11-07 22:43:17 adam Exp $
- Copyright (c) 2005, Index Data.
-
-%LICENSE%
+ See the LICENSE file for details
*/
#include "config.hpp"
*/
#include "config.hpp"
@@
-10,6
+9,7
@@
#include <unistd.h>
#endif
#include <unistd.h>
#endif
+#include <signal.h>
#include <errno.h>
#ifdef WIN32
#include <winsock.h>
#include <errno.h>
#ifdef WIN32
#include <winsock.h>
@@
-37,12
+37,14
@@
#include <deque>
#include <deque>
-#include <yaz++/socket-observer.h>
+#include <yazpp/socket-observer.h>
#include <yaz/log.h>
#include "pipe.hpp"
#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();
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)
{
void Pipe::Rep::close(int &fd)
{
@@
-91,6
+93,14
@@
bool Pipe::Rep::nonblock(int s)
Pipe::Pipe(int port_to_use) : m_p(new Rep)
{
Pipe::Pipe(int port_to_use) : m_p(new Rep)
{
+#ifdef WIN32
+ WSADATA wsaData;
+ 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)
{
// create server socket
if (port_to_use)
{
// create server socket
@@
-165,7
+175,13
@@
Pipe::Pipe(int port_to_use) : m_p(new Rep)
else
{
#ifndef WIN32
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
}
}
#endif
}
}
@@
-175,6
+191,9
@@
Pipe::~Pipe()
m_p->close(m_p->m_fd[0]);
m_p->close(m_p->m_fd[1]);
m_p->close(m_p->m_socket);
m_p->close(m_p->m_fd[0]);
m_p->close(m_p->m_fd[1]);
m_p->close(m_p->m_socket);
+#ifdef WIN32
+ WSACleanup();
+#endif
}
int &Pipe::read_fd() const
}
int &Pipe::read_fd() const