diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-02-14 01:02:09 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-02-14 01:02:09 +0000 |
commit | 06133e1de7fc33683ccba99b3eadc370dac0a319 (patch) | |
tree | 2f4754e926fe53fd959c701253ae220797992941 /src/starter | |
parent | 3a5f6dff7ad2135d7dbc546d4a45aebb746f75ea (diff) | |
download | strongswan-06133e1de7fc33683ccba99b3eadc370dac0a319.tar.bz2 strongswan-06133e1de7fc33683ccba99b3eadc370dac0a319.tar.xz |
enabled adding and deleting ca information records
Diffstat (limited to 'src/starter')
-rw-r--r-- | src/starter/starter.c | 12 | ||||
-rw-r--r-- | src/starter/starterstroke.c | 26 | ||||
-rw-r--r-- | src/starter/starterstroke.h | 2 |
3 files changed, 38 insertions, 2 deletions
diff --git a/src/starter/starter.c b/src/starter/starter.c index 25ee9c785..339e698d3 100644 --- a/src/starter/starter.c +++ b/src/starter/starter.c @@ -346,11 +346,15 @@ int main (int argc, char **argv) { if (ca->state == STATE_ADDED) { + if (starter_charon_pid()) + { + starter_stroke_del_ca(ca); + } if (starter_pluto_pid()) { starter_whack_del_ca(ca); - ca->state = STATE_TO_ADD; } + ca->state = STATE_TO_ADD; } } } @@ -539,11 +543,15 @@ int main (int argc, char **argv) { if (ca->state == STATE_TO_ADD) { + if (starter_charon_pid()) + { + starter_stroke_add_ca(ca); + } if (starter_pluto_pid()) { starter_whack_add_ca(ca); - ca->state = STATE_ADDED; } + ca->state = STATE_ADDED; } } diff --git a/src/starter/starterstroke.c b/src/starter/starterstroke.c index 47e7348e4..a1987cbde 100644 --- a/src/starter/starterstroke.c +++ b/src/starter/starterstroke.c @@ -262,3 +262,29 @@ int starter_stroke_initiate_conn(starter_conn_t *conn) msg.initiate.name = push_string(&msg, connection_name(conn)); return send_stroke_msg(&msg); } + +int starter_stroke_add_ca(starter_ca_t *ca) +{ + stroke_msg_t msg; + + msg.type = STR_ADD_CA; + msg.length = offsetof(stroke_msg_t, buffer); + msg.add_ca.name = push_string(&msg, ca->name); + msg.add_ca.cacert = push_string(&msg, ca->cacert); + msg.add_ca.crluri = push_string(&msg, ca->crluri); + msg.add_ca.crluri2 = push_string(&msg, ca->crluri2); + msg.add_ca.ocspuri = push_string(&msg, ca->ocspuri); + return send_stroke_msg(&msg); +} + +int starter_stroke_del_ca(starter_ca_t *ca) +{ + stroke_msg_t msg; + + msg.type = STR_DEL_CA; + msg.length = offsetof(stroke_msg_t, buffer); + msg.del_ca.name = push_string(&msg, ca->name); + return send_stroke_msg(&msg); +} + + diff --git a/src/starter/starterstroke.h b/src/starter/starterstroke.h index 10fc8b84f..95c37094e 100644 --- a/src/starter/starterstroke.h +++ b/src/starter/starterstroke.h @@ -23,5 +23,7 @@ extern int starter_stroke_add_conn(starter_conn_t *conn); extern int starter_stroke_del_conn(starter_conn_t *conn); extern int starter_stroke_route_conn(starter_conn_t *conn); extern int starter_stroke_initiate_conn(starter_conn_t *conn); +extern int starter_stroke_add_ca(starter_ca_t *ca); +extern int starter_stroke_del_ca(starter_ca_t *ca); #endif /* _STARTER_STROKE_H_ */ |