Mercurial > trustbridge
diff common/listutil.c @ 286:881ce5126f07
Add helper function to get all certificates in a list
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 02 Apr 2014 13:47:24 +0000 |
parents | b0579d4fa186 |
children | 57867a523dcf |
line wrap: on
line diff
--- a/common/listutil.c Wed Apr 02 13:45:57 2014 +0000 +++ b/common/listutil.c Wed Apr 02 13:47:24 2014 +0000 @@ -9,6 +9,8 @@ #include <sys/stat.h> #include <string.h> +#include "strhelp.h" + #ifdef RELEASE #include "pubkey-release.h" #else @@ -232,22 +234,30 @@ return retval; } -char **get_certs_to_remove(const char *data, const size_t size) { +char ** +get_certs_from_list (char *data, const size_t size) +{ + char *cur = data; + char **retval = NULL; - /* TODO */ - if (!data || !size) { - printf ("Invalid call to get_certs_to_remove \n"); - return NULL; + if (!data || !size) + { + printf ("Invalid call to get_certs_to_remove \n"); + return NULL; } - return NULL; + + while (cur) + { + char *next = strchr(cur, '\n'); + if (strlen(cur) > 3 && (cur[0] == 'I' || cur[0] == 'R') && + next - cur > 4) + { + size_t len = (size_t) (next - cur - 4); + /* Remove I: or R: at the beginning and \r\n at the end */ + strv_append(&retval, cur + 2, len); + } + cur = next ? (next + 1) : NULL; + } + return retval; } -char **get_certs_to_install(const char *data, const size_t size) { - - /* TODO */ - if (!data || !size) { - printf ("Invalid call to get_certs_to_install \n"); - return NULL; - } - return NULL; -}