diff options
author | Martin Willi <martin@revosec.ch> | 2010-11-03 15:12:05 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-11-03 15:12:05 +0100 |
commit | 851d60484ea9f3d61d133fbd0eecea7eff015b3c (patch) | |
tree | a7e50781153f2dcdba9da42dcbf816c9d247153f /src/libcharon/plugins/stroke/stroke_socket.c | |
parent | 49a9028201f3d2be9b3b7e640eae5de65ce9b5cd (diff) | |
download | strongswan-851d60484ea9f3d61d133fbd0eecea7eff015b3c.tar.bz2 strongswan-851d60484ea9f3d61d133fbd0eecea7eff015b3c.tar.xz |
Added a stroke rekey command to trigger IKE/CHILD_SA rekeying manually
Diffstat (limited to 'src/libcharon/plugins/stroke/stroke_socket.c')
-rw-r--r-- | src/libcharon/plugins/stroke/stroke_socket.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libcharon/plugins/stroke/stroke_socket.c b/src/libcharon/plugins/stroke/stroke_socket.c index 0a5110fd3..2e321f8b0 100644 --- a/src/libcharon/plugins/stroke/stroke_socket.c +++ b/src/libcharon/plugins/stroke/stroke_socket.c @@ -246,6 +246,17 @@ static void stroke_terminate_srcip(private_stroke_socket_t *this, } /** + * rekey a connection by name/id + */ +static void stroke_rekey(private_stroke_socket_t *this, stroke_msg_t *msg, FILE *out) +{ + pop_string(msg, &msg->terminate.name); + DBG1(DBG_CFG, "received stroke: rekey '%s'", msg->rekey.name); + + this->control->rekey(this->control, msg, out); +} + +/** * route a policy (install SPD entries) */ static void stroke_route(private_stroke_socket_t *this, stroke_msg_t *msg, FILE *out) @@ -510,6 +521,9 @@ static job_requeue_t process(stroke_job_context_t *ctx) case STR_TERMINATE_SRCIP: stroke_terminate_srcip(this, msg, out); break; + case STR_REKEY: + stroke_rekey(this, msg, out); + break; case STR_STATUS: stroke_status(this, msg, out, FALSE); break; |