diff options
Diffstat (limited to '')
-rw-r--r-- | src/mds-echo.c | 6 | ||||
-rw-r--r-- | src/mds-server/interceptors.c | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/mds-echo.c b/src/mds-echo.c index 8d1fae0..c9087c5 100644 --- a/src/mds-echo.c +++ b/src/mds-echo.c @@ -97,12 +97,12 @@ int __attribute__((const)) preinitialise_server(void) */ int initialise_server(void) { - const char* message = + const char* const message = "Command: intercept\n" "Message ID: 0\n" - "Length: 13\n" + "Length: 14\n" "\n" - "Command: echo"; + "Command: echo\n"; if (full_send(message, strlen(message))) return 1; 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 |