summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builds/msvc/libzmq/libzmq.vcproj8
-rw-r--r--builds/msvc/msvc.sln9
-rw-r--r--builds/msvc/ruby/ruby.vcproj68
-rw-r--r--src/pgm_socket.cpp38
4 files changed, 105 insertions, 18 deletions
diff --git a/builds/msvc/libzmq/libzmq.vcproj b/builds/msvc/libzmq/libzmq.vcproj
index 30de948..3906859 100644
--- a/builds/msvc/libzmq/libzmq.vcproj
+++ b/builds/msvc/libzmq/libzmq.vcproj
@@ -258,6 +258,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\prefix_tree.cpp"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\pub.cpp"
>
</File>
@@ -512,6 +516,10 @@
>
</File>
<File
+ RelativePath="..\..\..\src\prefix_tree.hpp"
+ >
+ </File>
+ <File
RelativePath="..\..\..\src\pub.hpp"
>
</File>
diff --git a/builds/msvc/msvc.sln b/builds/msvc/msvc.sln
index 95f1299..bd33979 100644
--- a/builds/msvc/msvc.sln
+++ b/builds/msvc/msvc.sln
@@ -98,6 +98,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zmq_queue", "zmq_queue\zmq_
{641C5F36-32EE-4323-B740-992B651CF9D6} = {641C5F36-32EE-4323-B740-992B651CF9D6}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ruby", "ruby\ruby.vcproj", "{A758A62C-48E3-4C30-ACD2-63AA93391D07}"
+ ProjectSection(ProjectDependencies) = postProject
+ {641C5F36-32EE-4323-B740-992B651CF9D6} = {641C5F36-32EE-4323-B740-992B651CF9D6}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -183,6 +188,10 @@ Global
{076F7B8B-5175-4CA9-BC2B-438E37F7F43E}.Debug|Win32.Build.0 = Debug|Win32
{076F7B8B-5175-4CA9-BC2B-438E37F7F43E}.Release|Win32.ActiveCfg = Release|Win32
{076F7B8B-5175-4CA9-BC2B-438E37F7F43E}.Release|Win32.Build.0 = Release|Win32
+ {A758A62C-48E3-4C30-ACD2-63AA93391D07}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A758A62C-48E3-4C30-ACD2-63AA93391D07}.Debug|Win32.Build.0 = Debug|Win32
+ {A758A62C-48E3-4C30-ACD2-63AA93391D07}.Release|Win32.ActiveCfg = Release|Win32
+ {A758A62C-48E3-4C30-ACD2-63AA93391D07}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/builds/msvc/ruby/ruby.vcproj b/builds/msvc/ruby/ruby.vcproj
new file mode 100644
index 0000000..5b38afe
--- /dev/null
+++ b/builds/msvc/ruby/ruby.vcproj
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ruby"
+ ProjectGUID="{A758A62C-48E3-4C30-ACD2-63AA93391D07}"
+ RootNamespace="ruby"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="10"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="10"
+ UseOfMFC="0"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine="cd ..\..\..\bindings\ruby&#x0D;&#x0A;ruby extconf.rb --with-libzmq-include=&quot;.\..\..\bindings\c&quot; --with-libzmq-lib=&quot;.\..\..\lib&quot;&#x0D;&#x0A;nmake&#x0D;&#x0A;mt.exe -manifest librbzmq.so.manifest -outputresource:librbzmq.so;2&#x0D;&#x0A;nmake install&#x0D;&#x0A;cd ..\..\builds\msvc\ruby"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/src/pgm_socket.cpp b/src/pgm_socket.cpp
index 4d713e3..8160ca6 100644
--- a/src/pgm_socket.cpp
+++ b/src/pgm_socket.cpp
@@ -78,33 +78,35 @@ int zmq::pgm_socket_t::init (bool udp_encapsulation_, const char *network_)
nbytes_processed = 0;
pgm_msgv_processed = 0;
+ int rc;
GError *pgm_error = NULL;
- // Init PGM transport.
+ // Init PGM transport if not already done.
// Ensure threading enabled, ensure timer enabled and find PGM protocol id.
//
// Note that if you want to use gettimeofday and sleep for openPGM timing,
// set environment variables PGM_TIMER to "GTOD"
// and PGM_SLEEP to "USLEEP".
- int rc = pgm_init (&pgm_error);
- if (rc != TRUE) {
+ if (!pgm_supported ()) {
+ rc = pgm_init (&pgm_error);
+ if (rc != TRUE) {
+ if (pgm_error->domain == PGM_IF_ERROR && (
+ pgm_error->code == PGM_IF_ERROR_INVAL ||
+ pgm_error->code == PGM_IF_ERROR_XDEV ||
+ pgm_error->code == PGM_IF_ERROR_NODEV ||
+ pgm_error->code == PGM_IF_ERROR_NOTUNIQ ||
+ pgm_error->code == PGM_IF_ERROR_ADDRFAMILY ||
+ pgm_error->code == PGM_IF_ERROR_FAMILY ||
+ pgm_error->code == PGM_IF_ERROR_NODATA ||
+ pgm_error->code == PGM_IF_ERROR_NONAME ||
+ pgm_error->code == PGM_IF_ERROR_SERVICE)) {
+ errno = EINVAL;
+ g_error_free (pgm_error);
+ return -1;
+ }
- if (pgm_error->domain == PGM_IF_ERROR && (
- pgm_error->code == PGM_IF_ERROR_INVAL ||
- pgm_error->code == PGM_IF_ERROR_XDEV ||
- pgm_error->code == PGM_IF_ERROR_NODEV ||
- pgm_error->code == PGM_IF_ERROR_NOTUNIQ ||
- pgm_error->code == PGM_IF_ERROR_ADDRFAMILY ||
- pgm_error->code == PGM_IF_ERROR_FAMILY ||
- pgm_error->code == PGM_IF_ERROR_NODATA ||
- pgm_error->code == PGM_IF_ERROR_NONAME ||
- pgm_error->code == PGM_IF_ERROR_SERVICE)) {
- errno = EINVAL;
- g_error_free (pgm_error);
- return -1;
+ zmq_assert (false);
}
-
- zmq_assert (false);
}
// PGM transport GSI.