aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/400_nxcomp-version.full+lite.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/400_nxcomp-version.full+lite.patch')
-rw-r--r--debian/patches/400_nxcomp-version.full+lite.patch240
1 files changed, 240 insertions, 0 deletions
diff --git a/debian/patches/400_nxcomp-version.full+lite.patch b/debian/patches/400_nxcomp-version.full+lite.patch
new file mode 100644
index 000000000..703cec823
--- /dev/null
+++ b/debian/patches/400_nxcomp-version.full+lite.patch
@@ -0,0 +1,240 @@
+Description: Allow version 4-digit version comparison/handshake
+Author: Nito Martinez <Nito@Qindel.ES>
+--- 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 @@
+ 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
+--- a/nxcomp/Control.h
++++ b/nxcomp/Control.h
+@@ -299,17 +299,26 @@
+ // 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?
+--- a/nxcomp/Loop.cpp
++++ b/nxcomp/Loop.cpp
+@@ -14250,7 +14250,8 @@
+ cerr << "NXPROXY - " << "Version "
+ << control -> LocalVersionMajor << "."
+ << control -> LocalVersionMinor << "."
+- << control -> LocalVersionPatch;
++ << control -> LocalVersionPatch << "."
++ << control -> LocalVersionMaintenancePatch;
+
+ cerr << endl;
+ }
+--- a/nxcomp/Makefile.in
++++ b/nxcomp/Makefile.in
+@@ -105,7 +105,8 @@
+
+ CSRC = MD5.c \
+ Pack.c \
+- Vars.c
++ Vars.c \
++ Version.c
+
+ CXXSRC = Loop.cpp \
+ Children.cpp \
+--- a/nxcomp/NX.h
++++ b/nxcomp/NX.h
+@@ -442,6 +442,12 @@
+
+ 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
+--- /dev/null
++++ b/nxcomp/Version.c
+@@ -0,0 +1,106 @@
++/**************************************************************************/
++/* */
++/* Copyright (C) 2014 Qindel http://qindel.com and QVD http://theqvd.com */
++/* */
++/* This program is free software; you can redistribute it and/or modify */
++/* it under the terms of the GNU General Public License as published by */
++/* the Free Software Foundation; either version 3 of the License, or (at */
++/* your option) any later version. */
++/* */
++/* This program is distributed in the hope that it will be useful, but */
++/* WITHOUT ANY WARRANTY; without even the implied warranty of */
++/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */
++/* See the GNU General Public License for more details. */
++/* */
++/* You should have received a copy of the GNU General Public License */
++/* along with this program; if not, see <http://www.gnu.org/licenses>. */
++/* */
++/* Additional permission under GNU GPL version 3 section 7 */
++/* */
++/* If you modify this Program, or any covered work, by linking or */
++/* combining it with [name of library] (or a modified version of that */
++/* library), containing parts covered by the terms of [name of library's */
++/* license], the licensors of this Program grant you additional */
++/* permission to convey the resulting work. {Corresponding Source for a */
++/* non-source form of such a combination shall include the source code */
++/* for the parts of [name of library] used as well as that of the covered */
++/* work.} */
++/* */
++/* */
++/**************************************************************************/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include "NX.h"
++
++
++static int _NXVersionMajor = -1;
++static int _NXVersionMinor = -1;
++static int _NXVersionPatch = -1;
++static int _NXVersionMaintenancePatch = -1;
++
++
++const char* NXVersion() {
++ const char *version = VERSION;
++ return version;
++}
++
++void _parseNXVersion() {
++ char version[32];
++ int i;
++ strcpy(version, VERSION);
++
++ char *value;
++ /* Reset values to 0 if undefined */
++ _NXVersionMajor = _NXVersionMinor = _NXVersionPatch = _NXVersionMaintenancePatch = 0;
++
++
++#define NXVERSIONSEPARATOR "."
++ value = strtok(version, NXVERSIONSEPARATOR);
++
++ for (i = 0; value != NULL && i < 4; i++)
++ {
++ switch (i)
++ {
++ case 0:
++ _NXVersionMajor = atoi(value);
++ break;
++
++ case 1:
++ _NXVersionMinor = atoi(value);
++ break;
++
++ case 2:
++ _NXVersionPatch = atoi(value);
++ break;
++
++ case 3:
++ _NXVersionMaintenancePatch = atoi(value);
++ break;
++ }
++
++ value = strtok(NULL, NXVERSIONSEPARATOR);
++ }
++}
++
++int NXMajorVersion() {
++ if (_NXVersionMajor == -1)
++ _parseNXVersion();
++ return _NXVersionMajor;
++}
++int NXMinorVersion() {
++ if (_NXVersionMinor == -1)
++ _parseNXVersion();
++ return _NXVersionMinor;
++}
++int NXPatchVersion() {
++ if (_NXVersionPatch == -1)
++ _parseNXVersion();
++ return _NXVersionPatch;
++}
++int NXMaintenancePatchVersion() {
++ if (_NXVersionMaintenancePatch == -1)
++ _parseNXVersion();
++ return _NXVersionMaintenancePatch;
++}