diff options
Diffstat (limited to 'src/mds-server')
-rw-r--r-- | src/mds-server/interceptors.c | 5 |
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 |