[PATCH 14/19] transform: add ->valid() function
Ian Jackson
ijackson at chiark.greenend.org.uk
Thu Jun 21 04:22:54 BST 2012
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 <ijackson at chiark.greenend.org.uk>
---
secnet.h | 2 ++
transform.c | 8 ++++++++
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/secnet.h b/secnet.h
index 855e099..44828ba 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;
--
1.7.2.5
More information about the sgo-software-discuss
mailing list