swanctl: Terminate --monitor-sa command if daemon closes connection

This commit is contained in:
Tobias Brunner
2023-02-22 11:44:14 +01:00
parent 9e5533fef9
commit 4784c92c55
+17 -3
View File
@@ -452,10 +452,19 @@ static int list_sas(vici_conn_t *conn)
return 0;
}
CALLBACK(close_cb, void,
int *ret)
{
fprintf(stderr, "connection closed\n");
*ret = ECONNRESET;
kill(0, SIGTERM);
}
static int monitor_sas(vici_conn_t *conn)
{
command_format_options_t format = COMMAND_FORMAT_NONE;
char *arg;
int ret = 0;
while (TRUE)
{
@@ -476,6 +485,9 @@ static int monitor_sas(vici_conn_t *conn)
}
break;
}
vici_on_close(conn, close_cb, &ret);
if (vici_register(conn, "ike-updown", list_cb, &format) != 0)
{
fprintf(stderr, "registering for IKE_SAs failed: %s\n",
@@ -491,9 +503,11 @@ static int monitor_sas(vici_conn_t *conn)
wait_sigint();
fprintf(stderr, "disconnecting...\n");
return 0;
if (!ret)
{
fprintf(stderr, "disconnecting...\n");
}
return ret;
}
/**