From b67dab18678d3628929999fc77c48a5bc660e5e2 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 21 Jun 2012 02:20:39 +0100 Subject: [PATCH] transform: add ->valid() function This allows outside callers to find out whether the transform has been keyed, and can therefore relieve them of the need to track this separately. Signed-off-by: Ian Jackson --- secnet.h | 2 ++ transform.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/secnet.h b/secnet.h index b276798..6ac64e3 100644 --- a/secnet.h +++ b/secnet.h @@ -387,6 +387,7 @@ struct site_if { typedef struct transform_inst_if *transform_createinstance_fn(void *st); typedef bool_t transform_setkey_fn(void *st, uint8_t *key, int32_t keylen); +typedef bool_t transform_valid_fn(void *st); /* 0: no key; 1: ok */ typedef void transform_delkey_fn(void *st); typedef void transform_destroyinstance_fn(void *st); /* Returns: @@ -400,6 +401,7 @@ typedef uint32_t transform_apply_fn(void *st, struct buffer_if *buf, struct transform_inst_if { void *st; transform_setkey_fn *setkey; + transform_valid_fn *valid; transform_delkey_fn *delkey; transform_apply_fn *forwards; transform_apply_fn *reverse; diff --git a/transform.c b/transform.c index f1da564..289b02e 100644 --- a/transform.c +++ b/transform.c @@ -68,6 +68,13 @@ static bool_t transform_setkey(void *sst, uint8_t *key, int32_t keylen) return True; } +static bool_t transform_valid(void *sst) +{ + struct transform_inst *ti=sst; + + return ti->keyed; +} + static void transform_delkey(void *sst) { struct transform_inst *ti=sst; @@ -271,6 +278,7 @@ static struct transform_inst_if *transform_create(void *sst) ti->ops.st=ti; ti->ops.setkey=transform_setkey; + ti->ops.valid=transform_valid; ti->ops.delkey=transform_delkey; ti->ops.forwards=transform_forward; ti->ops.reverse=transform_reverse; -- 2.11.0