Code

Better error if server requests client based certificate (609382 - Olaf Greis)
authorTon Voon <tonvoon@users.sourceforge.net>
Wed, 29 Jan 2003 05:55:50 +0000 (05:55 +0000)
committerTon Voon <tonvoon@users.sourceforge.net>
Wed, 29 Jan 2003 05:55:50 +0000 (05:55 +0000)
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@265 f882894a-f735-0410-b71e-b25c423dba1c

plugins/check_http.c

index 506a1ec720ff18b88baf7ddeb265a595e8e84f0c..daddfc1993212ffa173c206fa92875c649df598a 100644 (file)
@@ -541,6 +541,9 @@ check_http (void)
        char *x = NULL;
        char *orig_url = NULL;
        double elapsed_time;
+#ifdef HAVE_SSL
+       int sslerr;
+#endif
 
        /* try to connect to the host at the given port number */
 #ifdef HAVE_SSL
@@ -674,8 +677,18 @@ check_http (void)
                pagesize += i;
        }
 
-       if (i < 0)
+       if (i < 0) {
+#ifdef HAVE_SSL
+               sslerr=SSL_get_error(ssl, i);
+               if ( sslerr == SSL_ERROR_SSL ) {
+                       terminate (STATE_WARNING, "Client Certificate Required\n");
+               } else {
+                       terminate (STATE_CRITICAL, "Error in recv()");
+               }
+#else
                terminate (STATE_CRITICAL, "Error in recv()");
+#endif
+       }
 
        /* return a CRITICAL status if we couldn't read any data */
        if (pagesize == (size_t) 0)