Module: monitoring-plugins
 Branch: master
 Commit: 3bf812beaee7035b1c08e49b55d7962056931d7b
 Author: Jan Wagner <[email protected]>
   Date: Tue Oct  1 09:26:41 2013 +0200
    URL: 
https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=3bf812b

sslutils: expire time in local timezone format

sshutils prints the expiry time of certificates in US format
this patch uses the strftime %c, I don't know how portable that is

Thanks to Neil Prockter.

Closes #1188
Closes #1161
Closes #977
Closes #976
Closes #975
Closes #840
Closes #382

---

 THANKS.in          | 1 +
 plugins/sslutils.c | 9 ++++-----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/THANKS.in b/THANKS.in
index 43ba182..6738ae7 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -324,3 +324,4 @@ Jean-Claude Computing
 Andy Brist
 Mikael Falkvidd
 Patric Wust
+Neil Prockter
diff --git a/plugins/sslutils.c b/plugins/sslutils.c
index 687bffb..d0ae474 100644
--- a/plugins/sslutils.c
+++ b/plugins/sslutils.c
@@ -153,7 +153,8 @@ int np_net_ssl_check_cert(int days_till_exp_warn, int 
days_till_exp_crit){
        struct tm stamp;
        float time_left;
        int days_left;
-       char timestamp[17] = "";
+       char timestamp[50] = "";
+       time_t tm_t;
 
        certificate=SSL_get_peer_certificate(s);
        if (!certificate) {
@@ -211,10 +212,8 @@ int np_net_ssl_check_cert(int days_till_exp_warn, int 
days_till_exp_crit){
 
        time_left = difftime(timegm(&stamp), time(NULL));
        days_left = time_left / 86400;
-       snprintf
-               (timestamp, 17, "%02d/%02d/%04d %02d:%02d",
-                stamp.tm_mon + 1,
-                stamp.tm_mday, stamp.tm_year + 1900, stamp.tm_hour, 
stamp.tm_min);
+       tm_t = mktime (&stamp);
+       strftime(timestamp, 50, "%c", localtime(&tm_t));
 
        if (days_left > 0 && days_left <= days_till_exp_warn) {
                printf (_("%s - Certificate '%s' expires in %d day(s) 
(%s).\n"), (days_left>days_till_exp_crit)?"WARNING":"CRITICAL", cn, days_left, 
timestamp);

Reply via email to