aboutsummaryrefslogtreecommitdiffstats
path: root/src/mds-server/interceptors.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mds-server/interceptors.c')
-rw-r--r--src/mds-server/interceptors.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mds-server/interceptors.c b/src/mds-server/interceptors.c
index 38442bd..552d7a1 100644
--- a/src/mds-server/interceptors.c
+++ b/src/mds-server/interceptors.c
@@ -77,6 +77,7 @@ void add_intercept_condition(client_t* client, char* condition, int64_t priority
interception_condition_t* conds = client->interception_conditions;
ssize_t nonmodifying = -1;
char* header = condition;
+ char* colon = NULL;
char* value;
size_t hash;
size_t i;
@@ -85,11 +86,15 @@ void add_intercept_condition(client_t* client, char* condition, int64_t priority
if ((value = strchr(header, ':')) != NULL)
{
*value = '\0'; /* NUL-terminate header. */
+ colon = value; /* End of header. */
value += 2; /* Skip over delimiter. */
}
/* Calcuate header hash (comparison optimisation) */
hash = string_hash(header);
+ /* Undo header–value splitting. */
+ if (colon != NULL)
+ *colon = ':';
/* Remove of update condition of already registered,
also look for non-modifying condition to swap position