aboutsummaryrefslogtreecommitdiffstats
path: root/src/sec-updater/sec-updater.c
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2017-09-07 14:50:49 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2017-09-07 14:54:41 +0200
commit94bdd463d85b90f16cf41e2b73ec8b115d96626e (patch)
tree9324c1ffdf3d4ce43130cce4b3f28fa65bca73b0 /src/sec-updater/sec-updater.c
parent311d931aef31cce4ea580df019a618e93fd88038 (diff)
downloadstrongswan-94bdd463d85b90f16cf41e2b73ec8b115d96626e.tar.bz2
strongswan-94bdd463d85b90f16cf41e2b73ec8b115d96626e.tar.xz
sec-updater: Write to log only if at least one update is found.
Diffstat (limited to 'src/sec-updater/sec-updater.c')
-rw-r--r--src/sec-updater/sec-updater.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/sec-updater/sec-updater.c b/src/sec-updater/sec-updater.c
index d8a9fbb9e..e6e672d99 100644
--- a/src/sec-updater/sec-updater.c
+++ b/src/sec-updater/sec-updater.c
@@ -27,6 +27,8 @@
#include <library.h>
#include <utils/debug.h>
+#define EXIT_NO_UPDATES 80
+
typedef enum sec_update_state_t sec_update_state_t;
enum sec_update_state_t {
@@ -227,7 +229,7 @@ static bool update_database(database_t *db, char *package, char *version,
/**
* Process a package file and store updates in the database
*/
-static void process_packages(char *filename, char *product, bool security)
+static int process_packages(char *filename, char *product, bool security)
{
char *uri, line[BUF_LEN], *pos, *package = NULL, *version = NULL;
sec_update_state_t state;
@@ -245,7 +247,6 @@ static void process_packages(char *filename, char *product, bool security)
stats.release = time(NULL);
/* opening package file */
- DBG1(DBG_IMV, "loading \"%s\"", filename);
file = fopen(filename, "r");
if (!file)
{
@@ -367,9 +368,12 @@ static void process_packages(char *filename, char *product, bool security)
DBG1(DBG_IMV, "processed \"%s\": %d packages, %d new versions, "
"%d updated versions", filename, stats.packages,
stats.new_versions, stats.updated_versions);
+
+ return (stats.new_versions + stats.updated_versions) ?
+ EXIT_SUCCESS : EXIT_NO_UPDATES;
}
-static void do_args(int argc, char *argv[])
+static int do_args(int argc, char *argv[])
{
char *filename = NULL, *product = NULL;
bool security = FALSE;
@@ -420,7 +424,7 @@ static void do_args(int argc, char *argv[])
if (filename && product)
{
- process_packages(filename, product, security);
+ return process_packages(filename, product, security);
}
else
{
@@ -447,8 +451,6 @@ int main(int argc, char *argv[])
{
exit(SS_RC_INITIALIZATION_FAILED);
}
- do_args(argc, argv);
-
- exit(EXIT_SUCCESS);
+ exit(do_args(argc, argv));
}