swanctl: Terminate --monitor-sa command if daemon closes connection
This commit is contained in:
@@ -452,10 +452,19 @@ static int list_sas(vici_conn_t *conn)
|
|||||||
return 0;
|
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)
|
static int monitor_sas(vici_conn_t *conn)
|
||||||
{
|
{
|
||||||
command_format_options_t format = COMMAND_FORMAT_NONE;
|
command_format_options_t format = COMMAND_FORMAT_NONE;
|
||||||
char *arg;
|
char *arg;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@@ -476,6 +485,9 @@ static int monitor_sas(vici_conn_t *conn)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vici_on_close(conn, close_cb, &ret);
|
||||||
|
|
||||||
if (vici_register(conn, "ike-updown", list_cb, &format) != 0)
|
if (vici_register(conn, "ike-updown", list_cb, &format) != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "registering for IKE_SAs failed: %s\n",
|
fprintf(stderr, "registering for IKE_SAs failed: %s\n",
|
||||||
@@ -491,9 +503,11 @@ static int monitor_sas(vici_conn_t *conn)
|
|||||||
|
|
||||||
wait_sigint();
|
wait_sigint();
|
||||||
|
|
||||||
fprintf(stderr, "disconnecting...\n");
|
if (!ret)
|
||||||
|
{
|
||||||
return 0;
|
fprintf(stderr, "disconnecting...\n");
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user