]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
swanctl: Fix exit codes based on errno
authorMartin Willi <martin@revosec.ch>
Thu, 9 Oct 2014 14:48:29 +0000 (16:48 +0200)
committerMartin Willi <martin@revosec.ch>
Fri, 10 Oct 2014 09:42:18 +0000 (11:42 +0200)
As fprintf() most likely sets errno, we should save it before printing the
error message.

13 files changed:
src/swanctl/command.c
src/swanctl/commands/initiate.c
src/swanctl/commands/install.c
src/swanctl/commands/list_certs.c
src/swanctl/commands/list_conns.c
src/swanctl/commands/list_pols.c
src/swanctl/commands/list_pools.c
src/swanctl/commands/list_sas.c
src/swanctl/commands/log.c
src/swanctl/commands/reload_settings.c
src/swanctl/commands/stats.c
src/swanctl/commands/terminate.c
src/swanctl/commands/version.c

index dbe16c3b7ae5da9b2ae26b68c62cd524161af261..1c079ec3adf0def925f1bd77223cb0cba4581f51 100644 (file)
@@ -267,9 +267,10 @@ static int call_command(command_t *cmd)
        conn = vici_connect(uri);
        if (!conn)
        {
+               ret = errno;
                command_usage("connecting to '%s' URI failed: %s",
                                          uri ?: "default", strerror(errno));
-               return errno;
+               return ret;
        }
        ret = cmd->call(conn);
        vici_disconnect(conn);
