Browse Source

Include bkey header length in forward_passthrough_msg

master
ckolivas 9 years ago
parent
commit
e223264717
  1. 34
      src/generator.c

34
src/generator.c

@ -1924,25 +1924,29 @@ static void reconnect_proxy(proxy_instance_t *proxi)
static void forward_passthrough_msg(ckpool_t *ckp, char *buf, int len)
{
int slen = strlen(buf), blen = len - slen;
int slen = strlen(buf);
char *bkey = NULL;
if (unlikely(blen > 0))
if (unlikely(len > slen)) {
bkey = strstr(buf + slen - 5, "bkey");
if (bkey) {
json_t *val = json_loads(buf, JSON_DISABLE_EOF_CHECK, NULL);
if (unlikely(!val)) {
LOGWARNING("No json in bkey appended message %s", buf);
goto out;
if (bkey) {
json_t *val = json_loads(buf, JSON_DISABLE_EOF_CHECK, NULL);
int blen;
LOGDEBUG("Bkey found in forward_passthrough_msg");
blen = len - (bkey - buf);
if (unlikely(!val)) {
LOGWARNING("No json in bkey appended message %s", buf);
goto out;
}
json_append_bkeys(val, bkey, blen);
buf = json_dumps(val, JSON_COMPACT);
json_decref(val);
LOGDEBUG("Passthrough recv received upstream bkey msg: %s", buf);
send_proc(ckp->connector, buf);
free(buf);
return;
}
json_append_bkeys(val, bkey, blen);
buf = json_dumps(val, JSON_COMPACT);
json_decref(val);
LOGDEBUG("Passthrough recv received upstream bkey msg: %s", buf);
send_proc(ckp->connector, buf);
free(buf);
return;
}
out:
LOGDEBUG("Passthrough recv received upstream msg: %s", buf);

Loading…
Cancel
Save