1 #include "pEp_internal.h"
4 DYNAMIC_API PEP_STATUS blacklist_add(PEP_SESSION session, const char *fpr)
6 PEP_STATUS status = PEP_STATUS_OK;
8 assert(session && fpr && fpr[0]);
10 if (!(session && fpr && fpr[0]))
11 return PEP_ILLEGAL_VALUE;
13 sqlite3_reset(session->blacklist_add);
14 sqlite3_bind_text(session->blacklist_add, 1, fpr, -1, SQLITE_STATIC);
18 result = sqlite3_step(session->blacklist_add);
21 status = PEP_STATUS_OK;
25 status = PEP_UNKNOWN_ERROR;
28 sqlite3_reset(session->blacklist_add);
32 DYNAMIC_API PEP_STATUS blacklist_delete(PEP_SESSION session, const char *fpr)
34 PEP_STATUS status = PEP_STATUS_OK;
36 assert(session && fpr && fpr[0]);
38 if (!(session && fpr && fpr[0]))
39 return PEP_ILLEGAL_VALUE;
41 sqlite3_reset(session->blacklist_delete);
42 sqlite3_bind_text(session->blacklist_delete, 1, fpr, -1, SQLITE_STATIC);
46 result = sqlite3_step(session->blacklist_delete);
49 status = PEP_STATUS_OK;
53 status = PEP_UNKNOWN_ERROR;
56 sqlite3_reset(session->blacklist_delete);
60 DYNAMIC_API PEP_STATUS blacklist_is_listed(
66 PEP_STATUS status = PEP_STATUS_OK;
69 assert(session && fpr && fpr[0] && listed);
71 if (!(session && fpr && fpr[0] && listed))
72 return PEP_ILLEGAL_VALUE;
76 sqlite3_reset(session->blacklist_is_listed);
77 sqlite3_bind_text(session->blacklist_is_listed, 1, fpr, -1, SQLITE_STATIC);
81 result = sqlite3_step(session->blacklist_is_listed);
84 count = sqlite3_column_int(session->blacklist_is_listed, 0);
86 status = PEP_STATUS_OK;
90 status = PEP_UNKNOWN_ERROR;
93 sqlite3_reset(session->blacklist_is_listed);
97 DYNAMIC_API PEP_STATUS blacklist_retrieve(
99 stringlist_t **blacklist
102 PEP_STATUS status = PEP_STATUS_OK;
107 if (!(session && blacklist))
108 return PEP_ILLEGAL_VALUE;
111 stringlist_t *_blacklist = new_stringlist(NULL);
112 if (_blacklist == NULL)
115 sqlite3_reset(session->blacklist_retrieve);
119 stringlist_t *_bl = _blacklist;
121 result = sqlite3_step(session->blacklist_retrieve);
125 const char *fpr = (const char *) sqlite3_column_text(session->blacklist_retrieve, 0);
127 _bl = stringlist_add(_bl, fpr);
137 status = PEP_UNKNOWN_ERROR;
138 result = SQLITE_DONE;
140 } while (result != SQLITE_DONE);
142 sqlite3_reset(session->blacklist_retrieve);
143 if (status == PEP_STATUS_OK)
144 *blacklist = _blacklist;
146 free_stringlist(_blacklist);
151 free_stringlist(_blacklist);
152 status = PEP_OUT_OF_MEMORY;