index 080dc4131b492018f2e11c4138af1e02443a1f48..eb7b6adbdc3ee6c4ddf1f17066c41bdd90766f1d 100644 (file)
@@ -71,8 +71,9 @@ static int initiate(vici_conn_t *conn)
 
        if (vici_register(conn, "control-log", log_cb, &format) != 0)
        {
+               ret = errno;
                fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        req = vici_begin("initiate");
        if (child)
@@ -87,8 +88,9 @@ static int initiate(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "initiate request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index e8727d57370ea1163d777d65450a7dadc3b67ded..59c5c24ab9f24a4d372d0c4ad8c036d2b0ba487a 100644 (file)
@@ -55,8 +55,9 @@ static int manage_policy(vici_conn_t *conn, char *label)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "%s request failed: %s\n", label, strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index bee5fda27a34790d7b85a7649300f31c5885dc5d..ecb65289a4c3191ca57501dba121896a072c8cb4 100644 (file)
@@ -590,6 +590,7 @@ static int list_certs(vici_conn_t *conn)
        vici_res_t *res;
        command_format_options_t format = COMMAND_FORMAT_NONE;
        char *arg, *subject = NULL, *type = NULL;
+       int ret;
 
        while (TRUE)
        {
@@ -621,9 +622,10 @@ static int list_certs(vici_conn_t *conn)
        }
        if (vici_register(conn, "list-cert", list_cb, &format) != 0)
        {
+               ret = errno;
                fprintf(stderr, "registering for certificates failed: %s\n",
                                strerror(errno));
-               return errno;
+               return ret;
        }
        req = vici_begin("list-certs");
        if (type)
@@ -637,8 +639,9 @@ static int list_certs(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "list-certs request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index ec5da4bef4b3999c25dc5c5c348fb4e572801d3c..31ab9c40a8627fc99bce284affee594fc8394a3f 100644 (file)
@@ -183,6 +183,7 @@ static int list_conns(vici_conn_t *conn)
        vici_res_t *res;
        command_format_options_t format = COMMAND_FORMAT_NONE;
        char *arg;
+       int ret;
 
        while (TRUE)
        {
@@ -205,16 +206,18 @@ static int list_conns(vici_conn_t *conn)
        }
        if (vici_register(conn, "list-conn", list_cb, &format) != 0)
        {
+               ret = errno;
                fprintf(stderr, "registering for connections failed: %s\n",
                                strerror(errno));
-               return errno;
+               return ret;
        }
        req = vici_begin("list-conns");
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "list-conns request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index 2317b254273e8e5599cfea7abf5b08b56a824878..f2ae221725b2ee201da745bf1a1ca9d0f4a75acc 100644 (file)
@@ -116,6 +116,7 @@ static int list_pols(vici_conn_t *conn)
        bool trap = FALSE, drop = FALSE, pass = FALSE;
        command_format_options_t format = COMMAND_FORMAT_NONE;
        char *arg, *child = NULL;
+       int ret;
 
        while (TRUE)
        {
@@ -154,9 +155,10 @@ static int list_pols(vici_conn_t *conn)
        }
        if (vici_register(conn, "list-policy", list_cb, &format) != 0)
        {
+               ret = errno;
                fprintf(stderr, "registering for policies failed: %s\n",
                                strerror(errno));
-               return errno;
+               return ret;
        }
        req = vici_begin("list-policies");
        if (child)
@@ -178,8 +180,9 @@ static int list_pols(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "list-policies request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index 17ea539a9515202ad4d55ee4dbbdc989cd0c35ce..155771657d2fec72e8a8dd3ffbd0a8a839f0d5a6 100644 (file)
@@ -68,8 +68,9 @@ static int list_pools(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "get-pools request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index 80c279ce8ffab128dfa7fa3257e303e617f781f7..35e7469a9cfe4944d51132684a51e9471d803c29 100644 (file)
@@ -283,7 +283,7 @@ static int list_sas(vici_conn_t *conn)
        bool noblock = FALSE;
        command_format_options_t format = COMMAND_FORMAT_NONE;
        char *arg, *ike = NULL;
-       int ike_id = 0;
+       int ike_id = 0, ret;
 
        while (TRUE)
        {
@@ -315,8 +315,9 @@ static int list_sas(vici_conn_t *conn)
        }
        if (vici_register(conn, "list-sa", list_cb, &format) != 0)
        {
+               ret = errno;
                fprintf(stderr, "registering for SAs failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        req = vici_begin("list-sas");
        if (ike)
@@ -334,8 +335,9 @@ static int list_sas(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "list-sas request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index 99ba328a7579c05fb964c2f04a029a190944b2d7..d7082bfca89e6cfc9ed5a8d2a71e2531fe2e0029 100644 (file)
@@ -50,6 +50,7 @@ static int logcmd(vici_conn_t *conn)
 {
        command_format_options_t format = COMMAND_FORMAT_NONE;
        char *arg;
+       int ret;
 
        while (TRUE)
        {
@@ -73,8 +74,9 @@ static int logcmd(vici_conn_t *conn)
 
        if (vici_register(conn, "log", log_cb, &format) != 0)
        {
+               ret = errno;
                fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
 
        wait_sigint();
index ecd633866681b775546dd6ea9bacc85e93d157db..efad1300fc0e6fc5f4cdaad6206c613a498fc6a1 100644 (file)
@@ -49,8 +49,9 @@ static int reload_settings(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "reload-settings request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index b5425f5048b2b91ea80eaeae7a7682c15fdb288e..a28ca83badeb0016212ba88fbb10d82e9830008c 100644 (file)
@@ -23,6 +23,7 @@ static int stats(vici_conn_t *conn)
        vici_res_t *res;
        char *arg;
        command_format_options_t format = COMMAND_FORMAT_NONE;
+       int ret;
 
        while (TRUE)
        {
@@ -48,8 +49,9 @@ static int stats(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "stats request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index 689ba4d50ceb5522196b1abc054bb0909a119754..8b3233c89faa3f3774edb12a39e9470151fb9a64 100644 (file)
@@ -80,8 +80,9 @@ static int terminate(vici_conn_t *conn)
 
        if (vici_register(conn, "control-log", log_cb, &format) != 0)
        {
+               ret = errno;
                fprintf(stderr, "registering for log failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        req = vici_begin("terminate");
        if (child)
@@ -108,8 +109,9 @@ static int terminate(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "terminate request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {
index 4f24a0fc2da240e02f44a7d15f235d145a17ef84..0c499e4ccabe06889f56e928c278ff48c9c0bdc9 100644 (file)
@@ -24,6 +24,7 @@ static int version(vici_conn_t *conn)
        char *arg;
        bool daemon = FALSE;
        command_format_options_t format = COMMAND_FORMAT_NONE;
+       int ret;
 
        while (TRUE)
        {
@@ -58,8 +59,9 @@ static int version(vici_conn_t *conn)
        res = vici_submit(req, conn);
        if (!res)
        {
+               ret = errno;
                fprintf(stderr, "version request failed: %s\n", strerror(errno));
-               return errno;
+               return ret;
        }
        if (format & COMMAND_FORMAT_RAW)
        {