int ndpi_credis_keys(NDPI_REDIS rhnd, const char *pattern, char ***keyv) { int rc = cr_sendfandreceive(rhnd, CR_BULK, "KEYS %s\r\n", pattern); if (rc == 0) { /* server returns keys as space-separated strings, use multi-bulk * storage to store keys */ if ((rc = cr_splitstrtromultibulk(rhnd, rhnd->reply.bulk, ' ')) == 0) { *keyv = rhnd->reply.multibulk.bulks; rc = rhnd->reply.multibulk.len; } } return rc; }
int credis_keys(REDIS rhnd, const char *pattern, char ***keyv) { int rc; /* with Redis 2.0.0 keys-command returns a multibulk instead of bulk */ if (rhnd->version.major >= 2) { rc = cr_sendfandreceive(rhnd, CR_MULTIBULK, "KEYS %s\r\n", pattern); } else { if ((rc = cr_sendfandreceive(rhnd, CR_BULK, "KEYS %s\r\n", pattern)) == 0) { /* server returns keys as space-separated strings, use multi-bulk * storage to store keys */ rc = cr_splitstrtromultibulk(rhnd, rhnd->reply.bulk, ' '); } } if (rc == 0) { *keyv = rhnd->reply.multibulk.bulks; rc = rhnd->reply.multibulk.len; } return rc; }