openslp/openslp.doubleequal.diff

43 lines
1.5 KiB
Diff

--- ./slpd/slpd_predicate.c.orig 2014-12-15 14:11:36.181812237 +0000
+++ ./slpd/slpd_predicate.c 2014-12-15 14:20:00.441759165 +0000
@@ -66,6 +66,7 @@
#include "slp_xmalloc.h"
#include "slpd_predicate.h"
+#include "slpd_property.h"
/* Parse character definitions. */
#define BRACKET_OPEN '('
@@ -1633,6 +1634,11 @@ SLPDPredicateParseResult createPredicate
op = EQUAL;
}
+ if (op == EQUAL && G_SlpdProperty.allowDoubleEqualInPredicate && operator[1] == '=')
+ {
+ val_start++;
+ }
+
/***** Get operands. *****/
/**** Left. ****/
lhs_len = operator - cur;
--- ./slpd/slpd_property.c.orig 2014-12-15 14:09:49.294246247 +0000
+++ ./slpd/slpd_property.c 2014-12-15 14:11:21.587871548 +0000
@@ -250,6 +250,7 @@ void SLPDPropertyReinit(void)
G_SlpdProperty.myHostnameLen = strlen(G_SlpdProperty.myHostname);
G_SlpdProperty.hardMTU = SLPPropertyAsBoolean("net.slp.hardMTU");
+ G_SlpdProperty.allowDoubleEqualInPredicate = SLPPropertyAsBoolean("net.slp.allowDoubleEqualInPredicate");
G_SlpdProperty.DASyncReg = SLPPropertyAsBoolean("net.slp.DASyncReg");
G_SlpdProperty.isDABackup = SLPPropertyAsBoolean("net.slp.isDABackup");
--- ./slpd/slpd_property.h.orig 2014-12-15 14:09:43.647269171 +0000
+++ ./slpd/slpd_property.h 2014-12-15 14:10:24.932101603 +0000
@@ -118,6 +118,7 @@ typedef struct _SLPDProperty
int useDHCP;
int oversizedUDP;
int hardMTU;
+ int allowDoubleEqualInPredicate;
int DASyncReg;
int isDABackup;