aboutsummaryrefslogtreecommitdiff
path: root/nxcomp
diff options
context:
space:
mode:
authorNito Martinez <Nito@Qindel.ES>2015-02-13 13:26:27 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-02-13 13:26:27 +0100
commitd4d3fe0e6e77a58e68defc5895a589a681d7d092 (patch)
tree3e8197ea66ca8dc9fbac1275a9c6efaa8f7f6a35 /nxcomp
parentfea8fb5aeeeb77ecfd3e98791bd6f77a9782b588 (diff)
downloadnx-libs-d4d3fe0e6e77a58e68defc5895a589a681d7d092.tar.gz
nx-libs-d4d3fe0e6e77a58e68defc5895a589a681d7d092.tar.bz2
nx-libs-d4d3fe0e6e77a58e68defc5895a589a681d7d092.zip
Allow version 4-digit version comparison/handshake (400_nxcomp-version.full+lite.patch).
Diffstat (limited to 'nxcomp')
-rw-r--r--nxcomp/Control.cpp40
-rw-r--r--nxcomp/Control.h9
-rw-r--r--nxcomp/Loop.cpp3
-rw-r--r--nxcomp/Makefile.in3
-rw-r--r--nxcomp/NX.h6
5 files changed, 26 insertions, 35 deletions
diff --git a/nxcomp/Control.cpp b/nxcomp/Control.cpp
index ce99567d7..062654235 100644
--- a/nxcomp/Control.cpp
+++ b/nxcomp/Control.cpp
@@ -15,6 +15,7 @@
/* */
/**************************************************************************/
+#include "NX.h"
#include "NXpack.h"
#include "Control.h"
@@ -594,44 +595,17 @@ Control::Control()
RemoteVersionMajor = -1;
RemoteVersionMinor = -1;
RemoteVersionPatch = -1;
+ RemoteVersionMaintenancePatch = -1;
CompatVersionMajor = -1;
CompatVersionMinor = -1;
CompatVersionPatch = -1;
+ CompatVersionMaintenancePatch = -1;
- char version[32];
-
- strcpy(version, VERSION);
-
- char *value;
-
- value = strtok(version, ".");
-
- for (int i = 0; value != NULL && i < 3; i++)
- {
- switch (i)
- {
- case 0:
-
- LocalVersionMajor = atoi(value);
-
- break;
-
- case 1:
-
- LocalVersionMinor = atoi(value);
-
- break;
-
- case 2:
-
- LocalVersionPatch = atoi(value);
-
- break;
- }
-
- value = strtok(NULL, ".");
- }
+ LocalVersionMajor = NXMajorVersion();
+ LocalVersionMinor = NXMinorVersion();
+ LocalVersionPatch = NXPatchVersion();
+ LocalVersionMaintenancePatch = NXMaintenancePatchVersion();
#ifdef TEST
*logofs << "Control: Major version is " << LocalVersionMajor
diff --git a/nxcomp/Control.h b/nxcomp/Control.h
index c21477544..71f357c4a 100644
--- a/nxcomp/Control.h
+++ b/nxcomp/Control.h
@@ -299,17 +299,26 @@ class Control
// Version number of local and remote proxy.
//
+ /*
+ * LocalVersionMaintenancePatch, RemoteVersionMaintenancePatch
+ * CompatVersionMaintenancePatch
+ *
+ * currently not used, for future compatibility checks
+ */
int LocalVersionMajor;
int LocalVersionMinor;
int LocalVersionPatch;
+ int LocalVersionMaintenancePatch;
int RemoteVersionMajor;
int RemoteVersionMinor;
int RemoteVersionPatch;
+ int RemoteVersionMaintenancePatch;
int CompatVersionMajor;
int CompatVersionMinor;
int CompatVersionPatch;
+ int CompatVersionMaintenancePatch;
//
// Which unpack methods are implemented in proxy?
diff --git a/nxcomp/Loop.cpp b/nxcomp/Loop.cpp
index 77b0c806c..c8c95bd72 100644
--- a/nxcomp/Loop.cpp
+++ b/nxcomp/Loop.cpp
@@ -14250,7 +14250,8 @@ void PrintVersionInfo()
cerr << "NXPROXY - " << "Version "
<< control -> LocalVersionMajor << "."
<< control -> LocalVersionMinor << "."
- << control -> LocalVersionPatch;
+ << control -> LocalVersionPatch << "."
+ << control -> LocalVersionMaintenancePatch;
cerr << endl;
}
diff --git a/nxcomp/Makefile.in b/nxcomp/Makefile.in
index 1be928167..93bb0b38c 100644
--- a/nxcomp/Makefile.in
+++ b/nxcomp/Makefile.in
@@ -105,7 +105,8 @@ MSRC =
CSRC = MD5.c \
Pack.c \
- Vars.c
+ Vars.c \
+ Version.c
CXXSRC = Loop.cpp \
Children.cpp \
diff --git a/nxcomp/NX.h b/nxcomp/NX.h
index d98af79bb..2dbf68662 100644
--- a/nxcomp/NX.h
+++ b/nxcomp/NX.h
@@ -442,6 +442,12 @@ extern int NXTransParseEnvironment(const char *env, int force);
extern void NXTransCleanup(void) __attribute__((noreturn));
+extern const char* NXVersion();
+extern int NXMajorVersion();
+extern int NXMinorVersion();
+extern int NXPatchVersion();
+extern int NXMaintenancePatchVersion();
+
#ifdef __cplusplus
}
#endif