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:
Martin Willi
2014-10-10 11:42:18 +02:00
parent d4d85135c5
commit 67f9f09dd3
13 changed files with 45 additions and 20 deletions
+2 -1
View File
@@ -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);
+4 -2
View File
@@ -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)
{ {
+2 -1
View File
@@ -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)
{ {
+5 -2
View File
@@ -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)
{ {
+5 -2
View File
@@ -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)
{ {
+5 -2
View File
@@ -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)
{ {
+2 -1
View File
@@ -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)
{ {
+5 -3
View File
@@ -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)
{ {
+3 -1
View File
@@ -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();
+2 -1
View File
@@ -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)
{ {
+3 -1
View File
@@ -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)
{ {
+4 -2
View File
@@ -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)
{ {
+3 -1
View File
@@ -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)
{ {