while ((cn = redis_connections))
{
redis_connections = cn->next;
- DEBUG(D_lookup) debug_printf("close REDIS connection: %s\n", cn->server);
+ DEBUG(D_lookup) debug_printf_indent("close REDIS connection: %s\n", cn->server);
redisFree(cn->handle);
}
}
This copy is also used for debugging output. */
memset(sdata, 0, sizeof(sdata)) /* Set all to NULL */;
-for (i = 2; i > 0; i--)
+for (int i = 2; i > 0; i--)
{
uschar *pp = Ustrrchr(server, '/');
}
DEBUG(D_lookup)
- debug_printf("REDIS new connection: host=%s port=%d socket=%s database=%s\n",
+ debug_printf_indent("REDIS new connection: host=%s port=%d socket=%s database=%s\n",
sdata[0], port, socket, sdata[1]);
/* Get store for a new handle, initialize it, and connect to the server */
else
{
DEBUG(D_lookup)
- debug_printf("REDIS using cached connection for %s\n", server_copy);
+ debug_printf_indent("REDIS using cached connection for %s\n", server_copy);
}
/* Authenticate if there is a password */
*defer_break = FALSE;
goto REDIS_EXIT;
}
- DEBUG(D_lookup) debug_printf("REDIS: Selecting database=%s\n", sdata[1]);
+ DEBUG(D_lookup) debug_printf_indent("REDIS: Selecting database=%s\n", sdata[1]);
}
/* split string on whitespace into argv */
{
uschar * argv[32];
- int i;
const uschar * s = command;
- int siz, ptr;
+ int siz, ptr, i;
uschar c;
while (isspace(*s)) s++;
g = string_catn(g, s, 1);
argv[i] = string_from_gstring(g);
- DEBUG(D_lookup) debug_printf("REDIS: argv[%d] '%s'\n", i, argv[i]);
+ DEBUG(D_lookup) debug_printf_indent("REDIS: argv[%d] '%s'\n", i, argv[i]);
while (isspace(*s)) s++;
}
*errmsg = string_sprintf("REDIS: lookup result failed: %s\n", redis_reply->str);
/* trap MOVED cluster responses and follow them */
- if (Ustrncmp(redis_reply->str, "MOVED", 5))
+ if (Ustrncmp(redis_reply->str, "MOVED", 5) == 0)
{
DEBUG(D_lookup)
- debug_printf("REDIS: cluster redirect %s\n", redis_reply->str);
+ debug_printf_indent("REDIS: cluster redirect %s\n", redis_reply->str);
/* follow redirect
- This is cheating, we simply set defer_break = TRUE to move on to
+ This is cheating, we simply set defer_break = FALSE to move on to
the next server in the redis_servers list */
- *defer_break = TRUE;
+ *defer_break = FALSE;
return DEFER;
} else {
- *defer_break = FALSE;
+ *defer_break = TRUE;
}
*do_cache = 0;
goto REDIS_EXIT;
case REDIS_REPLY_NIL:
DEBUG(D_lookup)
- debug_printf("REDIS: query was not one that returned any data\n");
+ debug_printf_indent("REDIS: query was not one that returned any data\n");
result = string_catn(result, US"", 1);
*do_cache = 0;
goto REDIS_EXIT;
/* NOTE: For now support 1 nested array result. If needed a limitless
result can be parsed */
- for (i = 0; i < redis_reply->elements; i++)
+ for (int i = 0; i < redis_reply->elements; i++)
{
entry = redis_reply->element[i];
switch (entry->type)
{
case REDIS_REPLY_INTEGER:
- result = string_cat(result, string_sprintf("%d", entry->integer));
+ result = string_fmt_append(result, "%d", entry->integer);
break;
case REDIS_REPLY_STRING:
result = string_catn(result, US entry->str, entry->len);
break;
case REDIS_REPLY_ARRAY:
- for (j = 0; j < entry->elements; j++)
+ for (int j = 0; j < entry->elements; j++)
{
tentry = entry->element[j];
switch (tentry->type)
{
case REDIS_REPLY_INTEGER:
- result = string_cat(result, string_sprintf("%d", tentry->integer));
+ result = string_fmt_append(result, "%d", tentry->integer);
break;
case REDIS_REPLY_STRING:
result = string_catn(result, US tentry->str, tentry->len);
break;
case REDIS_REPLY_ARRAY:
DEBUG(D_lookup)
- debug_printf("REDIS: result has nesting of arrays which"
+ debug_printf_indent("REDIS: result has nesting of arrays which"
" is not supported. Ignoring!\n");
break;
default:
- DEBUG(D_lookup) debug_printf(
+ DEBUG(D_lookup) debug_printf_indent(
"REDIS: result has unsupported type. Ignoring!\n");
break;
}
}
break;
default:
- DEBUG(D_lookup) debug_printf("REDIS: query returned unsupported type\n");
+ DEBUG(D_lookup) debug_printf_indent("REDIS: query returned unsupported type\n");
break;
}
}
}
else
{
- DEBUG(D_lookup) debug_printf("%s\n", *errmsg);
+ DEBUG(D_lookup) debug_printf_indent("%s\n", *errmsg);
/* NOTE: Required to close connection since it needs to be reopened */
return yield; /* FAIL or DEFER */
}