Starter unroutes removed or changed connections before loading and routing new ones

This commit is contained in:
Tobias Brunner
2012-10-18 14:42:11 +02:00
parent 21037942e8
commit 9e730ef9df
3 changed files with 19 additions and 0 deletions
+8
View File
@@ -594,6 +594,10 @@ int main (int argc, char **argv)
{
if (starter_charon_pid())
{
if (conn->startup == STARTUP_ROUTE)
{
starter_stroke_unroute_conn(conn);
}
starter_stroke_del_conn(conn);
}
conn->state = STATE_TO_ADD;
@@ -651,6 +655,10 @@ int main (int argc, char **argv)
{
if (starter_charon_pid())
{
if (conn->startup == STARTUP_ROUTE)
{
starter_stroke_unroute_conn(conn);
}
starter_stroke_del_conn(conn);
}
}
+10
View File
@@ -270,6 +270,16 @@ int starter_stroke_route_conn(starter_conn_t *conn)
return send_stroke_msg(&msg);
}
int starter_stroke_unroute_conn(starter_conn_t *conn)
{
stroke_msg_t msg;
msg.type = STR_UNROUTE;
msg.length = offsetof(stroke_msg_t, buffer);
msg.route.name = push_string(&msg, connection_name(conn));
return send_stroke_msg(&msg);
}
int starter_stroke_initiate_conn(starter_conn_t *conn)
{
stroke_msg_t msg;
+1
View File
@@ -21,6 +21,7 @@
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);
int starter_stroke_unroute_conn(starter_conn_t *conn);
int starter_stroke_initiate_conn(starter_conn_t *conn);
int starter_stroke_add_ca(starter_ca_t *ca);
int starter_stroke_del_ca(starter_ca_t *ca);