base: add heim_data_t support to heim_audit_trail()
Allow heim_audit_trail() to log heim_data_t types.
This commit is contained in:
@@ -40,6 +40,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <vis.h>
|
#include <vis.h>
|
||||||
|
#include <base64.h>
|
||||||
|
|
||||||
struct heim_log_facility_internal {
|
struct heim_log_facility_internal {
|
||||||
int min;
|
int min;
|
||||||
@@ -976,6 +977,7 @@ audit_trail_iterator(heim_object_t key, heim_object_t value, void *arg)
|
|||||||
struct heim_audit_kv_buf *kvb = arg;
|
struct heim_audit_kv_buf *kvb = arg;
|
||||||
char num[32];
|
char num[32];
|
||||||
const char *k = heim_string_get_utf8(key), *v = NULL;
|
const char *k = heim_string_get_utf8(key), *v = NULL;
|
||||||
|
char *b64 = NULL;
|
||||||
|
|
||||||
if (k == NULL || *k == '#') /* # keys are hidden */
|
if (k == NULL || *k == '#') /* # keys are hidden */
|
||||||
return;
|
return;
|
||||||
@@ -1002,6 +1004,12 @@ audit_trail_iterator(heim_object_t key, heim_object_t value, void *arg)
|
|||||||
heim_array_iterate_f(value, kvb, audit_trail_iterator_array);
|
heim_array_iterate_f(value, kvb, audit_trail_iterator_array);
|
||||||
kvb->iter = NULL;
|
kvb->iter = NULL;
|
||||||
break;
|
break;
|
||||||
|
case HEIM_TID_DATA: {
|
||||||
|
const heim_octet_string *data = heim_data_get_data(value);
|
||||||
|
if (rk_base64_encode(data->data, data->length, &b64) >= 0)
|
||||||
|
v = b64;
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1017,6 +1025,8 @@ audit_trail_iterator(heim_object_t key, heim_object_t value, void *arg)
|
|||||||
kvb->buf[kvb->pos++] = '=';
|
kvb->buf[kvb->pos++] = '=';
|
||||||
for (; *v && kvb->pos < sizeof(kvb->buf) - 1; kvb->pos++)
|
for (; *v && kvb->pos < sizeof(kvb->buf) - 1; kvb->pos++)
|
||||||
kvb->buf[kvb->pos] = *v++;
|
kvb->buf[kvb->pos] = *v++;
|
||||||
|
|
||||||
|
free(b64);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Reference in New Issue
Block a user