diff options
author | rsiddharth <s@ricketyspace.net> | 2019-11-14 18:51:28 -0500 |
---|---|---|
committer | rsiddharth <s@ricketyspace.net> | 2020-04-17 20:56:35 -0400 |
commit | f7217c512e54c0991af35627ecaaba3d8b7fb9be (patch) | |
tree | 6ef0e2027af6c4469ce60b0631285472ab15ce0e /nserver/src/protocol.c | |
parent | 1993bfc6cee9f87ee50137bfe9bae49d513d7cbb (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.c | 30 |
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; +} + |