Fixed metadata protokoll corruption on forwarded requests

When forwarding a metadata request through forward_request() we were
adding the required newline char to our buffer, but then sending the
data without it - this results in the forwarded request and the next one
to be garbled together.

Additionally while at it add a warning comment that request string is
not zero terminated anymore after a call to the forward_request()
function - for now this is ok as it is not used by any caller after this.
This commit is contained in:
Sven-Haegar Koch 2010-03-31 03:56:53 +02:00
parent 0310deb225
commit e49891e188

View file

@ -103,6 +103,7 @@ bool send_request(connection_t *c, const char *format, ...) {
}
void forward_request(connection_t *from, char *request) {
/* Note: request is not zero terminated anymore after a call to this function! */
ifdebug(PROTOCOL) {
ifdebug(META)
logger(LOG_DEBUG, "Forwarding %s from %s (%s): %s",
@ -113,7 +114,7 @@ void forward_request(connection_t *from, char *request) {
}
int len = strlen(request);
request[len] = '\n';
request[len++] = '\n';
broadcast_meta(from, request, len);
}