Mercurial > trustbridge
changeset 242:809eaca3898c
Added helper functions to handle lists of NSS SECItems.
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Fri, 28 Mar 2014 18:37:59 +0100 |
parents | 74d6e33c7d38 |
children | 4b67cc2d4dad |
files | cinst/CMakeLists.txt cinst/nss-secitemlist.c cinst/nss-secitemlist.h |
diffstat | 3 files changed, 69 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/cinst/CMakeLists.txt Fri Mar 28 13:33:58 2014 +0100 +++ b/cinst/CMakeLists.txt Fri Mar 28 18:37:59 2014 +0100 @@ -30,6 +30,7 @@ if(NSS_FOUND) include_directories(${NSS_INCLUDE_DIRS}) set(MOZILLA_SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/nss-secitemlist.c ${CMAKE_CURRENT_SOURCE_DIR}/mozilla.c ) add_executable(mozilla ${MOZILLA_SOURCES})
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cinst/nss-secitemlist.c Fri Mar 28 18:37:59 2014 +0100 @@ -0,0 +1,28 @@ +#include "nss-secitemlist.h" + +void +seciteml_push (seciteml_t **list, SECItem *item) +{ + seciteml_t *newlelt; + SECItem *newitem; + newlelt = (seciteml_t *)xmalloc( sizeof(seciteml_t) ); + newitem = (SECItem *)xmalloc( sizeof(SECItem) ); + memcpy(newitem, item, sizeof(SECItem)); + newlelt->item = newitem; + newlelt->next = *list; + *list = newlelt; +} + +SECItem *seciteml_pop (seciteml_t **list) +{ + seciteml_t *oldlelt; + SECItem *item = NULL; + + if (*list != NULL) + { + oldlelt = *list; + item = oldlelt->item; + *list = oldlelt->next; + } + return(item); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cinst/nss-secitemlist.h Fri Mar 28 18:37:59 2014 +0100 @@ -0,0 +1,40 @@ +#ifndef NSS_SECITEMLIST_H +#define NSS_SECITEMLIST_H + +/** + * @file + * @brief Functions to handle lists of NSS SECItem-s. + */ + +#include <seccomon.h> +#include "strhelp.h" + +struct seciteml { + SECItem *item; + struct seciteml *next; +}; + +/** + * @brief Type for SECItem lists + */ +typedef struct seciteml seciteml_t; + +/** + * @brief Prepend a new SECItem to list + * + * The data will be copied. + * @param[inout] list pointer to the list to which the item will be added. + * @param[in] item the SECItem to add to the list. + */ +void seciteml_push (seciteml_t **list, SECItem *item); + +/** + * @brief Remove and return first SECItem from list + * + * @param[inout] list pointer to the list to which the item will be added. + * @retruns the removed item, or NULL if list is empty. + * The caller shoud free this item after use. + */ +SECItem *seciteml_pop (seciteml_t **list); + +#endif