]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
starter: Send configuration load/reload events during startup
authorMartin Willi <martin@revosec.ch>
Fri, 10 Apr 2015 12:05:44 +0000 (14:05 +0200)
committerMartin Willi <martin@revosec.ch>
Fri, 10 Apr 2015 12:05:44 +0000 (14:05 +0200)
src/starter/starter.c
src/starter/starterstroke.c
src/starter/starterstroke.h

index 74b5b52861627e519d3b0654bbbdd027aea1cd05..fae0a39df72efe264ad262f31aca30884eb2cd34 100644 (file)
@@ -705,6 +705,11 @@ int main (int argc, char **argv)
                        exit(LSB_RC_SUCCESS);
                }
 
+               if (starter_charon_pid())
+               {
+                       starter_stroke_config_reload_start();
+               }
+
                /*
                 * Delete all connections. Will be added below
                 */
@@ -848,6 +853,7 @@ int main (int argc, char **argv)
                        }
                        _action_ &= ~FLAG_ACTION_START_CHARON;
 
+                       starter_stroke_config_reload_start();
                        for (ca = cfg->ca_first; ca; ca = ca->next)
                        {
                                if (ca->state == STATE_ADDED)
@@ -913,6 +919,7 @@ int main (int argc, char **argv)
                                        }
                                }
                        }
+                       starter_stroke_config_reload_end();
                }
 
                /*
index 6e1f1605de461ce3a0ccbaeff0c006910637930f..3f870085029a9fd23bb23a581aa1ddc73a05a8b1 100644 (file)
@@ -109,6 +109,24 @@ static char* connection_name(starter_conn_t *conn)
        return conn->name;
 }
 
+int starter_stroke_config_reload_start()
+{
+       stroke_msg_t msg;
+
+       msg.type = STR_CONF_RELOAD_START;
+       msg.length = offsetof(stroke_msg_t, buffer);
+       return send_stroke_msg(&msg);
+}
+
+int starter_stroke_config_reload_end()
+{
+       stroke_msg_t msg;
+
+       msg.type = STR_CONF_RELOAD_END;
+       msg.length = offsetof(stroke_msg_t, buffer);
+       return send_stroke_msg(&msg);
+}
+
 static void starter_stroke_add_end(stroke_msg_t *msg, stroke_end_t *msg_end, starter_end_t *conn_end)
 {
        msg_end->auth = push_string(msg, conn_end->auth);
index 126486325798bec99a056523489fdf1ca6bad6f5..ddb335dafc27d842710fde837ef1ae1c6ddb36fc 100644 (file)
@@ -18,6 +18,8 @@
 
 #include "confread.h"
 
+int starter_stroke_config_reload_start();
+int starter_stroke_config_reload_end();
 int starter_stroke_add_conn(starter_config_t *cfg, starter_conn_t *conn);
 int starter_stroke_del_conn(starter_conn_t *conn);
 int starter_stroke_route_conn(starter_conn_t *conn);