summaryrefslogtreecommitdiffstats
path: root/nserver/src/protocol.c
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2019-11-14 18:51:28 -0500
committerrsiddharth <s@ricketyspace.net>2020-04-17 20:56:35 -0400
commitf7217c512e54c0991af35627ecaaba3d8b7fb9be (patch)
tree6ef0e2027af6c4469ce60b0631285472ab15ce0e /nserver/src/protocol.c
parent1993bfc6cee9f87ee50137bfe9bae49d513d7cbb (diff)
nserver: protocol.h: Add sslist.
* nserver/src/protocol.c (sslist): New function. * nserver/src/protocol.h (sslist): New function declaration. * nserver/tests/protocol_tests.c (test_sslist): Test fr sslist. (all_tests): Add test_sslist.
Diffstat (limited to 'nserver/src/protocol.c')
-rw-r--r--nserver/src/protocol.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/nserver/src/protocol.c b/nserver/src/protocol.c
index c771e4e..79a379c 100644
--- a/nserver/src/protocol.c
+++ b/nserver/src/protocol.c
@@ -122,3 +122,33 @@ char *ssdump(char *key)
error:
return NULL;
}
+
+char *sslist()
+{
+ check(hash != NULL, "hash not initiliazed");
+
+ // 1. Get keys.
+ DArray *ks = Hashmap_keys(hash);
+ check(ks != NULL, "error getting keys");
+
+ bstring ks_str = bfromcstr("");
+ check(ks_str != NULL, "error creating keys_str");
+
+ int i, rc;
+ bstring k = NULL;
+ for (i = 0; i < DArray_count(ks); ++i) {
+ k = (bstring) DArray_get(ks, i);
+ check(k != NULL, "k at %d", i);
+
+ rc = bconcat(ks_str, k);
+ check(rc == BSTR_OK, "bstr key concat failed");
+
+ rc = bconchar(ks_str, '\n');
+ check(rc == BSTR_OK, "bstr newline concat failed");
+ }
+
+ return bstr2cstr(ks_str, ' ');
+ error:
+ return NULL;
+}
+