swanctl: Fix exit codes based on errno
As fprintf() most likely sets errno, we should save it before printing the error message.
This commit is contained in:
@@ -267,9 +267,10 @@ static int call_command(command_t *cmd)
|
|||||||
conn = vici_connect(uri);
|
conn = vici_connect(uri);
|
||||||
if (!conn)
|
if (!conn)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
command_usage("connecting to '%s' URI failed: %s",
|
command_usage("connecting to '%s' URI failed: %s",
|
||||||
uri ?: "default", strerror(errno));
|
uri ?: "default", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
ret = cmd->call(conn);
|
ret = cmd->call(conn);
|
||||||
vici_disconnect(conn);
|
vici_disconnect(conn);
|
||||||
|
|||||||
@@ -71,8 +71,9 @@ static int initiate(vici_conn_t *conn)
|
|||||||
|
|
||||||
if (vici_register(conn, "control-log", log_cb, &format) != 0)
|
if (vici_register(conn, "control-log", log_cb, &format) != 0)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
|
fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
req = vici_begin("initiate");
|
req = vici_begin("initiate");
|
||||||
if (child)
|
if (child)
|
||||||
@@ -87,8 +88,9 @@ static int initiate(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "initiate request failed: %s\n", strerror(errno));
|
fprintf(stderr, "initiate request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -55,8 +55,9 @@ static int manage_policy(vici_conn_t *conn, char *label)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "%s request failed: %s\n", label, strerror(errno));
|
fprintf(stderr, "%s request failed: %s\n", label, strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -590,6 +590,7 @@ static int list_certs(vici_conn_t *conn)
|
|||||||
vici_res_t *res;
|
vici_res_t *res;
|
||||||
command_format_options_t format = COMMAND_FORMAT_NONE;
|
command_format_options_t format = COMMAND_FORMAT_NONE;
|
||||||
char *arg, *subject = NULL, *type = NULL;
|
char *arg, *subject = NULL, *type = NULL;
|
||||||
|
int ret;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@@ -621,9 +622,10 @@ static int list_certs(vici_conn_t *conn)
|
|||||||
}
|
}
|
||||||
if (vici_register(conn, "list-cert", list_cb, &format) != 0)
|
if (vici_register(conn, "list-cert", list_cb, &format) != 0)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "registering for certificates failed: %s\n",
|
fprintf(stderr, "registering for certificates failed: %s\n",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
req = vici_begin("list-certs");
|
req = vici_begin("list-certs");
|
||||||
if (type)
|
if (type)
|
||||||
@@ -637,8 +639,9 @@ static int list_certs(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "list-certs request failed: %s\n", strerror(errno));
|
fprintf(stderr, "list-certs request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ static int list_conns(vici_conn_t *conn)
|
|||||||
vici_res_t *res;
|
vici_res_t *res;
|
||||||
command_format_options_t format = COMMAND_FORMAT_NONE;
|
command_format_options_t format = COMMAND_FORMAT_NONE;
|
||||||
char *arg;
|
char *arg;
|
||||||
|
int ret;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@@ -205,16 +206,18 @@ static int list_conns(vici_conn_t *conn)
|
|||||||
}
|
}
|
||||||
if (vici_register(conn, "list-conn", list_cb, &format) != 0)
|
if (vici_register(conn, "list-conn", list_cb, &format) != 0)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "registering for connections failed: %s\n",
|
fprintf(stderr, "registering for connections failed: %s\n",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
req = vici_begin("list-conns");
|
req = vici_begin("list-conns");
|
||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "list-conns request failed: %s\n", strerror(errno));
|
fprintf(stderr, "list-conns request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ static int list_pols(vici_conn_t *conn)
|
|||||||
bool trap = FALSE, drop = FALSE, pass = FALSE;
|
bool trap = FALSE, drop = FALSE, pass = FALSE;
|
||||||
command_format_options_t format = COMMAND_FORMAT_NONE;
|
command_format_options_t format = COMMAND_FORMAT_NONE;
|
||||||
char *arg, *child = NULL;
|
char *arg, *child = NULL;
|
||||||
|
int ret;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@@ -154,9 +155,10 @@ static int list_pols(vici_conn_t *conn)
|
|||||||
}
|
}
|
||||||
if (vici_register(conn, "list-policy", list_cb, &format) != 0)
|
if (vici_register(conn, "list-policy", list_cb, &format) != 0)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "registering for policies failed: %s\n",
|
fprintf(stderr, "registering for policies failed: %s\n",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
req = vici_begin("list-policies");
|
req = vici_begin("list-policies");
|
||||||
if (child)
|
if (child)
|
||||||
@@ -178,8 +180,9 @@ static int list_pols(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "list-policies request failed: %s\n", strerror(errno));
|
fprintf(stderr, "list-policies request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -68,8 +68,9 @@ static int list_pools(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "get-pools request failed: %s\n", strerror(errno));
|
fprintf(stderr, "get-pools request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ static int list_sas(vici_conn_t *conn)
|
|||||||
bool noblock = FALSE;
|
bool noblock = FALSE;
|
||||||
command_format_options_t format = COMMAND_FORMAT_NONE;
|
command_format_options_t format = COMMAND_FORMAT_NONE;
|
||||||
char *arg, *ike = NULL;
|
char *arg, *ike = NULL;
|
||||||
int ike_id = 0;
|
int ike_id = 0, ret;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@@ -315,8 +315,9 @@ static int list_sas(vici_conn_t *conn)
|
|||||||
}
|
}
|
||||||
if (vici_register(conn, "list-sa", list_cb, &format) != 0)
|
if (vici_register(conn, "list-sa", list_cb, &format) != 0)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "registering for SAs failed: %s\n", strerror(errno));
|
fprintf(stderr, "registering for SAs failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
req = vici_begin("list-sas");
|
req = vici_begin("list-sas");
|
||||||
if (ike)
|
if (ike)
|
||||||
@@ -334,8 +335,9 @@ static int list_sas(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "list-sas request failed: %s\n", strerror(errno));
|
fprintf(stderr, "list-sas request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ static int logcmd(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;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@@ -73,8 +74,9 @@ static int logcmd(vici_conn_t *conn)
|
|||||||
|
|
||||||
if (vici_register(conn, "log", log_cb, &format) != 0)
|
if (vici_register(conn, "log", log_cb, &format) != 0)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
|
fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
wait_sigint();
|
wait_sigint();
|
||||||
|
|||||||
@@ -49,8 +49,9 @@ static int reload_settings(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "reload-settings request failed: %s\n", strerror(errno));
|
fprintf(stderr, "reload-settings request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ static int stats(vici_conn_t *conn)
|
|||||||
vici_res_t *res;
|
vici_res_t *res;
|
||||||
char *arg;
|
char *arg;
|
||||||
command_format_options_t format = COMMAND_FORMAT_NONE;
|
command_format_options_t format = COMMAND_FORMAT_NONE;
|
||||||
|
int ret;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@@ -48,8 +49,9 @@ static int stats(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "stats request failed: %s\n", strerror(errno));
|
fprintf(stderr, "stats request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -80,8 +80,9 @@ static int terminate(vici_conn_t *conn)
|
|||||||
|
|
||||||
if (vici_register(conn, "control-log", log_cb, &format) != 0)
|
if (vici_register(conn, "control-log", log_cb, &format) != 0)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
|
fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
req = vici_begin("terminate");
|
req = vici_begin("terminate");
|
||||||
if (child)
|
if (child)
|
||||||
@@ -108,8 +109,9 @@ static int terminate(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "terminate request failed: %s\n", strerror(errno));
|
fprintf(stderr, "terminate request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ static int version(vici_conn_t *conn)
|
|||||||
char *arg;
|
char *arg;
|
||||||
bool daemon = FALSE;
|
bool daemon = FALSE;
|
||||||
command_format_options_t format = COMMAND_FORMAT_NONE;
|
command_format_options_t format = COMMAND_FORMAT_NONE;
|
||||||
|
int ret;
|
||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
@@ -58,8 +59,9 @@ static int version(vici_conn_t *conn)
|
|||||||
res = vici_submit(req, conn);
|
res = vici_submit(req, conn);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
ret = errno;
|
||||||
fprintf(stderr, "version request failed: %s\n", strerror(errno));
|
fprintf(stderr, "version request failed: %s\n", strerror(errno));
|
||||||
return errno;
|
return ret;
|
||||||
}
|
}
|
||||||
if (format & COMMAND_FORMAT_RAW)
|
if (format & COMMAND_FORMAT_RAW)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user