BIND 10 trac826, updated. c4658ce153f04c9e84cf3e74a635d0aac0fc7ca3 [trac826] Move PF_UNIX stuff to TCP/IP, try to port the whole src/lib... One missing test (requires real fork()), some stuff not checked. WIN32-NOTES updated with porting notes, considering src/lib as ported.
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon May 9 21:10:05 UTC 2011
The branch, trac826 has been updated
via c4658ce153f04c9e84cf3e74a635d0aac0fc7ca3 (commit)
from 952cea8a257522d55e4bcba4fcdb6e55cddbd889 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c4658ce153f04c9e84cf3e74a635d0aac0fc7ca3
Author: Francis Dupont <fdupont at isc.org>
Date: Mon May 9 23:06:47 2011 +0200
[trac826] Move PF_UNIX stuff to TCP/IP, try to port the whole src/lib...
One missing test (requires real fork()), some stuff not checked.
WIN32-NOTES updated with porting notes, considering src/lib as ported.
-----------------------------------------------------------------------
Summary of changes:
WIN32-NOTES | 33 ++++-
src/lib/asiolink/interval_timer.cc | 5 +-
src/lib/asiolink/tcp_socket.h | 5 +-
src/lib/bench/benchmark_util.cc | 5 +-
src/lib/cc/data.cc | 5 +-
src/lib/cc/session.cc | 32 ++++-
src/lib/cc/session_config.h.win32 | 2 +-
src/lib/cc/tests/run_unittests.cc | 17 ++
src/lib/cc/tests/session_unittests.cc | 50 +++++-
src/lib/cc/tests/session_unittests_config.h.win32 | 2 +-
src/lib/dns/rdata/any_255/tsig_250.cc | 5 +-
src/lib/server_common/portconfig.cc | 5 +-
src/lib/util/io/fd.cc | 7 +-
src/lib/util/io/fd.h | 4 +
src/lib/util/io/fd_share.cc | 86 ++++++++++
.../tests}/PARTIAL_PORT_ON_WINDOWS | 0
src/lib/util/io/tests/fd_tests.cc | 8 +-
src/lib/util/unittests/fork.cc | 170 ++++++++++++++++++++
src/lib/util/unittests/fork.h | 4 +
src/lib/xfr/xfrout_client.cc | 37 ++++-
.../BINDInstall.vcproj} | 24 ++--
win32build/VS2008/bind10.sln | 44 +++++-
.../VS2008/libbench_tests/libbench_tests.vcproj | 2 +
win32build/VS2008/libcc/libcc.vcproj | 16 ++-
win32build/VS2008/libcc_tests/libcc_tests.vcproj | 16 ++-
.../libutil_io.vcproj} | 16 ++-
.../libutil_io_python.vcproj} | 46 ++----
.../libutil_io_tests.vcproj} | 24 ++--
.../libutil_unittests/libutil_unittests.vcproj | 8 +
.../libxfr.vcproj} | 14 +-
win32build/VS2010/bind10.sln | 46 +++++-
win32build/VS2010/libcc/libcc.vcxproj | 7 +-
win32build/VS2010/libcc/libcc.vcxproj.filters | 9 +
win32build/VS2010/libcc_tests/libcc_tests.vcxproj | 12 +-
.../VS2010/libcc_tests/libcc_tests.vcxproj.filters | 8 +
.../libutil_io.vcxproj} | 10 +-
.../libutil_io.vcxproj.filters} | 8 +-
.../libutil_io.vcxproj.user} | 0
.../libutil_io_python.vcxproj} | 33 +++--
.../libutil_io_python.vcxproj.filters} | 5 +-
.../libutil_io_python.vcxproj.user} | 0
.../libutil_io_tests.vcxproj} | 20 ++--
.../libutil_io_tests.vcxproj.filters} | 4 +-
.../libutil_io_tests.vcxproj.user} | 0
.../libutil_unittests/libutil_unittests.vcxproj | 6 +-
.../libutil_unittests.vcxproj.filters | 6 +
.../libxfr.vcxproj} | 12 +-
.../libxfr.vcxproj.filters} | 4 +-
.../libxfr.vcxproj.user} | 0
win32build/config.h | 4 +-
50 files changed, 711 insertions(+), 175 deletions(-)
delete mode 100644 src/lib/util/io/NO_PORT_ON_WINDOWS
rename src/lib/util/{unittests => io/tests}/PARTIAL_PORT_ON_WINDOWS (100%)
copy win32build/VS2008/{libbench_example/libbench_example.vcproj => BINDInstall/BINDInstall.vcproj} (80%)
copy win32build/VS2008/{libutil_unittests/libutil_unittests.vcproj => libutil_io/libutil_io.vcproj} (86%)
copy win32build/VS2008/{libbench_example/libbench_example.vcproj => libutil_io_python/libutil_io_python.vcproj} (74%)
copy win32build/VS2008/{libexceptions_tests/libexceptions_tests.vcproj => libutil_io_tests/libutil_io_tests.vcproj} (80%)
copy win32build/VS2008/{libserver_common/libserver_common.vcproj => libxfr/libxfr.vcproj} (85%)
copy win32build/VS2010/{libexceptions/libexceptions.vcxproj => libutil_io/libutil_io.vcxproj} (89%)
copy win32build/VS2010/{BINDInstall/BINDInstall.vcxproj.filters => libutil_io/libutil_io.vcxproj.filters} (79%)
copy win32build/VS2010/{BINDInstall/BINDInstall.vcxproj.user => libutil_io/libutil_io.vcxproj.user} (100%)
copy win32build/VS2010/{BINDInstall/BINDInstall.vcxproj => libutil_io_python/libutil_io_python.vcxproj} (66%)
copy win32build/VS2010/{libcc_tests/libcc_tests.vcxproj.filters => libutil_io_python/libutil_io_python.vcxproj.filters} (80%)
copy win32build/VS2010/{BINDInstall/BINDInstall.vcxproj.user => libutil_io_python/libutil_io_python.vcxproj.user} (100%)
copy win32build/VS2010/{libexceptions_tests/libexceptions_tests.vcxproj => libutil_io_tests/libutil_io_tests.vcxproj} (78%)
copy win32build/VS2010/{libcc_tests/libcc_tests.vcxproj.filters => libutil_io_tests/libutil_io_tests.vcxproj.filters} (84%)
copy win32build/VS2010/{BINDInstall/BINDInstall.vcxproj.user => libutil_io_tests/libutil_io_tests.vcxproj.user} (100%)
copy win32build/VS2010/{libserver_common/libserver_common.vcxproj => libxfr/libxfr.vcxproj} (86%)
copy win32build/VS2010/{libcc/libcc.vcxproj.filters => libxfr/libxfr.vcxproj.filters} (85%)
copy win32build/VS2010/{BINDInstall/BINDInstall.vcxproj.user => libxfr/libxfr.vcxproj.user} (100%)
-----------------------------------------------------------------------
diff --git a/WIN32-NOTES b/WIN32-NOTES
index bceef05..910a259 100644
--- a/WIN32-NOTES
+++ b/WIN32-NOTES
@@ -34,6 +34,7 @@ What is needed:
- log4cplus (in the future)
How to compile google test:
+
- remove the /MD -> /MT line in the CMakeLists.txt, use cmake
- *or* open the solution gtest-md in msvc (please note the rights
@@ -45,6 +46,7 @@ How to compile google test:
- msvc gives the gtestd.lib (in place of gtest.lib) for the debug version
Where I put things (hardwired paths):
+
- <home>\bind10.trac826 for bind10
(wired in dns tests preprocessor defines)
@@ -64,6 +66,7 @@ Where I put things (hardwired paths):
- C:\\sqlite3
How to compile:
+
- open win32build\VS2010\bind10.sln file with Visual Studio 2010, or,
open win32build\VS2008\bind10.sln file with Visual Studio 2008
@@ -73,10 +76,36 @@ How to compile:
- partial or todo directory ports are marked
-Random notes (for me):
+Random notes (for porting new code):
- getopt() is *not* standard (got working getopt.{h,cc})
- inet_pton() requires >= Vista/2008
- forget lcov/pycoverage
- - TODO: find the real cause of asio/boost wanting pthreads
- cmake?
+ - ifdefs: _WIN32 and _MSC_VER
+ - for(int i; ... -very-often-> for(unsigned int i; ...
+ - *no* <unistd.h> (or network includes)
+ - <sys/time.h> -> <time.h>
+ - missing general defines -> include <config.h> in front
+ - missing less general defines -> conditionally include <winsock2.h>
+ - missing TCP/IP defines -> conditionally include <ws2tcpip.h>
+ and perhaps <mswsock> too *before* asio
+ - integer posix types -> include <stdint.h> (or <cstdint>)
+ - "this" used too soon -> move to body
+ - "=" with contants: standard private C4512 declaration
+ - reuse_address is different in Windows
+ - missing namespace:
+ * error_code -> asio::error_code (both type and function)
+ * shared_ptr -> boost::shared_ptr
+ - *no* PF_UNIX (aka asio::local) sockets
+ - *no* fork() (but can use threads)
+ - unused variable in catch: simply remove it
+ - sleep() or nanosleep() -> Sleep()
+ - gettimeofday() -> GetSystemTimeAsFileTime() - SystemTimeToFileTime(epoch)
+ - underscored function names: _getid, _read, _write (caution: convert
+ the handle before),
+ - defined misc names: min, max, IN, ERROR, NOERROR
+ - different names: close -> closesocket (and error is INVALID_SOCKET
+ not < 0), errno -> WSAGetLastError()
+ - different declarations: send, recv,
+ - WSAStartup/WSACleanup in main()
diff --git a/src/lib/asiolink/interval_timer.cc b/src/lib/asiolink/interval_timer.cc
index 1cbe909..d85488d 100644
--- a/src/lib/asiolink/interval_timer.cc
+++ b/src/lib/asiolink/interval_timer.cc
@@ -97,10 +97,7 @@ IntervalTimerImpl::update() {
try {
// Update expire time to (current time + interval_).
timer_.expires_from_now(boost::posix_time::millisec(interval_));
- } catch (const asio::system_error& e) {
-#ifdef _MSC_VER
- e;
-#endif
+ } catch (const asio::system_error&) {
isc_throw(isc::Unexpected, "Failed to update timer");
}
// Reset timer.
diff --git a/src/lib/asiolink/tcp_socket.h b/src/lib/asiolink/tcp_socket.h
index 85fc7e7..b0fc4fb 100644
--- a/src/lib/asiolink/tcp_socket.h
+++ b/src/lib/asiolink/tcp_socket.h
@@ -282,10 +282,7 @@ TCPSocket<C>::asyncSend(const void* data, size_t length,
// ... and send it
socket_.async_send(asio::buffer(send_buffer_->getData(),
send_buffer_->getLength()), callback);
- } catch (boost::numeric::bad_numeric_cast& e) {
-#ifdef _MSC_VER
- e;
-#endif
+ } catch (boost::numeric::bad_numeric_cast&) {
isc_throw(BufferTooLarge,
"attempt to send buffer larger than 64kB");
}
diff --git a/src/lib/bench/benchmark_util.cc b/src/lib/bench/benchmark_util.cc
index cd7ddad..9cf3b26 100644
--- a/src/lib/bench/benchmark_util.cc
+++ b/src/lib/bench/benchmark_util.cc
@@ -103,10 +103,7 @@ loadQueryData(istream& input, BenchQueries& queries, const RRClass& qclass,
static_cast<const unsigned char*>(buffer.getData()) +
buffer.getLength());
queries.push_back(query_data);
- } catch (const Exception& error) {
-#ifdef _MSC_VER
- error;
-#endif
+ } catch (const Exception&) {
if (strict) {
isc_throw(BenchMarkError,
"failed to parse/create query around line " <<
diff --git a/src/lib/cc/data.cc b/src/lib/cc/data.cc
index 0f52eee..d7f4684 100644
--- a/src/lib/cc/data.cc
+++ b/src/lib/cc/data.cc
@@ -750,11 +750,8 @@ MapElement::find(const std::string& id, ConstElementPtr t) const {
t = p;
return (true);
}
- } catch (const TypeError& e) {
+ } catch (const TypeError&) {
// ignore
-#ifdef _MSC_VER
- e;
-#endif
}
return (false);
}
diff --git a/src/lib/cc/session.cc b/src/lib/cc/session.cc
index 2586375..964c2a7 100644
--- a/src/lib/cc/session.cc
+++ b/src/lib/cc/session.cc
@@ -41,6 +41,7 @@
#endif
#include <boost/bind.hpp>
+#include <boost/lexical_cast.hpp>
#include <boost/optional.hpp>
#include <boost/function.hpp>
#include <boost/date_time/posix_time/posix_time_types.hpp>
@@ -50,6 +51,9 @@
#include <cc/data.h>
#include <cc/session.h>
+#ifdef _WIN32
+#endif
+
using namespace std;
using namespace isc::cc;
using namespace isc::data;
@@ -102,7 +106,11 @@ private:
private:
io_service& io_service_;
+#ifndef _WIN32
asio::local::stream_protocol::socket socket_;
+#else
+ asio::ip::tcp::socket socket_;
+#endif
uint32_t data_length_;
boost::function<void()> user_handler_;
asio::error_code error_;
@@ -122,10 +130,28 @@ private:
void
SessionImpl::establish(const char& socket_file) {
try {
- socket_.connect(asio::local::stream_protocol::endpoint(&socket_file),
- error_);
+#ifndef _WIN32
+ asio::local::stream_protocol::endpoint ep(&socket_file);
+#else
+ const std::string spec(&socket_file);
+ asio::ip::address addr;
+ if (spec.find("v4_") == 0)
+ addr = asio::ip::address_v4::loopback();
+ else if (spec.find("v6_") == 0)
+ addr = asio::ip::address_v6::loopback();
+ else {
+ isc_throw(SessionError, "bad endpoint: " << spec);
+ }
+ uint16_t port = boost::lexical_cast<uint16_t>(spec.substr(3));
+ asio::ip::tcp::endpoint ep(addr, port);
+#endif
+ socket_.connect(ep, error_);
} catch(const asio::system_error& se) {
isc_throw(SessionError, se.what());
+#ifdef _WIN32
+ } catch(const boost::bad_lexical_cast&) {
+ isc_throw(SessionError, "bad port");
+#endif
}
if (error_) {
isc_throw(SessionError, "Unable to connect to message queue: " <<
@@ -356,7 +382,7 @@ Session::recvmsg(ConstElementPtr& env, ConstElementPtr& msg,
size_t length = impl_->readDataLength();
if (hasQueuedMsgs()) {
ConstElementPtr q_el;
- for (int i = 0; i < impl_->queue_->size(); i++) {
+ for (unsigned int i = 0; i < impl_->queue_->size(); i++) {
q_el = impl_->queue_->get(i);
if (( seq == -1 &&
!q_el->get(0)->contains("reply")
diff --git a/src/lib/cc/session_config.h.win32 b/src/lib/cc/session_config.h.win32
index 2a8ce71..f7dff33 100644
--- a/src/lib/cc/session_config.h.win32
+++ b/src/lib/cc/session_config.h.win32
@@ -1,2 +1,2 @@
-#define BIND10_MSGQ_SOCKET_FILE "/Temp/bind10-devel/msgq_socket"
+#define BIND10_MSGQ_SOCKET_FILE "v4_1016"
diff --git a/src/lib/cc/tests/run_unittests.cc b/src/lib/cc/tests/run_unittests.cc
index 0908071..f20a706 100644
--- a/src/lib/cc/tests/run_unittests.cc
+++ b/src/lib/cc/tests/run_unittests.cc
@@ -12,10 +12,27 @@
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
+#include <config.h>
+
+#ifdef _WIN32
+#include <winsock2.h>
+#endif
+
#include <gtest/gtest.h>
+#include <dns/tests/unittest_util.h>
+
int
main(int argc, char* argv[]) {
::testing::InitGoogleTest(&argc, argv);
+
+#ifdef _WIN32
+ WSADATA wsaData;
+ WSAStartup(MAKEWORD(2,2), &wsaData);
+ int ret = RUN_ALL_TESTS();
+ WSACleanup();
+ return (ret);
+#else
return (RUN_ALL_TESTS());
+#endif
}
diff --git a/src/lib/cc/tests/session_unittests.cc b/src/lib/cc/tests/session_unittests.cc
index 5f6e595..218e5fe 100644
--- a/src/lib/cc/tests/session_unittests.cc
+++ b/src/lib/cc/tests/session_unittests.cc
@@ -13,14 +13,18 @@
// PERFORMANCE OF THIS SOFTWARE.
#include <config.h>
+#include <stdint.h>
// for some IPC/network system calls in asio/detail/pipe_select_interrupter.hpp
+#ifndef _WIN32
#include <unistd.h>
+#endif
// XXX: the ASIO header must be included before others. See session.cc.
#include <asio.hpp>
#include <gtest/gtest.h>
#include <boost/bind.hpp>
+#include <boost/lexical_cast.hpp>
#include <exceptions/exceptions.h>
@@ -59,22 +63,46 @@ class TestDomainSocket {
public:
TestDomainSocket(asio::io_service& io_service, const char* file) :
io_service_(io_service),
+#ifndef _WIN32
ep_(file),
acceptor_(io_service_, ep_),
- socket_(io_service_)
+#else
+ acceptor_(io_service_),
+#endif
+ socket_(io_service_),
+ ready_(false)
{
+#ifdef _WIN32
+ std::string spec(file);
+ asio::ip::address addr;
+ if (spec.find("v4_") == 0)
+ addr = asio::ip::address_v4::loopback();
+ else if (spec.find("v6_") == 0)
+ addr = asio::ip::address_v6::loopback();
+ uint16_t port = boost::lexical_cast<uint16_t>(spec.substr(3));
+ ep_ = asio::ip::tcp::endpoint(addr, port);
+ acceptor_.open(ep_.protocol());
+ acceptor_.set_option(asio::socket_base::reuse_address(true));
+ acceptor_.bind(ep_);
+ acceptor_.listen(asio::socket_base::max_connections);
+#endif
acceptor_.async_accept(socket_,
boost::bind(&TestDomainSocket::acceptHandler,
this, _1));
}
~TestDomainSocket() {
+ acceptor_.close();
socket_.close();
+#ifndef _WIN32
unlink(BIND10_TEST_SOCKET_FILE);
+#endif
}
void
- acceptHandler(const asio::error_code&) const {
+ acceptHandler(const asio::error_code&) {
+ if (ready_)
+ waitSendLname();
}
void
@@ -104,26 +132,40 @@ public:
}
void
- setSendLname() {
+ waitSendLname() {
// ignore whatever data we get, send back an lname
asio::async_read(socket_, asio::buffer(data_buf, 0),
boost::bind(&TestDomainSocket::sendLname, this));
}
+ void
+ setSendLname() {
+ ready_ = true;
+ }
+
private:
asio::io_service& io_service_;
+#ifndef _WIN32
asio::local::stream_protocol::endpoint ep_;
asio::local::stream_protocol::acceptor acceptor_;
asio::local::stream_protocol::socket socket_;
+#else
+ asio::ip::tcp::endpoint ep_;
+ asio::ip::tcp::acceptor acceptor_;
+ asio::ip::tcp::socket socket_;
+#endif
char data_buf[1024];
+ bool ready_;
};
class SessionTest : public ::testing::Test {
protected:
SessionTest() : sess(my_io_service), work(my_io_service) {
+#ifndef _WIN32
// The TestDomainSocket is held as a 'new'-ed pointer,
// so we can call unlink() first.
unlink(BIND10_TEST_SOCKET_FILE);
+#endif
tds = new TestDomainSocket(my_io_service, BIND10_TEST_SOCKET_FILE);
}
@@ -234,5 +276,3 @@ TEST_F(SessionTest, run_with_handler_timeout) {
// No followup message, should time out.
ASSERT_THROW(my_io_service.run(), SessionTimeout);
}
-
-
diff --git a/src/lib/cc/tests/session_unittests_config.h.win32 b/src/lib/cc/tests/session_unittests_config.h.win32
index fb1f281..9a659b9 100644
--- a/src/lib/cc/tests/session_unittests_config.h.win32
+++ b/src/lib/cc/tests/session_unittests_config.h.win32
@@ -1,2 +1,2 @@
-#define BIND10_TEST_SOCKET_FILE "./test_socket.sock"
+#define BIND10_TEST_SOCKET_FILE "v6_12345"
diff --git a/src/lib/dns/rdata/any_255/tsig_250.cc b/src/lib/dns/rdata/any_255/tsig_250.cc
index a161046..1f8ffa2 100644
--- a/src/lib/dns/rdata/any_255/tsig_250.cc
+++ b/src/lib/dns/rdata/any_255/tsig_250.cc
@@ -95,10 +95,7 @@ tokenToNum(const string& num_token) {
NumType num;
try {
num = lexical_cast<NumType>(num_token);
- } catch (const boost::bad_lexical_cast& ex) {
-#ifdef _MSC_VER
- ex;
-#endif
+ } catch (const boost::bad_lexical_cast&) {
isc_throw(InvalidRdataText, "Invalid TSIG numeric parameter: " <<
num_token);
}
diff --git a/src/lib/server_common/portconfig.cc b/src/lib/server_common/portconfig.cc
index e3aa74b..dd081f8 100644
--- a/src/lib/server_common/portconfig.cc
+++ b/src/lib/server_common/portconfig.cc
@@ -58,10 +58,7 @@ parseAddresses(isc::data::ConstElementPtr addresses,
result.push_back(AddressPair(addr->stringValue(),
port->intValue()));
}
- catch (const TypeError &e) { // Better error message
-#ifdef _MSC_VER
- e;
-#endif
+ catch (const TypeError&) { // Better error message
isc_throw(TypeError,
"Address must be a string and port an integer");
}
diff --git a/src/lib/util/io/NO_PORT_ON_WINDOWS b/src/lib/util/io/NO_PORT_ON_WINDOWS
deleted file mode 100644
index e69de29..0000000
diff --git a/src/lib/util/io/fd.cc b/src/lib/util/io/fd.cc
index 04e64dc..f77b8ea 100644
--- a/src/lib/util/io/fd.cc
+++ b/src/lib/util/io/fd.cc
@@ -14,7 +14,12 @@
#include "fd.h"
-#include <unistd.h>
+#ifdef _WIN32
+#include <io.h>
+#define write _write
+#define read _read
+#endif
+
#include <cerrno>
namespace isc {
diff --git a/src/lib/util/io/fd.h b/src/lib/util/io/fd.h
index bdd2d41..52afd29 100644
--- a/src/lib/util/io/fd.h
+++ b/src/lib/util/io/fd.h
@@ -15,7 +15,11 @@
#ifndef __UTIL_IO_FD_H
#define __UTIL_IO_FD_H 1
+#include <config.h>
+
+#ifndef _WIN32
#include <unistd.h>
+#endif
/**
* @file fd.h
diff --git a/src/lib/util/io/fd_share.cc b/src/lib/util/io/fd_share.cc
index 92576e0..547c5b4 100644
--- a/src/lib/util/io/fd_share.cc
+++ b/src/lib/util/io/fd_share.cc
@@ -12,15 +12,26 @@
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
+#include <config.h>
+
#include <cstring>
#include <cstdlib>
+#ifdef _WIN32
+#include <process.h>
+#include <winsock2.h>
+#else
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
+#endif
#include <stdlib.h> // for malloc and free
#include "fd_share.h"
+#ifndef _WIN32
+
+/* Unix version */
+
namespace isc {
namespace util {
namespace io {
@@ -137,3 +148,78 @@ send_fd(const int sock, const int fd) {
} // End for namespace io
} // End for namespace util
} // End for namespace isc
+
+#else
+
+/* Windows version */
+
+namespace isc {
+namespace util {
+namespace io {
+
+namespace {
+// Need the peer PID
+
+int
+send_pid(const int sock) {
+ pid_t pid(_getpid());
+ if (send(sock, (const char *)&pid, sizeof(pid), 0) != sizeof(pid)) {
+ return (FD_COMM_ERROR);
+ }
+ return (0);
+}
+
+pid_t
+recv_pid(const int sock) {
+ pid_t pid;
+ if (recv(sock, (char *)&pid , sizeof(pid), 0) != sizeof(pid)) {
+ return (FD_COMM_ERROR);
+ }
+ return (pid);
+}
+}
+
+int
+recv_fd(const int sock) {
+ int ret(send_pid(sock));
+ if (ret != 0) {
+ return (ret);
+ }
+ WSAPROTOCOL_INFO pi;
+ if (recv(sock, (char *)&pi, sizeof(pi), 0) != sizeof(pi)) {
+ return (FD_COMM_ERROR);
+ }
+ SOCKET nsock = WSASocket(pi.iAddressFamily,
+ pi.iSocketType,
+ pi.iProtocol,
+ &pi, 0, 0);
+ if (nsock == INVALID_SOCKET) {
+ return (FD_OTHER_ERROR);
+ }
+ return ((int) nsock);
+}
+
+int
+send_fd(const int sock, const int fd) {
+ pid_t peerpid(recv_pid(sock));
+ if (peerpid == FD_COMM_ERROR) {
+ return (FD_COMM_ERROR);
+ }
+
+ WSAPROTOCOL_INFO pi;
+ if (WSADuplicateSocket(fd, peerpid, &pi) != 0) {
+ return (FD_OTHER_ERROR);
+ }
+
+ if (send(sock, (const char *)&pi, sizeof(pi), 0) != sizeof(pi)) {
+ return (FD_COMM_ERROR);
+ }
+ return (0);
+
+}
+
+} // End for namespace io
+} // End for namespace util
+} // End for namespace isc
+
+#endif
diff --git a/src/lib/util/io/tests/PARTIAL_PORT_ON_WINDOWS b/src/lib/util/io/tests/PARTIAL_PORT_ON_WINDOWS
new file mode 100644
index 0000000..e69de29
diff --git a/src/lib/util/io/tests/fd_tests.cc b/src/lib/util/io/tests/fd_tests.cc
index 12b70d8..a7e9654 100644
--- a/src/lib/util/io/tests/fd_tests.cc
+++ b/src/lib/util/io/tests/fd_tests.cc
@@ -18,6 +18,10 @@
#include <gtest/gtest.h>
+#ifdef _WIN32
+#define close(x) _close(x)
+#endif
+
using namespace isc::util::io;
using namespace isc::util::unittests;
@@ -46,7 +50,7 @@ TEST_F(FDTest, read) {
int read_pipe(0);
buffer = new unsigned char[TEST_DATA_SIZE];
pid_t feeder(provide_input(&read_pipe, data, TEST_DATA_SIZE));
- ASSERT_GE(feeder, 0);
+ ASSERT_NE(feeder, -1);
ssize_t received(read_data(read_pipe, buffer, TEST_DATA_SIZE));
EXPECT_TRUE(process_ok(feeder));
EXPECT_EQ(TEST_DATA_SIZE, received);
@@ -57,7 +61,7 @@ TEST_F(FDTest, read) {
TEST_F(FDTest, write) {
int write_pipe(0);
pid_t checker(check_output(&write_pipe, data, TEST_DATA_SIZE));
- ASSERT_GE(checker, 0);
+ ASSERT_NE(checker, -1);
EXPECT_TRUE(write_data(write_pipe, data, TEST_DATA_SIZE));
EXPECT_EQ(0, close(write_pipe));
EXPECT_TRUE(process_ok(checker));
diff --git a/src/lib/util/unittests/PARTIAL_PORT_ON_WINDOWS b/src/lib/util/unittests/PARTIAL_PORT_ON_WINDOWS
deleted file mode 100644
index e69de29..0000000
diff --git a/src/lib/util/unittests/fork.cc b/src/lib/util/unittests/fork.cc
index 3414a3c..4833716 100644
--- a/src/lib/util/unittests/fork.cc
+++ b/src/lib/util/unittests/fork.cc
@@ -16,6 +16,10 @@
#include <util/io/fd.h>
+#ifndef _WIN32
+
+/* Unix version */
+
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
@@ -143,3 +147,169 @@ check_output(int *write_pipe, const void *output, const size_t length)
}
}
}
+
+#else
+
+/* WIN32 version (using thread: no fork()!) */
+
+#include <io.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <string.h>
+#include <cerrno>
+#include <stdlib.h>
+#include <stdio.h>
+
+using namespace isc::util::io;
+
+namespace isc {
+namespace util {
+namespace unittests {
+
+bool
+process_ok(pid_t process) {
+ HANDLE handle;
+
+ handle = OpenThread(PROCESS_ALL_ACCESS, FALSE, process);
+ if (handle == NULL)
+ return false;
+ // It is long, but if everything is OK, it'll not happen
+ DWORD result(WaitForSingleObject(handle, 10000));
+ if (result != 0) {
+ if (result == WAIT_FAILED)
+ TerminateThread(handle, SIGTERM);
+ CloseHandle(handle);
+ return false;
+ }
+ // Check what we found out
+ DWORD status;
+ result = GetExitCodeThread(handle, &status);
+ CloseHandle(handle);
+ return (result != 0) && (status == 0);
+}
+
+struct pichildargs {
+ HANDLE pipe;
+ const void *input;
+ const size_t length;
+ pichildargs(HANDLE pipe, const void *input, const size_t length) :
+ pipe(pipe), input(input), length(length)
+ {}
+private:
+ pichildargs& operator=(pichildargs const&);
+};
+
+DWORD WINAPI PIChildProc(void *childparam) {
+ pichildargs *args;
+
+ args = static_cast<pichildargs *>(childparam);
+ if (!write_data(_open_osfhandle((intptr_t)args->pipe, 0),
+ args->input, args->length)) {
+ delete args;
+ return 1;
+ } else {
+ CloseHandle(args->pipe);
+ delete args;
+ return 0;
+ }
+}
+
+/*
+ * This creates a pipe, forks and feeds the pipe with given data.
+ * Used to provide the input in non-blocking/asynchronous way.
+ */
+pid_t
+provide_input(int *read_pipe, const void *input, const size_t length)
+{
+ HANDLE hReadPipe, hWritePipe;
+ if (CreatePipe(&hReadPipe, &hWritePipe, NULL, 0) == 0) {
+ return -1;
+ }
+ *read_pipe = _open_osfhandle((intptr_t)hReadPipe, _O_RDONLY);
+
+ pichildargs *args = new pichildargs(hWritePipe, input, length);
+ DWORD pid;
+ if (CreateThread(NULL, 0, PIChildProc, args, 0, &pid) == NULL) {
+ CloseHandle(hReadPipe);
+ CloseHandle(hWritePipe);
+ return -1;
+ }
+ return (pid_t) pid;
+}
+
+struct cochildargs {
+ HANDLE pipe;
+ const void *output;
+ const size_t length;
+ cochildargs(HANDLE pipe, const void *output, const size_t length) :
+ pipe(pipe), output(output), length(length)
+ {}
+private:
+ cochildargs& operator=(cochildargs const&);
+};
+
+DWORD WINAPI COChildProc(void *childparam) {
+ cochildargs *args;
+
+ args = static_cast<cochildargs *>(childparam);
+ // We don't return the memory, but we're in tests and end this process
+ // right away.
+ unsigned char *buffer = new unsigned char[args->length + 1];
+ // Try to read one byte more to see if the output ends here
+ size_t got_length(read_data(_open_osfhandle((intptr_t)args->pipe,
+ _O_RDONLY),
+ buffer, args->length + 1));
+ bool ok(true);
+ if (got_length != args->length) {
+ fprintf(stderr, "Different length (expected %u, got %u)\n",
+ static_cast<unsigned>(args->length),
+ static_cast<unsigned>(got_length));
+ ok = false;
+ }
+ if(!ok || memcmp(buffer, args->output, args->length)) {
+ const unsigned char *output_c(static_cast<const unsigned char *>(
+ args->output));
+ // If they differ, print what we have
+ for(size_t i(0); i != got_length; ++ i) {
+ fprintf(stderr, "%02hhx", buffer[i]);
+ }
+ fprintf(stderr, "\n");
+ for(size_t i(0); i != args->length; ++ i) {
+ fprintf(stderr, "%02hhx", output_c[i]);
+ }
+ fprintf(stderr, "\n");
+ delete args;
+ return 1;
+ } else
+ delete args;
+ return 0;
+}
+
+/*
+ * This creates a pipe, forks and reads the pipe and compares it
+ * with given data. Used to check output of run in asynchronous way.
+ */
+pid_t
+check_output(int *write_pipe, const void *output, const size_t length)
+{
+ HANDLE hReadPipe, hWritePipe;
+ if (CreatePipe(&hReadPipe, &hWritePipe, NULL, 0) == 0) {
+ return -1;
+ }
+ *write_pipe = _open_osfhandle((intptr_t)hWritePipe, 0);
+
+ cochildargs *args = new cochildargs(hReadPipe, output, length);
+ DWORD pid;
+ if (CreateThread(NULL, 0, COChildProc, args, 0, &pid) == NULL) {
+ CloseHandle(hReadPipe);
+ CloseHandle(hWritePipe);
+ return -1;
+ }
+ return (pid_t) pid;
+}
+
+}
+}
+}
+
+#endif
diff --git a/src/lib/util/unittests/fork.h b/src/lib/util/unittests/fork.h
index 3331cfa..b4c6722 100644
--- a/src/lib/util/unittests/fork.h
+++ b/src/lib/util/unittests/fork.h
@@ -15,7 +15,11 @@
#ifndef __UTIL_UNITTESTS_FORK_H
#define __UTIL_UNITTESTS_FORK_H 1
+#include <config.h>
+
+#ifndef _WIN32
#include <unistd.h>
+#endif
/**
* @file fork.h
diff --git a/src/lib/xfr/xfrout_client.cc b/src/lib/xfr/xfrout_client.cc
index 7f83048..43262f4 100644
--- a/src/lib/xfr/xfrout_client.cc
+++ b/src/lib/xfr/xfrout_client.cc
@@ -28,7 +28,13 @@
using namespace std;
using namespace isc::util::io;
+#ifndef _WIN32
using asio::local::stream_protocol;
+#else
+#include <boost/lexical_cast.hpp>
+using asio::ip::tcp;
+#define stream_protocol tcp
+#endif
namespace isc {
namespace xfr {
@@ -56,7 +62,20 @@ XfroutClient::~XfroutClient() {
void
XfroutClient::connect() {
asio::error_code err;
- impl_->socket_.connect(stream_protocol::endpoint(impl_->file_path_), err);
+#ifndef _WIN32
+ stream_protocol::endpoint ep(impl_->file_path_);
+#else
+ asio::ip::address addr;
+ if (impl_->file_path_.find("v4_") == 0)
+ addr = asio::ip::address_v4::loopback();
+ else if (impl_->file_path_.find("v6_") == 0)
+ addr = asio::ip::address_v6::loopback();
+ else
+ isc_throw(XfroutError, "bad endpoint: " << impl_->file_path_);
+ uint16_t port = boost::lexical_cast<uint16_t>(impl_->file_path_.substr(3));
+ stream_protocol::endpoint ep(addr, port);
+#endif
+ impl_->socket_.connect(ep, err);
if (err) {
isc_throw(XfroutError, "socket connect failed: " << err.message());
}
@@ -86,6 +105,7 @@ XfroutClient::sendXfroutRequestInfo(const int tcp_sock,
// block.
// converting the 16-bit word to network byte order.
const uint8_t lenbuf[2] = { msg_len >> 8, msg_len & 0xff };
+#ifndef _WIN32
if (send(impl_->socket_.native(), lenbuf, sizeof(lenbuf), 0) !=
sizeof(lenbuf)) {
isc_throw(XfroutError,
@@ -95,7 +115,20 @@ XfroutClient::sendXfroutRequestInfo(const int tcp_sock,
isc_throw(XfroutError,
"failed to send XFR request data to xfrout module");
}
-
+#else
+ if (send(impl_->socket_.native(),
+ (const char *)lenbuf,
+ sizeof(lenbuf), 0) != sizeof(lenbuf)) {
+ isc_throw(XfroutError,
+ "failed to send XFR request length to xfrout module");
+ }
+ if (send(impl_->socket_.native(),
+ (const char *)msg_data,
+ msg_len, 0) != msg_len) {
+ isc_throw(XfroutError,
+ "failed to send XFR request data to xfrout module");
+ }
+#endif
return (0);
}
diff --git a/win32build/VS2008/BINDInstall/BINDInstall.vcproj b/win32build/VS2008/BINDInstall/BINDInstall.vcproj
new file mode 100755
index 0000000..13ed0e0
--- /dev/null
+++ b/win32build/VS2008/BINDInstall/BINDInstall.vcproj
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="BINDInstall"
+ ProjectGUID="{037FE4D5-39B8-4E16-9079-77954AFA21DB}"
+ RootNamespace="BINDInstall"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkLibraryDependencies="false"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkLibraryDependencies="false"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\BINDInstall\BINDInstall.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\BINDInstall\stdafx.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\BINDInstall\stdafx.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\BINDInstall\targetver.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32build/VS2008/bind10.sln b/win32build/VS2008/bind10.sln
index 880217b..dd037e1 100755
--- a/win32build/VS2008/bind10.sln
+++ b/win32build/VS2008/bind10.sln
@@ -16,6 +16,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "BINDInstall\
{8AAF0639-A368-4BE2-81E1-668D0C81FB8F} = {8AAF0639-A368-4BE2-81E1-668D0C81FB8F}
{06BE7A3D-800D-4665-A250-9DB588CE7BBE} = {06BE7A3D-800D-4665-A250-9DB588CE7BBE}
{9437FF4D-3CCE-45F1-A248-6B713FBF0A5D} = {9437FF4D-3CCE-45F1-A248-6B713FBF0A5D}
+ {6AF54258-C144-4C6B-A10F-DA6D17193B5D} = {6AF54258-C144-4C6B-A10F-DA6D17193B5D}
{7D9DD35B-A97E-4EF9-8FCA-2D85F8EA649E} = {7D9DD35B-A97E-4EF9-8FCA-2D85F8EA649E}
{F4D89262-37A8-401B-8ABD-D0E18E13E5D1} = {F4D89262-37A8-401B-8ABD-D0E18E13E5D1}
{0131E967-F93E-4E63-9561-47C94411FBEC} = {0131E967-F93E-4E63-9561-47C94411FBEC}
@@ -24,11 +25,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "BINDInstall\
{DE8D2C87-5DDF-4A8A-954D-64B21BCB71AE} = {DE8D2C87-5DDF-4A8A-954D-64B21BCB71AE}
{C49C6288-0381-4F7F-AD11-6E122095A876} = {C49C6288-0381-4F7F-AD11-6E122095A876}
{AB337F8E-F8DD-4013-9638-8585BF087158} = {AB337F8E-F8DD-4013-9638-8585BF087158}
+ {2FEC189D-5EE1-452B-9BE5-EFF8F7B45466} = {2FEC189D-5EE1-452B-9BE5-EFF8F7B45466}
{E8E425A1-74C4-43B2-9DE9-F59E496333F0} = {E8E425A1-74C4-43B2-9DE9-F59E496333F0}
{B18D03AA-EC46-4AAD-90BA-A6ED843DB7FB} = {B18D03AA-EC46-4AAD-90BA-A6ED843DB7FB}
{93F88AB1-78D9-41B1-A534-66D64D4B5C54} = {93F88AB1-78D9-41B1-A534-66D64D4B5C54}
{9ABB5EB9-7742-4EBE-955A-0AE81B5878BA} = {9ABB5EB9-7742-4EBE-955A-0AE81B5878BA}
{07413DBE-6012-422E-8531-2F7579C2C800} = {07413DBE-6012-422E-8531-2F7579C2C800}
+ {E1DCE3BE-46BC-444F-927C-714414FDC457} = {E1DCE3BE-46BC-444F-927C-714414FDC457}
{2BE3E9BE-0536-42F4-8932-827C6C172109} = {2BE3E9BE-0536-42F4-8932-827C6C172109}
{1D545AC8-59EA-48C7-A006-C92F0C19633C} = {1D545AC8-59EA-48C7-A006-C92F0C19633C}
{38F600CA-1FAF-4BF2-A4D5-B82569C156BC} = {38F600CA-1FAF-4BF2-A4D5-B82569C156BC}
@@ -64,7 +67,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil_unittests", "libuti
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcryptolink", "libcryptolink\libcryptolink.vcproj", "{F4D89262-37A8-401B-8ABD-D0E18E13E5D1}"
ProjectSection(ProjectDependencies) = postProject
- {0986A335-5EDA-4F16-8AB2-A8FA8DC5702B} = {0986A335-5EDA-4F16-8AB2-A8FA8DC5702B}
+ {E1DCE3BE-46BC-444F-927C-714414FDC457} = {E1DCE3BE-46BC-444F-927C-714414FDC457}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcryptolink_tests", "libcryptolink_tests\libcryptolink_tests.vcproj", "{C49C6288-0381-4F7F-AD11-6E122095A876}"
@@ -248,7 +251,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libserver_common_tests", "l
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbench", "libbench\libbench.vcproj", "{490FACD4-B54B-40A7-A39F-2EB60B307CEC}"
ProjectSection(ProjectDependencies) = postProject
- {99678BE6-B8EB-4740-9E67-C90C84158785} = {99678BE6-B8EB-4740-9E67-C90C84158785}
+ {101C12A4-E84C-4751-A3C6-CB72DE3A4ABC} = {101C12A4-E84C-4751-A3C6-CB72DE3A4ABC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbench_tests", "libbench_tests\libbench_tests.vcproj", "{42347681-5872-4D67-9E6B-CD0AA822DEE4}"
@@ -277,6 +280,27 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblog_rtitest", "liblog_rt
{0986A335-5EDA-4F16-8AB2-A8FA8DC5702B} = {0986A335-5EDA-4F16-8AB2-A8FA8DC5702B}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil_io", "libutil_io\libutil_io.vcproj", "{E1DCE3BE-46BC-444F-927C-714414FDC457}"
+ ProjectSection(ProjectDependencies) = postProject
+ {0986A335-5EDA-4F16-8AB2-A8FA8DC5702B} = {0986A335-5EDA-4F16-8AB2-A8FA8DC5702B}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil_io_tests", "libutil_io_tests\libutil_io_tests.vcproj", "{2FEC189D-5EE1-452B-9BE5-EFF8F7B45466}"
+ ProjectSection(ProjectDependencies) = postProject
+ {06BE7A3D-800D-4665-A250-9DB588CE7BBE} = {06BE7A3D-800D-4665-A250-9DB588CE7BBE}
+ {E1DCE3BE-46BC-444F-927C-714414FDC457} = {E1DCE3BE-46BC-444F-927C-714414FDC457}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil_io_python", "libutil_io_python\libutil_io_python.vcproj", "{6AF54258-C144-4C6B-A10F-DA6D17193B5D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {E1DCE3BE-46BC-444F-927C-714414FDC457} = {E1DCE3BE-46BC-444F-927C-714414FDC457}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxfr", "libxfr\libxfr.vcproj", "{101C12A4-E84C-4751-A3C6-CB72DE3A4ABC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {99678BE6-B8EB-4740-9E67-C90C84158785} = {99678BE6-B8EB-4740-9E67-C90C84158785}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -435,6 +459,22 @@ Global
{DE8D2C87-5DDF-4A8A-954D-64B21BCB71AE}.Debug|Win32.Build.0 = Debug|Win32
{DE8D2C87-5DDF-4A8A-954D-64B21BCB71AE}.Release|Win32.ActiveCfg = Release|Win32
{DE8D2C87-5DDF-4A8A-954D-64B21BCB71AE}.Release|Win32.Build.0 = Release|Win32
+ {E1DCE3BE-46BC-444F-927C-714414FDC457}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E1DCE3BE-46BC-444F-927C-714414FDC457}.Debug|Win32.Build.0 = Debug|Win32
+ {E1DCE3BE-46BC-444F-927C-714414FDC457}.Release|Win32.ActiveCfg = Release|Win32
+ {E1DCE3BE-46BC-444F-927C-714414FDC457}.Release|Win32.Build.0 = Release|Win32
+ {2FEC189D-5EE1-452B-9BE5-EFF8F7B45466}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2FEC189D-5EE1-452B-9BE5-EFF8F7B45466}.Debug|Win32.Build.0 = Debug|Win32
+ {2FEC189D-5EE1-452B-9BE5-EFF8F7B45466}.Release|Win32.ActiveCfg = Release|Win32
+ {2FEC189D-5EE1-452B-9BE5-EFF8F7B45466}.Release|Win32.Build.0 = Release|Win32
+ {6AF54258-C144-4C6B-A10F-DA6D17193B5D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6AF54258-C144-4C6B-A10F-DA6D17193B5D}.Debug|Win32.Build.0 = Debug|Win32
+ {6AF54258-C144-4C6B-A10F-DA6D17193B5D}.Release|Win32.ActiveCfg = Release|Win32
+ {6AF54258-C144-4C6B-A10F-DA6D17193B5D}.Release|Win32.Build.0 = Release|Win32
+ {101C12A4-E84C-4751-A3C6-CB72DE3A4ABC}.Debug|Win32.ActiveCfg = Debug|Win32
+ {101C12A4-E84C-4751-A3C6-CB72DE3A4ABC}.Debug|Win32.Build.0 = Debug|Win32
+ {101C12A4-E84C-4751-A3C6-CB72DE3A4ABC}.Release|Win32.ActiveCfg = Release|Win32
+ {101C12A4-E84C-4751-A3C6-CB72DE3A4ABC}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/win32build/VS2008/libbench_tests/libbench_tests.vcproj b/win32build/VS2008/libbench_tests/libbench_tests.vcproj
index 3b6e2f2..cf29c3e 100755
--- a/win32build/VS2008/libbench_tests/libbench_tests.vcproj
+++ b/win32build/VS2008/libbench_tests/libbench_tests.vcproj
@@ -61,6 +61,7 @@
/>
<Tool
Name="VCLinkerTool"
+ LinkLibraryDependencies="false"
AdditionalDependencies="libexceptions.lib libutil.lib libdns++.lib libbench.lib gtestd.lib ws2_32.lib"
OutputFile="$(OutDir)\run_unittests.exe"
LinkIncremental="2"
@@ -137,6 +138,7 @@
/>
<Tool
Name="VCLinkerTool"
+ LinkLibraryDependencies="false"
AdditionalDependencies="libexceptions.lib libutil.lib libdns++.lib libbench.lib gtest.lib ws2_32.lib"
OutputFile="$(OutDir)\run_unittests.exe"
LinkIncremental="1"
diff --git a/win32build/VS2008/libcc/libcc.vcproj b/win32build/VS2008/libcc/libcc.vcproj
index c3cf874..eb2fd2f 100755
--- a/win32build/VS2008/libcc/libcc.vcproj
+++ b/win32build/VS2008/libcc/libcc.vcproj
@@ -42,7 +42,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;"C:\Program Files\boost\boost_1_44""
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\ext\asio;"C:\Program Files\boost\boost_1_44""
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -107,7 +107,7 @@
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;"C:\Program Files\boost\boost_1_44""
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\ext\asio;"C:\Program Files\boost\boost_1_44""
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -156,6 +156,10 @@
RelativePath="..\..\..\src\lib\cc\data.cc"
>
</File>
+ <File
+ RelativePath="..\..\..\src\lib\cc\session.cc"
+ >
+ </File>
</Filter>
<Filter
Name="Header Files"
@@ -166,6 +170,14 @@
RelativePath="..\..\..\src\lib\cc\data.h"
>
</File>
+ <File
+ RelativePath="..\..\..\src\lib\cc\session.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\src\lib\cc\session_config.h"
+ >
+ </File>
</Filter>
<Filter
Name="Resource Files"
diff --git a/win32build/VS2008/libcc_tests/libcc_tests.vcproj b/win32build/VS2008/libcc_tests/libcc_tests.vcproj
index 1f64290..396683a 100755
--- a/win32build/VS2008/libcc_tests/libcc_tests.vcproj
+++ b/win32build/VS2008/libcc_tests/libcc_tests.vcproj
@@ -42,7 +42,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\..\gtest\include;"C:\Program Files\boost\boost_1_44""
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\src\lib\cc\tests;..\..\..\ext\asio;..\..\..\..\gtest\include;"C:\Program Files\boost\boost_1_44""
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -66,7 +66,7 @@
AdditionalDependencies="libexceptions.lib libcc.lib gtestd.lib"
OutputFile="$(OutDir)\run_unittests.exe"
LinkIncremental="2"
- AdditionalLibraryDirectories="..\libexceptions\Debug;..\libcc\Debug;..\..\..\..\gtest\md9\Debug"
+ AdditionalLibraryDirectories="..\libexceptions\Debug;..\libcc\Debug;..\..\..\..\gtest\md9\Debug;"C:\Program Files\boost\boost_1_44\lib""
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
@@ -121,7 +121,7 @@
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
- AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\..\gtest\include;"C:\Program Files\boost\boost_1_44""
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\src\lib\cc\tests;..\..\..\ext\asio;..\..\..\..\gtest\include;"C:\Program Files\boost\boost_1_44""
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
@@ -144,7 +144,7 @@
AdditionalDependencies="libexceptions.lib libcc.lib gtest.lib"
OutputFile="$(OutDir)\run_unittests.exe"
LinkIncremental="1"
- AdditionalLibraryDirectories="..\libexceptions\Release;..\libcc\Release;..\..\..\..\gtest\md9\Release"
+ AdditionalLibraryDirectories="..\libexceptions\Release;..\libcc\Release;..\..\..\..\gtest\md9\Release;"C:\Program Files\boost\boost_1_44\lib""
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
@@ -190,12 +190,20 @@
RelativePath="..\..\..\src\lib\cc\tests\run_unittests.cc"
>
</File>
+ <File
+ RelativePath="..\..\..\src\lib\cc\tests\session_unittests.cc"
+ >
+ </File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
+ <File
+ RelativePath="..\..\..\src\lib\cc\tests\session_unittests_config.h"
+ >
+ </File>
</Filter>
<Filter
Name="Resource Files"
diff --git a/win32build/VS2008/libutil_io/libutil_io.vcproj b/win32build/VS2008/libutil_io/libutil_io.vcproj
new file mode 100755
index 0000000..4ef66bb
--- /dev/null
+++ b/win32build/VS2008/libutil_io/libutil_io.vcproj
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="libutil_io"
+ ProjectGUID="{E1DCE3BE-46BC-444F-927C-714414FDC457}"
+ RootNamespace="libutil_io"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\..\src\lib\util\io\fd.cc"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\src\lib\util\io\fd_share.cc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\src\lib\util\io\fd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\src\lib\util\io\fd_share.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32build/VS2008/libutil_io_python/libutil_io_python.vcproj b/win32build/VS2008/libutil_io_python/libutil_io_python.vcproj
new file mode 100755
index 0000000..9468c0b
--- /dev/null
+++ b/win32build/VS2008/libutil_io_python/libutil_io_python.vcproj
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="libutil_io_python"
+ ProjectGUID="{6AF54258-C144-4C6B-A10F-DA6D17193B5D}"
+ RootNamespace="libutil_io_python"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;C:\Python32\include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBUTIL_IO_PYTHON_EXPORTS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="libutil_io.lib python3.lib ws2_32.lib"
+ OutputFile="$(OutDir)\$(ProjectName).pyd"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\libutil_io\Debug;C:\Python32\libs"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;C:\Python32\include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBUTIL_IO_PYTHON_EXPORTS"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="libutil_io.lib python3.lib ws2_32.lib"
+ OutputFile="$(OutDir)\$(ProjectName).pyd"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="..\libutil_io\Release;C:\Python32\libs"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\..\src\lib\util\io\fdshare_python.cc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32build/VS2008/libutil_io_tests/libutil_io_tests.vcproj b/win32build/VS2008/libutil_io_tests/libutil_io_tests.vcproj
new file mode 100755
index 0000000..10967d1
--- /dev/null
+++ b/win32build/VS2008/libutil_io_tests/libutil_io_tests.vcproj
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="libutil_io_tests"
+ ProjectGUID="{2FEC189D-5EE1-452B-9BE5-EFF8F7B45466}"
+ RootNamespace="libutil_io_tests"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\..\gtest\include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="libutil_io.lib libutil_unittests.lib gtestd.lib"
+ OutputFile="$(OutDir)\run_unittests.exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\libutil_io\Debug;..\libutil_unittests\Debug;..\..\..\..\gtest\md9\Debug"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\..\gtest\include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="libutil_io.lib libutil_unittests.lib gtest.lib"
+ OutputFile="$(OutDir)\run_unittests.exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="..\libutil_io\Release;..\libutil_unittests\Release;..\..\..\..\gtest\md9\Release"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\..\src\lib\util\io\tests\fd_tests.cc"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\src\lib\util\io\tests\run_unittests.cc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32build/VS2008/libutil_unittests/libutil_unittests.vcproj b/win32build/VS2008/libutil_unittests/libutil_unittests.vcproj
index 7545d43..52aaf9a 100755
--- a/win32build/VS2008/libutil_unittests/libutil_unittests.vcproj
+++ b/win32build/VS2008/libutil_unittests/libutil_unittests.vcproj
@@ -151,6 +151,10 @@
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
+ RelativePath="..\..\..\src\lib\util\unittests\fork.cc"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\lib\util\unittests\newhook.cc"
>
</File>
@@ -161,6 +165,10 @@
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
+ RelativePath="..\..\..\src\lib\util\unittests\fork.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\lib\util\unittests\newhook.h"
>
</File>
diff --git a/win32build/VS2008/libxfr/libxfr.vcproj b/win32build/VS2008/libxfr/libxfr.vcproj
new file mode 100755
index 0000000..65d5fca
--- /dev/null
+++ b/win32build/VS2008/libxfr/libxfr.vcproj
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="libxfr"
+ ProjectGUID="{101C12A4-E84C-4751-A3C6-CB72DE3A4ABC}"
+ RootNamespace="libxfr"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\ext\asio;"C:\Program Files\boost\boost_1_44""
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="4"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\ext\asio;"C:\Program Files\boost\boost_1_44""
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\..\src\lib\xfr\xfrout_client.cc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\..\src\lib\xfr\xfrout_client.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/win32build/VS2010/bind10.sln b/win32build/VS2010/bind10.sln
index cf6cb06..ee16ba8 100755
--- a/win32build/VS2010/bind10.sln
+++ b/win32build/VS2010/bind10.sln
@@ -21,16 +21,21 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "BINDInstall\
{DC86E86E-BB80-4C93-8A1F-E409C1FA38D2} = {DC86E86E-BB80-4C93-8A1F-E409C1FA38D2}
{2C518972-FF5F-4D33-9D3E-5BCC6357EDD7} = {2C518972-FF5F-4D33-9D3E-5BCC6357EDD7}
{F8616086-9CE9-4F32-BC97-8494EADAEC6F} = {F8616086-9CE9-4F32-BC97-8494EADAEC6F}
+ {761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5} = {761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5}
{6280D58A-5E05-45D1-8B79-DF677C114CD4} = {6280D58A-5E05-45D1-8B79-DF677C114CD4}
+ {D09B618B-D0E4-468D-A4BD-E204B4344C18} = {D09B618B-D0E4-468D-A4BD-E204B4344C18}
{6AC4F7A4-9BDC-415F-81DB-6332CACA38B3} = {6AC4F7A4-9BDC-415F-81DB-6332CACA38B3}
{B5D971AD-D95B-4A15-9E31-38AEF4F69627} = {B5D971AD-D95B-4A15-9E31-38AEF4F69627}
+ {805598B5-9E7E-4CB1-952C-C0060FBE630D} = {805598B5-9E7E-4CB1-952C-C0060FBE630D}
{0723DEB6-E2C3-4082-91E5-0F8F4B0649F6} = {0723DEB6-E2C3-4082-91E5-0F8F4B0649F6}
{13D541BC-8365-42F7-840F-A117CA0413DD} = {13D541BC-8365-42F7-840F-A117CA0413DD}
{813BA1C9-8CD8-4B06-B1C0-FDAB576AC4B6} = {813BA1C9-8CD8-4B06-B1C0-FDAB576AC4B6}
{FEFFE0CB-CD6B-4E61-854C-39506D6DCD5D} = {FEFFE0CB-CD6B-4E61-854C-39506D6DCD5D}
{2E64F6CC-3AD9-4DA7-8E05-ABBB83F9AFC4} = {2E64F6CC-3AD9-4DA7-8E05-ABBB83F9AFC4}
+ {AC4806D1-C2CC-444B-8F0D-209851A969D2} = {AC4806D1-C2CC-444B-8F0D-209851A969D2}
{65B0B6D2-94CE-4A21-85E7-A047C79044F9} = {65B0B6D2-94CE-4A21-85E7-A047C79044F9}
{F6E728D3-A0B2-40F6-9B91-7D4474D778F3} = {F6E728D3-A0B2-40F6-9B91-7D4474D778F3}
+ {564B0ADE-76A4-4833-9610-8DEEA6A15423} = {564B0ADE-76A4-4833-9610-8DEEA6A15423}
{7EB244E7-D381-4CF4-A2D4-739B81F77588} = {7EB244E7-D381-4CF4-A2D4-739B81F77588}
{66C9A5EC-514B-4BDC-AC74-ED4CB465CAAF} = {66C9A5EC-514B-4BDC-AC74-ED4CB465CAAF}
{C7DEAFEC-423B-486D-BBD8-896B0DE69DDE} = {C7DEAFEC-423B-486D-BBD8-896B0DE69DDE}
@@ -50,7 +55,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil", "libutil\libutil.
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcryptolink", "libcryptolink\libcryptolink.vcxproj", "{13215E3E-E75D-463D-A0EF-93A1C9A20896}"
ProjectSection(ProjectDependencies) = postProject
- {8F120666-1A69-4506-8546-0F665E80FFB7} = {8F120666-1A69-4506-8546-0F665E80FFB7}
+ {AC4806D1-C2CC-444B-8F0D-209851A969D2} = {AC4806D1-C2CC-444B-8F0D-209851A969D2}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdns++", "libdns++\libdns++.vcxproj", "{F6E728D3-A0B2-40F6-9B91-7D4474D778F3}"
@@ -241,7 +246,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libserver_common_tests", "l
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbench", "libbench\libbench.vcxproj", "{DC86E86E-BB80-4C93-8A1F-E409C1FA38D2}"
ProjectSection(ProjectDependencies) = postProject
- {813BA1C9-8CD8-4B06-B1C0-FDAB576AC4B6} = {813BA1C9-8CD8-4B06-B1C0-FDAB576AC4B6}
+ {761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5} = {761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbench_tests", "libbench_tests\libbench_tests.vcxproj", "{FEFFE0CB-CD6B-4E61-854C-39506D6DCD5D}"
@@ -270,6 +275,27 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblog_rtitest", "liblog_rt
{AEF3DFFE-B566-4E6A-B299-B59B81022C06} = {AEF3DFFE-B566-4E6A-B299-B59B81022C06}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil_io", "libutil_io\libutil_io.vcxproj", "{AC4806D1-C2CC-444B-8F0D-209851A969D2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {8F120666-1A69-4506-8546-0F665E80FFB7} = {8F120666-1A69-4506-8546-0F665E80FFB7}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil_io_tests", "libutil_io_tests\libutil_io_tests.vcxproj", "{805598B5-9E7E-4CB1-952C-C0060FBE630D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AC4806D1-C2CC-444B-8F0D-209851A969D2} = {AC4806D1-C2CC-444B-8F0D-209851A969D2}
+ {2844FDFB-A0A1-4FA4-A654-15D69CC717DD} = {2844FDFB-A0A1-4FA4-A654-15D69CC717DD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libutil_io_python", "libutil_io_python\libutil_io_python.vcxproj", "{564B0ADE-76A4-4833-9610-8DEEA6A15423}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AC4806D1-C2CC-444B-8F0D-209851A969D2} = {AC4806D1-C2CC-444B-8F0D-209851A969D2}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxfr", "libxfr\libxfr.vcxproj", "{761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {813BA1C9-8CD8-4B06-B1C0-FDAB576AC4B6} = {813BA1C9-8CD8-4B06-B1C0-FDAB576AC4B6}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -428,6 +454,22 @@ Global
{0723DEB6-E2C3-4082-91E5-0F8F4B0649F6}.Debug|Win32.Build.0 = Debug|Win32
{0723DEB6-E2C3-4082-91E5-0F8F4B0649F6}.Release|Win32.ActiveCfg = Release|Win32
{0723DEB6-E2C3-4082-91E5-0F8F4B0649F6}.Release|Win32.Build.0 = Release|Win32
+ {AC4806D1-C2CC-444B-8F0D-209851A969D2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AC4806D1-C2CC-444B-8F0D-209851A969D2}.Debug|Win32.Build.0 = Debug|Win32
+ {AC4806D1-C2CC-444B-8F0D-209851A969D2}.Release|Win32.ActiveCfg = Release|Win32
+ {AC4806D1-C2CC-444B-8F0D-209851A969D2}.Release|Win32.Build.0 = Release|Win32
+ {805598B5-9E7E-4CB1-952C-C0060FBE630D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {805598B5-9E7E-4CB1-952C-C0060FBE630D}.Debug|Win32.Build.0 = Debug|Win32
+ {805598B5-9E7E-4CB1-952C-C0060FBE630D}.Release|Win32.ActiveCfg = Release|Win32
+ {805598B5-9E7E-4CB1-952C-C0060FBE630D}.Release|Win32.Build.0 = Release|Win32
+ {564B0ADE-76A4-4833-9610-8DEEA6A15423}.Debug|Win32.ActiveCfg = Debug|Win32
+ {564B0ADE-76A4-4833-9610-8DEEA6A15423}.Debug|Win32.Build.0 = Debug|Win32
+ {564B0ADE-76A4-4833-9610-8DEEA6A15423}.Release|Win32.ActiveCfg = Release|Win32
+ {564B0ADE-76A4-4833-9610-8DEEA6A15423}.Release|Win32.Build.0 = Release|Win32
+ {761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5}.Debug|Win32.Build.0 = Debug|Win32
+ {761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5}.Release|Win32.ActiveCfg = Release|Win32
+ {761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/win32build/VS2010/libcc/libcc.vcxproj b/win32build/VS2010/libcc/libcc.vcxproj
index 06a93e3..4d8a817 100755
--- a/win32build/VS2010/libcc/libcc.vcxproj
+++ b/win32build/VS2010/libcc/libcc.vcxproj
@@ -12,9 +12,12 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\lib\cc\data.h" />
+ <ClInclude Include="..\..\..\src\lib\cc\session.h" />
+ <ClInclude Include="..\..\..\src\lib\cc\session_config.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\src\lib\cc\data.cc" />
+ <ClCompile Include="..\..\..\src\lib\cc\session.cc" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{CC29C1F9-A77B-476C-803E-8830F8312571}</ProjectGuid>
@@ -55,7 +58,7 @@
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\ext\asio;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
<Link>
@@ -76,7 +79,7 @@ copy session_config.h.win32 session_config.h
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\ext\asio;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
<Link>
diff --git a/win32build/VS2010/libcc/libcc.vcxproj.filters b/win32build/VS2010/libcc/libcc.vcxproj.filters
index aaa8e08..de8b01a 100755
--- a/win32build/VS2010/libcc/libcc.vcxproj.filters
+++ b/win32build/VS2010/libcc/libcc.vcxproj.filters
@@ -18,10 +18,19 @@
<ClInclude Include="..\..\..\src\lib\cc\data.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\src\lib\cc\session.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\lib\cc\session_config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\src\lib\cc\data.cc">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\src\lib\cc\session.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libcc_tests/libcc_tests.vcxproj b/win32build/VS2010/libcc_tests/libcc_tests.vcxproj
index d36710e..27c513e 100755
--- a/win32build/VS2010/libcc_tests/libcc_tests.vcxproj
+++ b/win32build/VS2010/libcc_tests/libcc_tests.vcxproj
@@ -53,7 +53,7 @@
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\..\gtest\include;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\src\lib\cc\tests;..\..\..\ext\asio;..\..\..\..\gtest\include;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
<Link>
@@ -61,7 +61,7 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<OutputFile>$(OutDir)run_unittests$(TargetExt)</OutputFile>
<AdditionalDependencies>libexceptions.lib;libcc.lib;gtestd.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>..\libexceptions\Debug;..\libcc\Debug;..\..\..\..\gtest\md10\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>..\libexceptions\Debug;..\libcc\Debug;..\..\..\..\gtest\md10\Debug;C:\Program Files\boost\boost_1_44\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PreBuildEvent>
<Command>cd ..\..\..\src\lib\cc\tests
@@ -77,7 +77,7 @@ copy session_unittests_config.h.win32 session_unittests_config.h
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\..\gtest\include;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\src\lib\cc\tests;..\..\..\ext\asio;..\..\..\..\gtest\include;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
<Link>
@@ -87,7 +87,7 @@ copy session_unittests_config.h.win32 session_unittests_config.h
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>$(OutDir)run_unittests$(TargetExt)</OutputFile>
<AdditionalDependencies>libexceptions.lib;libcc.lib;gtest.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>..\libexceptions\Release;..\libcc\Release;..\..\..\..\gtest\md10\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>..\libexceptions\Release;..\libcc\Release;..\..\..\..\gtest\md10\Release;C:\Program Files\boost\boost_1_44\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<PreBuildEvent>
<Command>cd ..\..\..\src\lib\cc\tests
@@ -98,6 +98,10 @@ copy session_unittests_config.h.win32 session_unittests_config.h
<ItemGroup>
<ClCompile Include="..\..\..\src\lib\cc\tests\data_unittests.cc" />
<ClCompile Include="..\..\..\src\lib\cc\tests\run_unittests.cc" />
+ <ClCompile Include="..\..\..\src\lib\cc\tests\session_unittests.cc" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\src\lib\cc\tests\session_unittests_config.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/win32build/VS2010/libcc_tests/libcc_tests.vcxproj.filters b/win32build/VS2010/libcc_tests/libcc_tests.vcxproj.filters
index 0ebec7d..07789b5 100755
--- a/win32build/VS2010/libcc_tests/libcc_tests.vcxproj.filters
+++ b/win32build/VS2010/libcc_tests/libcc_tests.vcxproj.filters
@@ -21,5 +21,13 @@
<ClCompile Include="..\..\..\src\lib\cc\tests\run_unittests.cc">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\src\lib\cc\tests\session_unittests.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\src\lib\cc\tests\session_unittests_config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io/libutil_io.vcxproj b/win32build/VS2010/libutil_io/libutil_io.vcxproj
new file mode 100755
index 0000000..c0ceda8
--- /dev/null
+++ b/win32build/VS2010/libutil_io/libutil_io.vcxproj
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\src\lib\util\io\fd.h" />
+ <ClInclude Include="..\..\..\src\lib\util\io\fd_share.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\util\io\fd.cc" />
+ <ClCompile Include="..\..\..\src\lib\util\io\fd_share.cc" />
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{AC4806D1-C2CC-444B-8F0D-209851A969D2}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>libutil_io</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <CompileAs>CompileAsCpp</CompileAs>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <CompileAs>CompileAsCpp</CompileAs>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io/libutil_io.vcxproj.filters b/win32build/VS2010/libutil_io/libutil_io.vcxproj.filters
new file mode 100755
index 0000000..deb2d50
--- /dev/null
+++ b/win32build/VS2010/libutil_io/libutil_io.vcxproj.filters
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\src\lib\util\io\fd.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\lib\util\io\fd_share.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\util\io\fd.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\lib\util\io\fd_share.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io/libutil_io.vcxproj.user b/win32build/VS2010/libutil_io/libutil_io.vcxproj.user
new file mode 100755
index 0000000..695b5c7
--- /dev/null
+++ b/win32build/VS2010/libutil_io/libutil_io.vcxproj.user
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj b/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj
new file mode 100755
index 0000000..efdc38e
--- /dev/null
+++ b/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{564B0ADE-76A4-4833-9610-8DEEA6A15423}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>libutil_io_python</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ <OutDir>$(Configuration)\</OutDir>
+ <TargetExt>.pyd</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ <OutDir>$(Configuration)\</OutDir>
+ <TargetExt>.pyd</TargetExt>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBUTIL_IO_PYTHON_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;C:\Python32\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <CompileAs>CompileAsCpp</CompileAs>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OutputFile>$(OutDir)$(TargetName).pyd</OutputFile>
+ <AdditionalDependencies>libutil_io.lib;python3.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\libutil_io\Debug;C:\Python32\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBUTIL_IO_PYTHON_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;C:\Python32\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <CompileAs>CompileAsCpp</CompileAs>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <OutputFile>$(OutDir)$(TargetName).pyd</OutputFile>
+ <AdditionalDependencies>libutil_io.lib;python3.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>..\libutil_io\Release;C:\Python32\libs;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\util\io\fdshare_python.cc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj.filters b/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj.filters
new file mode 100755
index 0000000..69b3962
--- /dev/null
+++ b/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\util\io\fdshare_python.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj.user b/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj.user
new file mode 100755
index 0000000..695b5c7
--- /dev/null
+++ b/win32build/VS2010/libutil_io_python/libutil_io_python.vcxproj.user
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj b/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj
new file mode 100755
index 0000000..8e782ca
--- /dev/null
+++ b/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{805598B5-9E7E-4CB1-952C-C0060FBE630D}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>libutil_io_tests</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ <OutDir>$(Configuration)\</OutDir>
+ <TargetName>run_unittests</TargetName>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ <OutDir>$(Configuration)\</OutDir>
+ <TargetName>run_unittests</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\..\gtest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <CompileAs>CompileAsCpp</CompileAs>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AdditionalDependencies>libutil_io.lib;libutil_unittests.lib;gtestd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)run_unittests$(TargetExt)</OutputFile>
+ <AdditionalLibraryDirectories>..\libutil_io\Debug;..\libutil_unittests\Debug;..\..\..\..\gtest\md10\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\..\gtest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <CompileAs>CompileAsCpp</CompileAs>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <AdditionalDependencies>libutil_io.lib;libutil_unittests.lib;gtest.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)run_unittests$(TargetExt)</OutputFile>
+ <AdditionalLibraryDirectories>..\libutil_io\Release;..\libutil_unittests\Release;..\..\..\..\gtest\md10\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\util\io\tests\fd_tests.cc" />
+ <ClCompile Include="..\..\..\src\lib\util\io\tests\run_unittests.cc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj.filters b/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj.filters
new file mode 100755
index 0000000..2929bb4
--- /dev/null
+++ b/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj.filters
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\util\io\tests\fd_tests.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\lib\util\io\tests\run_unittests.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj.user b/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj.user
new file mode 100755
index 0000000..695b5c7
--- /dev/null
+++ b/win32build/VS2010/libutil_io_tests/libutil_io_tests.vcxproj.user
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libutil_unittests/libutil_unittests.vcxproj b/win32build/VS2010/libutil_unittests/libutil_unittests.vcxproj
index dc592aa..c6b8254 100755
--- a/win32build/VS2010/libutil_unittests/libutil_unittests.vcxproj
+++ b/win32build/VS2010/libutil_unittests/libutil_unittests.vcxproj
@@ -11,10 +11,12 @@
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="..\..\..\src\lib\util\unittests\fork.h" />
<ClInclude Include="..\..\..\src\lib\util\unittests\newhook.h" />
<ClInclude Include="..\..\..\src\lib\util\unittests\resolver.h" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\util\unittests\fork.cc" />
<ClCompile Include="..\..\..\src\lib\util\unittests\newhook.cc" />
</ItemGroup>
<PropertyGroup Label="Globals">
@@ -56,7 +58,7 @@
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..\src\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
<Link>
@@ -72,7 +74,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..\src\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
<Link>
diff --git a/win32build/VS2010/libutil_unittests/libutil_unittests.vcxproj.filters b/win32build/VS2010/libutil_unittests/libutil_unittests.vcxproj.filters
index a51d95d..b66f736 100755
--- a/win32build/VS2010/libutil_unittests/libutil_unittests.vcxproj.filters
+++ b/win32build/VS2010/libutil_unittests/libutil_unittests.vcxproj.filters
@@ -21,10 +21,16 @@
<ClInclude Include="..\..\..\src\lib\util\unittests\resolver.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\src\lib\util\unittests\fork.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\src\lib\util\unittests\newhook.cc">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\src\lib\util\unittests\fork.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libxfr/libxfr.vcxproj b/win32build/VS2010/libxfr/libxfr.vcxproj
new file mode 100755
index 0000000..7ea5517
--- /dev/null
+++ b/win32build/VS2010/libxfr/libxfr.vcxproj
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\src\lib\xfr\xfrout_client.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\xfr\xfrout_client.cc" />
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{761E7D88-6CCB-4E41-9F1E-6C1FBBD062F5}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>libxfr</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\ext\asio;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <CompileAs>CompileAsCpp</CompileAs>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\ext\asio;C:\Program Files\boost\boost_1_44;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <CompileAs>CompileAsCpp</CompileAs>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libxfr/libxfr.vcxproj.filters b/win32build/VS2010/libxfr/libxfr.vcxproj.filters
new file mode 100755
index 0000000..e703748
--- /dev/null
+++ b/win32build/VS2010/libxfr/libxfr.vcxproj.filters
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\src\lib\xfr\xfrout_client.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\src\lib\xfr\xfrout_client.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/win32build/VS2010/libxfr/libxfr.vcxproj.user b/win32build/VS2010/libxfr/libxfr.vcxproj.user
new file mode 100755
index 0000000..695b5c7
--- /dev/null
+++ b/win32build/VS2010/libxfr/libxfr.vcxproj.user
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/win32build/config.h b/win32build/config.h
index 81246f6..7a35fc7 100644
--- a/win32build/config.h
+++ b/win32build/config.h
@@ -44,11 +44,11 @@
/* WIN32 specials */
-#define strncasecmp _strnicmp
-#define unlink _unlink
#define srandom srand
#define random() rand()
+typedef int pid_t;
typedef unsigned int uid_t;
+typedef int ssize_t;
/* Prevent inclusion of winsock.h in windows.h */
#ifndef _WINSOCKAPI_
More information about the bind10-changes
mailing list